Tutorial: Εισαγωγή στην PHP

dimitris | Κυρ, 01/13/2008 - 23:23 | 10' | 2

H PHP ξεκίνησε σαν hack της Perl από τον Rasmus Lerdorf το 1994 και χάρη στην εκπληκτική της ευχρηστία, την ελαστικότητα και την ισχύ έγινε το πιο δημοφιλές module του Apache. Εδώ θα μάθουμε με παραδείγματα τα βασικά της PHP.
Σημειώνουμε ότι η PHP είναι case-sensitive, δηλαδή η μεταβλητή $myvar είναι διαφορετική από τη $MyVar. Επειδή η PHP δουλεύει κυρίως με ιστοσελίδες, θα χρειαστούμε έναν web server. Σχεδόν όλες οι διανομές Linux έχουν κάποια έκδοση του Apache, του πιο δημοφιλούς web server, που η εγκατάσταση του είναι συνήθως μερικά κλικς από τον διαχειριστή πακέτων της διανομής. 

Το πρώτο σκριπτάκι

Το πρώτο μας σκριπτάκι θα είναι το παραδοσιακό 'Hello World'. Ανοίγουμε ένα κειμενογράφο, γράφουμε:

<?php 
echo 'Hello, World!'; 
?> 

και αποθηκεύουμε το αρχείο με το όνομα hello.php στο φάκελο του localhost (που συνήθως είναι το /var/www). Κατόπιν, ανοίγουμε το Firefox και δίνουμε το URL: http://localhost/hello.php Θα πρέπει να εμφανιστεί το μήνυμα Hello, World. Αν όχι, τότε θα πρέπει να δούμε αν είναι όλα ΟΚ με τον Apache. Ας δούμε όμως τι σημαίνει ο κώδικας που γράψαμε. Στην αρχή, υπάρχει ένα <?php και στο τέλος ένα ?>. Αυτά είναι τα 'σημάδια' που δείχνουν ότι 'μπαίνουμε' και 'βγαίνουμε' αντίστοιχα από την κατάσταση PHP. Δηλαδή ότι γράψουμε ανάμεσα στα <?php και ?> θεωρείται κώδικας της PHP και εκτελείται ως τέτοιος. Μετά το <?php, υπάρχει η echo, μια συνάρτηση που τυπώνει δεδομένα (κείμενο, μεταβλητές κτλ) κατευθείαν στην έξοδο. Οτιδήποτε βρίσκεται εκτός της 'κατάστασης PHP' στέλνεται κατευθείαν στον Apache (ή την τυπική έξοδο). Επιπλέον δεν υπάρχει όριο στο πόσες φορές μπορούμε να μπούμε και να βγούμε από την κατάσταση PHP σε ένα σκριπτάκι. Να ένα παράδειγμα:

<?php echo 'Hello,'; ?> World! 

Μεταβλητές

Στην PHP, οι μεταβλητές δεν δηλώνονται στην αρχή, αλλά δημιουργούνται όταν τις χρησιμοποιούμε. Έτσι, οι μεταβλητές δεν έχουν τύπο, δηλαδή μπορούμε να αλλάξουμε μια integer (ακέραιος) σε string (συμβολοσειρά), μετά σε double και ξανά σε string. Η μόνη απαίτηση είναι οι μεταβλητές να ξεκινούν υποχρεωτικά με $. Στο παρακάτω παράδειγμα, βλέπουμε τη συνένωση δύο strings μέσω της αντίστοιχης συνάρτησης-τελεία (.):

<?php
  $String1 = 'Hello, ';
  $String2 = 'World';
 echo $String1 . $String2;
 ?>

Αλληλεπίδραση

Τα δεδομένα που εισάγει ένας χρήστης σε μία φόρμα HTML (π.χ. ένα πεδίο κειμένου) είναι γενικώς επίφοβα, γι' αυτό η PHP δημιουργεί μερικές 'super global' μεταβλητές, μία για κάθε είδος αιτήματος HTTP. Έτσι οι μεταβλητές που εισάγονται από τον χρήστη σε μια φόρμα μέσω του HTTP post μπαίνουν στην $_POST, εκείνες που περνάνε μέσω του HTTP get αποθηκεύονται στην $_GET ενώ ένα ανάμεικτο σύνολο μπαίνει στην $_REQUEST. Να μια απλή φόρμα, test.html:

<form action="form.php" method="post">Enter your age: <input name="age" type="text" /> <input type="submit" /> </form>
Enter your age:
 

Και να το σκριπτάκι της PHP, που πρέπει να σώσουμε ως form.php:

<?php
echo 'Your age is:' . $_POST['age'];
?>

Στην HTML σελίδα έχουμε μια φόρμα, της οποίας το action 'δείχνει' στο σκριπτάκι της PHP, και στην οποία περνάμε μόνο ένα πεδίο-μεταβλητή, την ηλικία ('age'). Τα περιεχόμενα αυτού του πεδίου είναι διαθέσιμα στο σκριπτάκι από τη μεταβλητή $_POST['age'] και τα ξανατυπώνουμε πίσω στο χρήστη. Αντιγράφουμε τα δύο αρχεία στο φάκελο του Apache στο σύστημά μας και μετά από το Firefox πηγαίνουμε στο http://localhost/test.html. Θα πρέπει να εμφανιστεί ένα πεδίο κειμένου που μας ρωτά για την ηλικία μας.

Χρήση arrays

Ένα array είναι μια 'σειρά'  (ή πίνακας) δεδομένων αποθηκευμένα σε μια μεταβλητή. Για παράδειγμα, μπορεί να έχουμε ένα array επτά τιμών, μία για κάθε ημέρα της εβδομάδας ή ένα array με τα ονόματα των παικτών μιας ομάδας. Τα arrays στην PHP δουλεύουν σαν κανονικές μεταβλητές. Υπάρχουν δύο τρόποι για να φτιάξουμε ένα array:

$FirstArray = new array(); 

ή

$SecondArray[] = 'Blue'; 
$SecondArray[] = 'Green'; 

Ο πρώτος τρόπος λέγεται explicit και μας δίνει ένα κενό array, στο οποίο πρέπει μετά να εισάγουμε χειροκίνητα τα δεδομένα. Με το δεύτερο τρόπο, δημιουργούμε το $SecondArray απλώς προσθέτοντάς του στοιχεία με τον τελεστή []. Με αυτόν τον τρόπο μπορούμε να φτιάξουμε όσα arrays θέλουμε ανεξαρτήτως τύπου (strings, integers, κτλ). Τώρα το $SecondArray περιέχει δύο στοιχεία, το 'Blue' με δείκτη 0 και το 'Green' με δείκτη 1. Αυτά τα τυπώνουμε με την echo() και τα $SecondArray[0] και $SecondArray[1] αντίστοιχα. Για ευκολία μπορούμε να χρησιμοποιήσουμε associative arrays χωρίς αριθμούς ως δείκτες. Δηλαδή, αντί για δείκτες 0 και 1 θα μπορούσαμε να βάζαμε λέξεις, π.χ. jason, γιατί το $MyArray['jason'] είναι πιο ευνόητο από το $MyArray[13].

Πιο πολλά κόλπα

Δύο πλεονεκτήματα της PHP σε σχέση με άλλες γλώσσες είναι ότι έχει απίστευτες δυνατότητες για βάσεις δεδομένων (ΒΔ) αλλά και μια μεγάλη συλλογή από έτοιμες και χρησιμότατες συναρτήσεις. Τις ΒΔ θα τις δούμε αργότερα, αλλά προς το παρόν μπορούμε να δούμε μερικές από τις βασικότερες συναρτήσεις της PHP. Καταρχήν, η isset() που επιστρέφει true (αλήθεια) αν έχει οριστεί κάποια μεταβλητή στο αντίστοιχο context (αυτό δεν σημαίνει ότι η μεταβλητή πρέπει να έχει και κάποια τιμή). Τώρα μπορούμε να ξαναγράψουμε το σκριπτάκι για την ηλικία σε ένα μοναδικό αρχείο ως εξής:

<?php
  if (isset($_POST['age'])) {
    echo 'Your age is: ' . $_POST['age'];
  } else {
 ?>

<form action="form.php" method="post">Enter your age: <input name="age" type="text" /> <input type="submit" /> </form>

<p><?php
  }
 ?> 

Η συνύπαρξη HTML και PHP κώδικα στο ίδιο αρχείο είναι συνήθης τακτική. Στα παράδειγμα, φαίνεται ότι ελέγχουμε το super global $_POST για να διαπιστώσουμε αν έχει οριστεί η μεταβλητή age και αν όχι τυπώνουμε ξανά την φόρμα. Ο τρόπος λειτουργίας παραμένει ίδιος.

Δύο συναρτήσεις που είναι ιδιαίτερα χρήσιμες είναι οι explode() και implode(). Η πρώτη παίρνει ένα string που έχει κάποιο σύμβολο διαχωρισμού (π.χ. την κόμα) και παράγει ένα array από τα μεμονωμένα στοιχεία. Για παράδειγμα, το 'this,is,a,test' θα γίνει ένα array με τα εξής τέσσερα στοιχεία: 'this', 'is', 'a', και 'test'. Η implode() κάνει το εντελώς αντίθετο, δηλαδή παίρνει ένα array οσωνδήποτε στοιχείων και παράγει ένα string με σύμβολα διαχωρισμού. Για να τα δούμε όλα αυτά σε ένα παράδειγμα, μπορούμε να μετατρέψουμε το 'comma,separated,string' στο 'comma!separated!string' με τον εξής κώδικα:

<?php
   $string = 'comma,separated,string';
    echo $string;
?> 

<?php
   $exploded = explode(',', $string);
   $imploded = implode('!', $exploded);
   echo $imploded;
 ?> 
Φόρουμ
Tags
Δώσε αστέρια!

MO: 2.5 (ψήφοι: 2)

Σχόλια