Επιμέλεια Ι.Κονταξάκης

 

Η Γλώσσα Προγραμματισμού php

Εντολές-Παραδείγματα

  1.       Τι Είναι η PHP

Η PHP, όπου τα αρχικά σημαίνουν Personal Home Page Hypertext PreProcessor, είναι μια γλώσσα συγγραφής σεναρίων (scripting language) που ενσωματώνεται μέσα στον κώδικα της HTML και  τρέχει στον Server και στον Web
Browser επιστρέφει script σε μορφή HTML

 

Το ΡΗΡ συνεργάζεται με διάφορες βάσεις δεδομένων όπως: ΜySQL, Oracle, Sybase, Generic ODBC κ.α.

H PHP είναι Open Source λογισμικό και είναι δωρεάν

 

Η PHP τρέχει κάτω από διάφορα λειτουργικά συστήματα (Windows, Linux,
Unix, κτλ.)

 

Το μεγαλύτερο μέρος της σύνταξής της, η PHP το έχει δανειστεί από την C, την Java και την Perl και διαθέτει και μερικά δικά της μοναδικά χαρακτηριστικά. Ο σκοπός της γλώσσας είναι να δώσει τη δυνατότητα στους web developers να δημιουργούν δυναμικά παραγόμενες ιστοσελίδες

 

Αυτό που ξεχωρίζει την PHP από μια γλώσσα όπως η  JavaScript, η οποία εκτελείται στην πλευρά του χρήστη (client-side), είναι ότι ο κώδικάς της εκτελείται στον server και επιστρέφονται στον browser σαν αρχεία απλής HTML

Η php συνεργάζεται με τους περισσότερους server (Apache, IIS, κτλ)

 

 

Ένα Απλό Πρόγραμμα σε php

Εξυπηρέτηση σε αίτημα για  HTML  ιστοσελίδα στο Internet

Ένα πρόγραμμα ΗTML έχει επέκταση (extension) « .htm» ή « .html» και μπορούμε να τα δημιουργήσουμε με τον Editor του DOS. (π.χ. "test1.htm"ή "test2.html")

 


Εξυπηρέτηση σε αίτημα για php ιστοσελίδα στο internet

 

Τα προγράμματα της php έχουν την επέκταση (extension) « .php» και μπορούμε να τα δημιουργήσουμε με τον Editor του DOS. (π.χ. "test.php") ή   μπορούν να έχουν κατάληξη , ".php3", ή ".phtml" . Εκτός αυτής της λύσης υπαρχουν ειδικοί επεξεργαστές κειμένου για τη συγγραφή προγραμμάτων php , που διευκολύνουν την εκσφαλμάτωση του κώδικα

 

                                                                                                                                                                                                                                                                                                                        


Ένα πολύ απλό πρόγραμμα θα μπορούσε να είναι το παρακάτω :

1

<html>

 

2

      <head>

 

3

   <title> Παράδειγμα </title>

 

4

      </head>

 

5

<body>

 

6

<?php echo "Γεια σας, είμαι script της PHP!"; ?>

Εκτελείται στον Server

7

        </body>

 

8

</html>

 

 

 

Όπως παρατηρούμε ,γράφουμε ένα HTML script και μέσα στο script ο κώδικας php (εντολή 6) . Ο κώδικας της PHP περικλείεται με ειδικά tags αρχής (<?php ) και τέλους (?>) για να μπορούμε να εισερχόμαστε και να εξερχόμαστε από το PHP mode.

Αυτό που ξεχωρίζει την PHP από μια γλώσσα όπως η  JavaScript, η οποία εκτελείται στην πλευρά του χρήστη (client-side), είναι ότι ο κώδικάς της εκτελείται στον server.

Η εντολή echo είναι μία εντολή εξόδου που θα μας τυπώσει στην οθόνη "Γεια σας, είμαι  script της PHP!".

 

Δηλαδή οι εντολές 1,2,3,4,5,7,8 εκτελούνται στον browser  σε συνεργασία με τον web Server ενώ η εντολή 6 , δεν την καταλαβαίνει ο Server  και την στέλνει  στην μηχανή php, που  επιστρέφει στον browser HTML περιεχόμενο "Γεια σας, είμαι  script της PHP!" , που ενσωματώνεται στον κώδικα HTML και εκτελείται από τον browser όλος μαζί.

Ας δούμε με τη σειρά τα γεγονότα που συμβαίνουν

  1. Ο πελάτης υπολογιστής στέλνει ένα αίτημα ιστοσελίδας php (εντολή 6) στον Web Server (συνήθως Apache ή IIS της Microsoft)
  2. Εφόσον η ιστοσελίδα περιέχει κώδικα  php στέλνει τον κώδικα στην μηχανή της php για επεξεργασία.
  3. Ο   Web Server συναρμολογεί την σελίδα σε κώδικα μόνο HTML
  4. Ο HTML κώδικας στέλνεται στον φυλλομετρητή του πελάτη  και εκτελείται.

 

Σε άλλα παραδείγματα που θα δούμε παρακάτω στη θέση του "Γεια σας, είμαι  script της PHP!" θα είναι ολόκληρο πρόγραμμα php , που θα εκτελεί διάφορες εργασίες.

Άλλο παράδειγμα:

Φορτώνουμε έναν text editor, όπως το Notepad, και δημιουργούμε ένα νέο αρχείο κειμένου με όνομα today.php, όπου γράφουμε τα εξής :

<HTML>

<HEAD>

<TITLE> Η Σημερινή Ημερομηνία </TITLE>

</HEAD>

<BODY>

<P> Η σημερινή ημερομηνία, σύμφωνα με τον Web server, είναι :

<?php

            echo( date("l, F dS Y.") );

?>

</BODY>

</HTML>

Το αποθηκεύουμε και το τοποθετούμε στο Web site όπως ακριβώς θα κάναμε και μ’ ένα κανονικό HTML αρχείο. Μετά, βλέπουμε τι θα εμφανίσει όταν το δούμε στον φυλλομετρητή μας. Αν δούμε τον πηγαίο κώδικα (view source) της σελίδας, αυτό που θα εμφανισθεί θα είναι ένα κανονικό HTML αρχείο που θα περιέχει την τρέχουσα ημερομηνία.

Ο κώδικας της PHP, δηλ. ο,τιδήποτε υπάρχει ανάμεσα στα tags <?php και ?> στον παραπάνω κώδικα, έχει διερμηνευθεί (interpreted) από τον Web server και έχει μετατραπεί σε κανονικό κείμενο (normal text) πριν αποσταλεί στον φυλλομετρητή μας. Η ομορφιά της PHP, όπως και των άλλων γλωσσών server-side scripting, είναι ότι ο Web browser δεν χρειάζεται να γνωρίζει ο,τιδήποτε γι’ αυτό.

Αφού διερμηνευθεί, ο κώδικας της PHP αντικαθίσταται στην ιστοσελίδα με τα αποτελέσματα του script κι έτσι αυτό που βλέπει ο φυλλομετρητής είναι ένα κανονικό HTML αρχείο. Το script επεξεργάζεται εξ ολοκλήρου από τον server, εξ ου και ο χαρακτηρισμός server-side scripting language.

Ας ξαναδούμε το αρχείο today.php :

<HTML>

<HEAD>

<TITLE> Η Σημερινή Ημερομηνία </TITLE>

</HEAD>

<BODY>

<P> Η σημερινή ημερομηνία, σύμφωνα με τον Web server, είναι :

<?php

echo( date("l, F dS Y.") );

            ?>
</BODY>
</HTML>

Ο περισσότερος κώδικας είναι καθαρή HTML, ενώ η γραμμή ανάμεσα στα <?php και ?> είναι γραμμένη σε κώδικα PHP. Το <?php σημαίνει ότι ξεκινάει ο κώδικας της PHP και το ?> σημαίνει ότι τελειώνει ο κώδικας της PHP.

Ο Web server διερμηνεύει ο,τιδήποτε υπάρχει ανάμεσα σ’ αυτούς τους οριοθέτες (delimiters) και το μετατρέπει σε κανονικό κώδικα HTML πριν στείλει την ιστοσελίδα (Web page) στον φυλλομετρητή (browser) που την ζήτησε. Έτσι, ο φυλλομετρητής θα εμφανίσει κάτι σαν το εξής :

<HTML>

<HEAD>

<TITLE> Η Σημερινή Ημερομηνία </TITLE>

</HEAD>

<BODY>

<P> Η σημερινή ημερομηνία, σύμφωνα με τον Web server, είναι :

Wednesday, June 7th 2000.

</BODY>

</HTML>

Βλέπουμε ότι έχουν χαθεί όλα τα σημάδια του κώδικα της PHP και στη θέση τους έχει εμφανισθεί η έξοδος (το αποτέλεσμα) του script και φαίνεται σαν κανονική HTML.

Απ’ αυτό το παράδειγμα μπορούμε να δούμε τα πολλά πλεονεκτήματα του server-side scripting :

 

Τερματισμός Εντολών

        Οι εντολές στην PHP τερματίζονται με τον ίδιο τρόπο όπως στην C και την Perl, δηλ. μ’ έναν χαρακτήρα ; (semicolon). Μπορούμε, όμως, να δηλώσουμε το τέλος μιας εντολής και με το tag κλεισίματος (closing tag) ?>. Έτσι, τα παρακάτω είναι ισοδύναμα :

<?php

echo "Αυτό είναι ένα  test";

?>

και

<?php echo " Αυτό είναι ένα  test " ?>

Η Εντολή echo – print ( έξοδος δεδομένων)

Με την εντολή echo μπορούμε να εμφανίσουμε string , αριθμούς ,σαν μηνύματα στην οθόνη.

Να μερικούς τρόπους  για να εμφανίσετε τη φράση "Να το πρώτο μου πρόγραμμα" :

<?php
echo("Να το πρώτο μου πρόγραμμα !"); 
?>

ή

<?php
echo " Να το πρώτο μου πρόγραμμα !";
?>
Αν η φράση που θέλουμε να προβάλλουμε δεν περιέχει κενά διαστήματα και σημεία στίξης, μπορούμε να παραλείψουμε εισαγωγικά.

<?php
print Hello;
?>
Αποτέλεσμα:   Hello

Επίσης, αντί για διπλά εισαγωγικά, μπορούμε να χρησιμοποιήσουμε μονά.

<?php
print ' Να το πρώτο μου πρόγραμμα !';
?>
Θα πρέπει όμως να προσέξουμε ώστε η προβαλλόμενη φράση να ξεκινά και να τελειώνει με τον ίδιο τρόπο. Δηλαδή αν επιλέξουμε να ξεκινά με διπλά εισαγωγικά, θα πρέπει επίσης να κλείνει με διπλά και όχι με μονά, αλλιώς θα εμφανιστεί σφάλμα επεξεργασίας.

Προσέξτε ότι, όπως και στη γλώσσα προγραμματισμού C++, έτσι και στην PHP που έχει βασιστεί σε αυτή, κάθε εντολή κλείνει με τον χαρακτήρα ελληνικού ερωτηματικού ";". Ο χαρακτήρας αυτός μπορεί όμως να παραλειφθεί αν ο κώδικας περιλαμβάνει μόνο μία εντολή. Μπορεί επίσης να παραληφθεί στην τελευταία εντολή, πριν το κλείσιμο του κώδικα.
 

Φορμάρισμα δεδομένων στην έξοδο

Οι αλλαγές γραμμών στον κώδικα PHP δεν είναι απαραίτητες, αλλά έχουν σαν μοναδικό σκοπό να κάνουν τον κώδικα πιο ευανάγνωστο από τον προγραμματιστή.

Ως εκ τούτου, τα δύο παρακάτω δείγματα κώδικα PHP:



<?php
print "Hello world! "; print "How are you today?";
?>
και

<?php
print "Hello world! ";
print "How are you today?";
?>

έχουν το ίδιο αποτέλεσμα και απεικονίζουν την εξής φράση:

Hello world! How are you today?

Επίσης, ο προγραμματιστής δεν θα πρέπει να ξεχνά ότι όπως συμβαίνει γενικότερα στη γλώσσα μορφοποίησης HTML, έτσι και στο περιεχόμενο που παράγει μια σελίδα PHP, οι αλλαγές γραμμών αγνοούνται από τα προγράμματα περιήγησης των επισκεπτών.

<?php
echo "Αυτή είναι μια γραμμή. 
Αυτή είναι η δεύτερη γραμμή. 
Αυτή είναι η τρίτη γραμμή."; 
?>
Το αποτέλεσμα μετά την επεξεργασία του κώδικα θα είναι:

Αυτή είναι μια γραμμή. Αυτή είναι η δεύτερη γραμμή. Αυτή είναι η τρίτη γραμμή.

Για να λυθεί το πρόβλημα αυτό, θα πρέπει στον κώδικα PHP να  χρησιμοποιηθεί το tag <br /> της γλώσσας HTML. Δηλαδή, για να εμφανιστούν σωστά οι αλλαγές γραμμών, ο παραπάνω κώδικας θα πρέπει να διορθωθεί ως εξής:

<?php
     echo "Αυτή είναι μια γραμμή.<br /> 
     Αυτή είναι η δεύτερη γραμμή.<br /> 
     Αυτή είναι η τρίτη γραμμή."; 
?>
Ο browser θα απεικονίσει το κείμενο με αλλαγές γραμμών, δηλαδή:

Αυτή είναι μια γραμμή. 
Αυτή είναι η δεύτερη γραμμή. 
Αυτή είναι η τρίτη γραμμή.

 

Εδώ θα πρέπει επίσης να σημειωθεί ότι αντί να πατήσετε το Enter στον παραπάνω κώδικα, μπορείτε να χρησιμοποιήσετε τους χαρακτήρες \n, που ισοδυναμούν με αλλαγή γραμμής.
 

Σχόλια (Comments)

Η PHP χρησιμοποιεί τον ίδιο τρόπο σχολιασμού όπως η C, η C++. Για παράδειγμα :

<?php

echo "Αυτή είναι μια δοκιμή"; // Σχόλιο μίας γραμμής της php

/* Αυτό είναι ένα σχόλιο (comment) της php σε πολλές γραμμές

και αυτή είναι μια άλλη γραμμή σχολίου */

?>

Πρέπει να είμαστε προσεκτικοί για να μην φωλιάζουμε (nest) τα σχόλια.

<?php

/*

echo "Αυτή είναι μια δοκιμή";

/* Αυτό το σχόλιο θα δημιουργήσει πρόβλημα */

*/

?>

 

 

 Η εντολή απόδοσης τιμής (εκχώρησης) της  PHP 

Ο βασικός τελεστής εκχώρησης (assignment operator) είναι το =. Σημαίνει ότι η μεταβλητή  αριστερά του τελεστή γίνεται ίσος με την τιμή της έκφρασης που υπάρχει στα δεξιά του τελεστή.

 

<?php

          $met1=10                  // Η μεταβλητή $met1 έχει την τιμή 10

          $met2=”ΓΙΑΝΝΗΣ” //Η μεταβλητή  $met2 έχει τη τιμή ΓΙΑΝΝΗΣ

?>

Η τιμή μιας έκφρασης εκχώρησης είναι η τιμή που εκχωρείται, δηλ. η τιμή της έκφρασης $a = 3 είναι το 3. Αυτό μας δίνει τη δυνατότητα να κάνουμε μερικά έξυπνα κόλπα :

$a = ($b = 4) + 5;    // το $a γίνεται ίσο με 9 και το $b με 4

Εκτός από τον βασικό τελεστή εκχώρησης, υπάρχουν «συνδυασμένοι τελεστές» γι’ όλους τους δυαδικούς αριθμητικούς και αλφαριθμητικούς τελεστές οι οποίοι μας δίνουν τη δυνατότητα να χρησιμοποιήσουμε μια τιμή σε μια έκφραση και μετά να ορίσουμε την τιμή της με το αποτέλεσμα αυτής της έκφρασης.

Για παράδειγμα :

$a = 3;

$a += 5;        // κάνει το $a ίσο με 8 σαν $a = $a + 5;

$b = "Hello ";

$b .= "There!";

// κάνει το $b ίσο με "Hello There!" σαν $b = $b . "There!";

Η παραπάνω εκχώρηση αντιγράφει την αρχική μεταβλητή στην καινούργια, που αποκαλείται εκχώρηση με τιμή (assignment by value) και έτσι οι αλλαγές που θα συμβούν στη μια απ’ αυτές δεν θα επηρεάσουν και την άλλη.

Η PHP4 υποστηρίζει την εκχώρηση με αναφορά (assignment by reference), χρησιμοποιώντας την σύνταξη $var = &$othervar;, κάτι που δεν ισχύει στην PHP3. Η εκχώρηση με αναφορά σημαίνει ότι και οι δύο μεταβλητές δείχνουν στα ίδια δεδομένα και τίποτα δεν αντιγράφεται.

Το τελευταίο παράδειγμα εκφράσεων που θα δούμε είναι οι συνδυασμένες εκφράσεις τελεστή και εκχώρησης. Γνωρίζουμε ήδη ότι αν θέλουμε να αυξήσουμε το $a κατά 1, μπορούμε να γράψουμε απλά $a++ ή ++$a.

Αλλά, αν θέλουμε να προσθέσουμε περισσότερο από το 1, όπως για παράδειγμα το 3; Θα μπορούσαμε να γράψουμε το $a++ πολλές φορές, αλλά αυτό δεν είναι προφανώς κάτι αποδοτικό.

Η πρόσθεση του 3 στην τρέχουσα τιμή του $a μπορεί να γραφεί σαν $a += 3, που σημαίνει «πάρε την τιμή της $a, πρόσθεσε το 3 σ’ αυτήν και εκχώρησε το αποτέλεσμα πίσω ξανά στην $a». Υπάρχουν και οι τελεστές $a -= 5, δηλ. αφαίρεση του 5 από την τιμή της $a, $b *= 7, δηλ. πολλαπλασιασμός της τιμής της $b με το 7 κ.ά.