4 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: PHP

Σχετικά έγγραφα
Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Γιάννης Σαμωνάκης. 1 ο ΣΧΟΛΕΙΟ ΚΩΔΙΚΑ «Βασικά Θέματα Προγραμματισμού στην Ανάπτυξη Δυναμικών Διαδικτυακών Εφαρμογών» (Part 4 - PHP)

ΕισαγωγήστουςΗ/Υ. PHP Hypertext Preprocessor

Β. Εισαγωγή στον Προγραμματισμό Η/Υ με την JavaScript

Θέματα Προγραμματισμού Διαδικτύου ~ PHP ~

Διάλεξη 3: Προγραμματισμός σε JAVA I. Διδάσκων: Παναγιώτης Ανδρέου

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 3: Server Side Scripting I - PHP

Αντικειμενοστρεφής Προγραμματισμός

2.1. Εντολές Σχόλια Τύποι Δεδομένων

ΕΠΛ 012. JavaScripts

Δομημένος Προγραμματισμός (ΤΛ1006)

TEC610 Δυναμικές Εφαρμογές Διαδικτύου (ΣΤ εξάμηνο)

Δυναμικές Ιστοσελίδες Εισαγωγή στην Javascript για προγραμματισμό στην πλευρά του client

ΠΑΝΕΠΙΣΤΗΜΙΟ AΙΓΑIΟΥ & ΑΕΙ ΠΕΙΡΑΙΑ Τ.Τ. Τμήματα Ναυτιλίας και Επιχειρηματικών Υπηρεσιών & Μηχ. Αυτοματισμού ΤΕ. Εισαγωγή στη Python

Εργαστήριο Java. Διδάσκουσα: Εργαστηριακοί Συνεργάτες:

Ανάπτυξη και Σχεδίαση Λογισμικού

Διαδικασιακός Προγραμματισμός

Εισαγωγή στον Προγραµµατισµό. Διάλεξη 2 η : Βασικές Έννοιες της γλώσσας προγραµµατισµού C Χειµερινό Εξάµηνο 2011

Αντικειμενοστρεφής Προγραμματισμός Διάλεξη 2 : ΜΕΤΑΒΛΗΤΕΣ ΤΕΛΕΣΤΕΣ & ΕΚΦΡΑΣΕΙΣ ΕΛΕΓΧΟΣ ΡΟΗΣ

PHP 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Δ. Ζήνδρος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 7 η Διάλεξη: Σύντομη εισαγωγή στην Java

Εισαγωγή στην PHP. ΕΣΔ 516 Τεχνολογίες Διαδικτύου. Περιεχόμενα. Περιεχόμενα. ΕΣ 516: Τεχνολογίες ιαδικτύου. ΕΣ 516: Τεχνολογίες ιαδικτύου

Εισαγωγή στην γλώσσα προγραμματισμού C

Αντώνης Χρυσόπουλος Κατερίνα Κυπριώτη Στέλιος Μόσχογλου Θεοδόσης Σουργκούνης ΒΑΣΙΚΕΣ ΕΝΤΟΛΕΣ PHP. PHP 2: The Return of PHP Η Δευτέρα Παρουσίαση

ΜΑΘΗΜΑ: Εργαλεία Ανάπτυξης εφαρμογών internet.

Παρακάτω δίνεται o σκελετός προγράμματος σε γλώσσα C. Σχολιάστε κάθε γραμμή του κώδικα.

Συναρτήσεις. Εισαγωγή

Εισαγωγή στην Γλώσσα Προγραμματισμού Python. 12/10/16 1

Αντικειµενοστρεφής Προγραµµατισµός

Στόχοι και αντικείμενο ενότητας. Εκφράσεις. Η έννοια του τελεστή. #2.. Εισαγωγή στη C (Μέρος Δεύτερο) Η έννοια του Τελεστή

Διάλεξη 3η: Τύποι Μεταβλητών, Τελεστές, Είσοδος/Έξοδος

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Σχολικό Βιβλίο - Κεφάλαιο 7 ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕ PASCAL ΠΑΡΟΥΣΙΑΣΗ 13

Εντολές εισόδου - εξόδου. Εισαγωγή στη C++

Θέματα Προγραμματισμού Η/Υ

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ Ακαδημαϊκό έτος ΤΕΤΡΑΔΙΟ ΕΡΓΑΣΤΗΡΙΟΥ #4

Π. Σταθοπούλου ή Οµάδα Α (Φοιτητές µε µονό αριθµό Μητρώου ) ιδασκαλία : Παρασκευή 11πµ-13µµ ΗΛ7

Ασκήσεις σε Επαναληπτικούς Βρόχους και Συναρτήσεις. Επανάληψη για την ενδιάμεση εξέταση. (Διάλεξη 13)

Βασικά στοιχεία γλώσσας προγραμματισμού. Σπάχος Κυριάκος Καθηγητής Πληροφορικής ΠΕ19

Προγραμματισμός Η/Υ (ΤΛ2007 )

Δομημένος Προγραμματισμός (ΤΛ1006)

Προγραμματισμός Η/Υ (ΤΛ2007 )

Εισαγωγή στην PHP. ΕΣΔ 232 Διαχείριση Δεδομένων στη Κοινωνία της Πληροφορίας. Περιεχόμενα. Περιεχόμενα

Προγραμματισμός Ι. Εγγραφές. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Βασικά Στοιχεία της Java

Εισαγωγή στην πληροφορική

Εισαγωγή στη Fortran. Μάθημα 1 ο. Ελευθερία Λιούκα

Εισαγωγή στην Επιστήμη Υπολογιστών. Εισαγωγή στην Python

Εισαγωγή στον Αντικειμενοστρεφή Προγραμματισμό Διάλεξη #2

Εισαγωγή στο PHP. Τί είναι το PHP. Σταύρος Πολυβίου

Γενικά (για τις γραπτές εξετάσεις)

Προγραμματισμός Η/Υ (ΤΛ2007 )

ΠΕΡΙΕΧΟΜΕΝΑ ΜΕΡΟΣ Α : ΘΕΜΑΤΑ ΒΑΣΗΣ 1. ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ ΑΡΙΘΜΗΤΙΚΑ ΣΥΣΤΗΜΑΤΑ...30

Εισαγωγή στον Προγραμματισμό

Εφαρμοσμένη Πληροφορική ΙΙ (Θ) Είσοδος/Έξοδος Μεταβλητές Τύποι Μεταβλητών Τελεστές και Προτεραιότητα Μετατροπές Μεταξύ Τύπων

Visual Basic Βασικές Έννοιες

Γ7.1 Επανάληψη ύλης Β Λυκείου. Γ Λυκείου Κατεύθυνσης

Εργασία Προγραµµατισµού

ΒΑΣΙΚΟΙ ΤΥΠΟΙ ΔΕΔΟΜΕΝΩΝ

Παρουσίαση PHP. Μιχάλης Ζήσης GreekLUG

JAVASCRIPT 1. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Αναφορά (1/2) Μπορούμε να ορίσουμε μια άλλη, ισοδύναμη αλλά ίσως πιο σύντομη, ονομασία για ποσότητα (μεταβλητή, σταθερή, συνάρτηση, κλπ.

Γλώσσα Προγραμματισμού C++ Εισαγωγή - Μια πρώτη ματιά

Αλγοριθμική & Δομές Δεδομένων- Γλώσσα Προγραμματισμού Ι (PASCAL)

ΕΝΟΤΗΤΑ 4 Λήψη Αποφάσεων και Συναρτήσεις Ελέγχου

Η γλώσσα προγραμματισμού C

Εισαγωγή στην Αριθμητική Ανάλυση

Λειτουργικά. Συστήματα Ι. Φ ρ ο ν τ ι σ τ ή ρ ι ο. Αριστείδης Ηλίας. Εργαστήριο Ηλεκτρονικών Υπολογιστών

PERL. Δήμος Παύλου Δημήτρης Κουζαπάς

Διάλεξη 2: Επανάληψη Προγραμματισμού Συμβολοσειρές (strings) Διδάσκων: Παναγιώτης Ανδρέου

Τεχνικός Εφαρμογών Πληροφορικής

Προγραμματισμός Υπολογιστών & Εφαρμογές Python. Κ.Π. Γιαλούρης

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

Προγραμματισμός Ι. Δείκτες. Δημήτρης Μιχαήλ. Τμήμα Πληροφορικής και Τηλεματικής Χαροκόπειο Πανεπιστήμιο

Επανάληψη για τις Τελικές εξετάσεις. (Διάλεξη 24) ΕΠΛ 032: ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΜΕΘΟΔΩΝ ΕΠΙΛΥΣΗΣ ΠΡΟΒΛΗΜΑΤΩΝ

Δρ. Δημήτριος Α. Κουτσομητρόπουλος. Τμήμα Επιχειρηματικού Σχεδιασμού και Πληροφοριακών Συστημάτων Α.Τ.Ε.Ι. Πάτρας

Περιεχόμενα. Πρόλογος... xiii

Η γλώσσα προγραμματισμού C

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Εισαγωγή στη γλώσσα προγραμματισμού C++

Εισαγωγή στη Matlab 2 Εισαγωγή στην Αριθμητική Ανάλυση Διδάσκων: Γεώργιος Ακρίβης Βοηθός: Δημήτριος Ζαβαντής

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

Βασικά Στοιχεία της Java

Τεχνολογία και Προγραμματισμός Υπολογιστών. Η γλώσσα προγραμματισμού C

Υπολογισμός - Εντολές Επανάληψης

Προγραμματισμός και Χρήση Ηλεκτρονικών Υπολογιστών - Βασικά Εργαλεία Λογισμικού

ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ ΥΠΟΛΟΓΙΣΤΩΝ & ΥΠΟΛΟΓΙΣΤΙΚΗ ΦΥΣΙΚΗ

Σύντομες εισαγωγικές σημειώσεις για την. Matlab

Διάλεξη 1. Πράξεις Τελεστές Έλεγχος Ροής

ΜΕΡΟΣ ΠΡΩΤΟ: Θεωρητική Προσέγγιση...15

Περιεχόμενα. Πρόλογος... 21

ΑΡΧΕΣ ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΥ

Η γλώσσα προγραμματισμού C

Θέματα Προγραμματισμού Η/Υ

Διδάσκων: Κωνσταντίνος Κώστα Διαφάνειες: Δημήτρης Ζεϊναλιπούρ

Κεφάλαιο 7: Υποπρογράμματα. Αρχές Γλωσσών Προγραμματισμού και Μεταφραστών

Επανάληψη για τις Τελικές εξετάσεις

4. Επιλογή και Επανάληψη

3ο σετ σημειώσεων - Πίνακες, συμβολοσειρές, συναρτήσεις

ΕΡΓΑΣΤΗΡΙΟ 1 - ΣΗΜΕΙΩΣΕΙΣ

Transcript:

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου 4 η Διάλεξη: Προγραμματισμός στην πλευρά του εξυπηρετητή: PHP Δρ. Απόστολος Γκάμας Διδάσκων (407/80) gkamas@uop.gr Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 1

Προγραμματισμός στην πλευρά του εξυπηρετητή (server side) Διαφάνεια 2 Τελική HTML σελίδα Επεξεργ ασία Δεδομέν ων Διαδίκτυο Πελάτης Web Browser Επικοινωνία HTTP Εξυπηρετητής Web Server Βάση Δεδομένων Τελική HTML σελίδα Χρήστης ΤΜΗΜΑ ΕΠΙΣΤΗΜΗΣ ΚΑΙ ΤΕΧΝΟΛΟΓΙΑΣ ΤΗΛΕΠΙΚΟΙΝΩΝΙΩΝ Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Επεξεργασία php κώδικα και παραγωγή HTML σελίδας

Προγραμματισμός στην πλευρά του εξυπηρετητή (server side) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 3

Αλληλεπίδραση browser-web server µε χρήση τεχνολογίας server side Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 4

Server Side: Καταλληλότητα, Πλεονεκτήματα, Μειονεκτήματα Καταλληλότητα: Δυναμική / Παραμετρική εμφάνιση περιεχομένου Απαραίτητο όταν απαιτείται επικοινωνία (αλληλεπίδραση) µε τονserver Δυνατότητα ελέγχου των πελατών, π.χ. μετρητές επισκέψεων (hit counters), ελεγχόμενη πρόσβαση σε κάποιες σελίδες Πλεονεκτήματα: Η επεξεργασία μεταφέρεται στο server, χρησιμοποιείται η ισχύς του server O κώδικας είναι κρυφός Η εκτέλεση του κώδικα είναι ανεξάρτητη του browser: στέλνεται «καθαρό» HTML που εμφανίζεται πανομοιότυπο σε κάθε browser Ημοναδικήλύσηγιαπρόσβασηστοfile system του server Μειονεκτήματα: Χρησιμοποιεί πολύτιμη επεξεργαστική ισχύ του server. Κλιμάκωση (scalability); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 5

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 6 Server Side: Τεχνολογίες

Γιατί PHP; Υψηλή απόδοση: µεέναφτηνόserver μπορούν να εξυπηρετηθούν εκατομμύρια επισκέψεων καθημερινά. Συνεργάζεται εύκολα µε τους περισσότερους database servers (βάσεις δεδομένων) Σημαντικό για χτίσιμο πληροφοριακών συστημάτων (π.χ. Εφαρμογές ηλεκτρονικού εμπορίου) Ενσωματωμένες βιβλιοθήκες για συνήθεις web διαδικασίες: δυναμική δημιουργία εικόνων, αποστολή email, χειρισμός cookies Χαμηλό κόστος: δωρεάν Ευκολία μάθησης και χρήσης: η σύνταξή της βασίζεται σε άλλες γλώσσες (μοιάζει µε Java, C) Υποστηρίζεται από τους περισσότερους web servers σαν module (επιπρόσθετο δομικό στοιχείο) Μεταφερσιμότητα (portability): ο ίδιος κώδικας δουλεύει χωρίς αλλαγές και σε άλλο λειτουργικό σύστημα ιαθεσιμότητα του κώδικα προέλευσης (open source): μπορούν να πραγματοποιηθούν αλλαγές στη γλώσσα Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 7

PHP - Απλό παράδειγμα <html> <head><title>php Example</title> </head> <body> <?php (ή <?) echo "Hi, I m a PHP script!";?> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 8

Μεταβλητές στην ΡΗΡ Υπάρχουν τριών τύπων μεταβλητές: Βαθμωτή (scalar) Πίνακας (array) Συσχετιζόμενος πίνακας (associative array) Οι μεταβλητές είναι ο κύριος μηχανισμός για τη μεταφορά δεδομένων μεταξύ σελίδων ή τμημάτων σελίδων Υπάρχουν τρεις βασικές λειτουργίες που μπορούμε να κάνουμε µε µία μεταβλητή: Να την θέσουµε, να την επαναθέσουμε ή να την προσπελάσουμε Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 9

Τύποι Boolean, integer, floating-point number (float), string, array, object, resource, NULL Ο τύπος μιας μεταβλητής ΕΝ δηλώνεται αλλά προσδιορίζεται από την τιμή που της δίνεται Μετατροπή από ένα τύπο δεδομένων σε άλλο $mydouble = (double)$myint Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 10

Κανόνες ονομασίας μεταβλητών Να αρχίζει µε γράμμαήunderscore(_) Να αποτελείται από γράμματα, αριθμούς ή underscore (_) Να μην είναι δεσμευμένη λέξη (όπως π.χ. print) Τα ονόματα των μεταβλητών είναι case-sensitive, π.χ. $baby_names και $Baby_names δεν είναι τα ίδια Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 11

Κανόνες ονομασίας μεταβλητών Εκτός από κείμενο, ως τιμές σε μεταβλητές μπορούμε να δώσουμε και αριθμούς καθώς και άλλα αντικείμενα (objects, booleans) Για να προβάλλουμε κείμενο χρησιμοποιούμε απλά ή διπλά εισαγωγικά: print ( Αυτό είναι ένα παράδειγµα! ); Αν θέλουμε να εκτυπώσουμε το κείμενο μαζί µε τα εισαγωγικά, χρησιμοποιούμε το χαρακτήρα διαφυγής \, που ορίζει στην ΡΗΡ να µη θεωρήσει τον επόμενο χαρακτήρα ως μέρος του κώδικα, αλλά ως απλό κείμενο print ( \ Αυτό είναι ένα παράδειγμα!\ ); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 12

Συναρτήσεις Μεταβλητών string gettype(mixed var): επιστρέφει μια συμβολοσειρά που περιέχει τον τύπο μιας μεταβλητής ή unknown type int settype(string var, string type): αλλάζει τον τύπο μιας μεταβλητής boolean is_array(), is_double(), is_int(), is_string(), is_object(): ελέγχουν τύπους int isset(mixed var): ελέγχει αν μια μεταβλητή είναι ορισμένη int unset(mixed var): διαγράφει μια μεταβλητή int empty(mixed var): ελέγχει αν μια μεταβλητή έχει μηδενική τιμή int intval(mixed var), double doubleval(mixed var), string strval(mixed var): µετατρέπουν τον τύπο µιας µεταβλητής Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 13

Μεταβλητές τύπου πίνακα Οι μεταβλητές τύπου πίνακα ξεκινούν µε $, όπως και οι βαθμωτές. Η συνάρτηση array() εκχωρεί μια σειρά τιμών σε έναν πίνακα µε τον ακόλουθο τρόπο: $students = array( Μαρία, Γιάννης, Λευτέρης ); Η παραπάνω εντολή αυτόματα εκχωρεί ένα αριθμητικό κλειδί σε κάθε στοιχείο µε τη σειρά δίνοντας στο πρώτο στοιχείο το κλειδί 0. Μπορούμε τώρα να αναφερόμαστε π.χ. στο στοιχείο Λευτέρης ως $students[2]. Ο ακόλουθος κώδικας θα εκτυπώσει το τρίτο στοιχείο του πίνακα που είναι ο μαθητής Λευτέρης <?php print $students[2] ;?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 14

Μεταβλητές τύπου πίνακα Υπάρχει και άλλος τρόπος να ορίσουμε έναν πίνακα ή να προσθέσουμε στοιχεία σε έναν ήδη υπάρχοντα πίνακα: $students[] = Μαρία ; $students[] = Γιάννης ; $students[] = Λευτέρης ; Για να προσθέσουμε έναν νέο μαθητή γράφουμε (ανεξάρτητα από τον τρόπο που χρησιμοποιήσαμε για τη δημιουργία του πίνακα): $students[] = Βασίλης ; Η ΡΗΡ δίνει αυτόματα στο Βασίλη ένα κλειδί, το αμέσως επόμενο κενό, που στην περίπτωση αυτή είναι το [3]. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 15

Μεταβλητές τύπου συσχετιζόμενου πίνακα Οι συσχετιζόμενοι πίνακες διαχωρίζουν τα περιεχόμενα στοιχεία όχι µε αριθμούς, αλλά µε ονόματα που εμείς καθορίζουμε. Μέσα στη συνάρτηση array() καθορίζουµε ζεύγηkey=>value. Για παράδειγμα: $stud = array( name=> John, haircolor=> black, eyecolor=> green, age=>17); Μπορούμε να πάμε σε οποιοδήποτε στοιχείο του πίνακα µέσω των ονομάτων των κλειδιών που ορίσαμε. Για παράδειγμα: print $stud[eyecolor];θα δώσει green. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 16

Μεταβλητές τύπου συσχετιζόμενου πίνακα Μπορούμε επίσης να θέσουμε κάθε στοιχείο ξεχωριστά: $stud[name] = John ; $stud[haircolor] = black ; $stud[eyecolor] = green ; $stud[age] = 17; Ένας πολυδιάστατος πίνακας είναι ένας πίνακας που περιέχει άλλους πίνακες. Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 17

Πολυδιάστατος πίνακας $stud = array( array (name=> John,haircolor=> black,eyecolor=> green,age=>17), array (name=> Mary,haircolor=> blond,eyecolor=> blue,age=>16), array (name=> Kenny,haircolor=> brown,eyecolor=> brown,age=>17), array (name=> Bill,haircolor=> blond,eyecolor=> green,age=>16) ); Γιαναπροσπελάσουμεέναστοιχείο: print $stud[2][age]; Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 18

Συναρτήσεις Πινάκων Ταξινόμηση Αριθμητικών $products=array( Tires, Oil ); sort($products); $products=array(13,3,7); sort($products); Συσχετιζόμενων $prices = array( tires =>100, Oil =>10, Spark Plugs =>4); asort($prices) // ( Spark Plugs =>4, Oil =>10, Tires =>100) ksort($prices) // ( Oil =>10, Spark Plugs =>4 Tires =>100) Αντίστροφες Ταξινοµήσεις array_reverse(); Τυχαία σειρά: shuffle(); Πλήθος στοιχείων πίνακα: $num = count($products) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 19

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 20 Τελεστές σύγκρισης

Λογικοί και Αριθμητικοί τελεστές Λογικοί and ή &&, or ή, xor,! Αριθμητικοί +, -, *, /, % Υπάρχουν ακόμα και οι τελεστές αύξησης/μείωσης και οι σύνθετοι τελεστές (π.χ. $a+=5;) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 21

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 22 if-else-elseif

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 23 Switch

Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 24 while-for-do...while

Σπάζοντας δοµές ελέγχου,επαναλήψεις και Script Έξοδος από έλεγχο break Μεταπήδηση επόμενη επανάληψη βρόγχου continue Σταμάτημα εκτέλεσης PHP Script Exit Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 25

Σχόλια <?php echo Test"; // one-line comment /* This is a multi line comment */ echo Test"; # This is shell-style style comment?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 26

Επαναχρησιμοποίηση Κώδικα υνατότητα για επαναχρησιμοποίηση κώδικα από άλλα αρχεία (php, html, οποιοδήποτε άλλο) Συνήθως αρχεία.inc αλλά προσοχή! Ο πηγαίοςκώδικαςενός.inc μπορεί να φανεί αν φορτωθεί απευθείας από browser -> καλύτερα να χρησιμοποιούμε.php ή «κρύψιµο» των.inc (αποθήκευση σε κατάλογο που δεν είναι δηµοσιευμένος require() & include() include()-> δεν υπολογίζεται αν η εντολή δεν εκτελεστεί Πλεονεκτήματα επαναχρησιμοποίησης κώδικα: Μικρότερο «κόστος» (όχι περιττή επανεγγραφή κώδικα) Αυξημένη αξιοπιστία (αν ο κώδικας δουλεύει κάπου, δουλεύει µε τον ίδιο τρόπο παντού) Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 27

Require // reusable.php <? echo "Here is a very simple PHP statement.<br>";?> <? echo "This is the main file.<br>"; require( "reusable.php" ); echo "The script will end now.<br>"; <? Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 28

Include If ($var==true) require( file1.inc ); //αυτήηεντολήθαυπολογιστείκατάτην //ανάλυση του script Else require ( file2.inc ); // κι αυτή οµοίως If ($var==true) include ( file1.inc ); // θα υπολογιστεί όταν εκτελεστεί η εντολή else // αν ικανοποιηθεί η συνθήκη include ( file2.inc ); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 29

Χρησιμοποιώντας συναρτήσεις στην PHP Κλήση συνάρτησης ΧΩΡΙΣ πέρασμα παραμέτρων function_name(); Κλήση συνάρτησης ΜΕ πέρασμα παραμέτρων function_name( parameter ); Παραδείγματα: function_name(2); function_name( string ); function_name($variable); Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 30

Κλήση συναρτήσεων στην PHP Η κλήση εξαρτάται από το πρωτότυπο της συνάρτησης π.χ. array explode ( string separator, string str [int limit]) Κλήση της συνάρτησης explode: $str = abc def ghi ; $str_array = explode(, str); // επιστρέφει array 3 στοιχείων $str_array = explode(, str, 2); // επιστρέφει array 2 στοιχείων Οι κλήσεις σε συναρτήσεις ΕΝ είναι ευαίσθητες σε κεφαλαία-πεζά: function_name() = FUNCTION_NAME() = Function_Name() ΠΡΟΣΟΧΗ! Τα ονόματα των μεταβλητών ΕΙΝΑΙ ευαίσθητα σε πεζά-κεφαλαία: $name $Name Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 31

Ορίζοντας τις δικές µας συναρτήσεις ήλωση μιας απλής συνάρτησης: function my_function() { echo My function was called ; } Κλήση της συνάρτησης: my_function(); Περιορισμοί στην ονομασία συναρτήσεων: Όχι ίδια ονόματα µε υπάρχουσες συναρτήσεις Ονόματα μονάχα από γράμματα, ψηφία και χαρακτήρες υπογράμμισης Τα ονόματα δεν μπορούν να ξεκινούν µεψηφίο Έγκυρα ονόματα: name(), name2(), name_three() Άκυρα ονόματα: 5name(), name-six(), explode() Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 32

Παραδείγματα Χρήσης <html> <body> <b> <? echo "Hello, World!";?> </b> <? echo " <b> Hello, World! </b>"?> </body> </html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 33

Παραδείγματα Χρήσης <html><body> <? $greeting="hello "; $num=3+2; $num=$num+1; print $greeting.$num." people!";?> </body></html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 34

Παραδείγματα Χρήσης <html><body> <? $struser=$_server["http_user_agent"]; print $struser;?> </body></html> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 35

Παραδείγματα Χρήσης <? $h=strftime("%h"); print "<p>".strftime("%m/%d/%y %H:%M:%S %p")."</p>"; if ($h<12) print "Kalhmera"; else{ if ($h==12) print "Kalo mesimeri"; else print "Kalo apogeyma"; }?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 36

Παραδείγματα Χρήσης <? for ($i=1; $i<=6; $i=$i+1){ print "<h".$i.">this is header ".$i."</h".$i.">"; }?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 37

Παραδείγματα Χρήσης <? $students[0]="nikos"; $students[1]="maria"; for ($i=0; $i<=1; $i=$i+1){ print $students[$i]."<br>"; }?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 38

Παραδείγματα Χρήσης <? $students[0]="nikos"; $students[1]="maria"; $students[2]="mpampis"; foreach ($students as $name){ print $name."<br>"; }?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 39

Παραδείγματα Χρήσης <h1> Footer Test Page</h1> <p> This is the first paragraph. </p> <p>2nd p<p>3rd p<p>4th p <? include ("../footer.htm")?> Σχεδίαση Εφαρμογών και Υπηρεσιών Διαδικτύου Διαφάνεια 40