[Powered by Google Translate] [PHP Web Development]
[Tommy MacWilliam]
[Αυτό είναι CS50.] [CS50.TV]
>> Σε αυτό το βίντεο, θα μάθουμε σχετικά με τη χρήση της PHP για την ανάπτυξη Ιστού.
PHP είναι μια γλώσσα δέσμης ενεργειών που μπορεί να χρησιμοποιηθεί για την υλοποίηση
ιστοσελίδες σε έναν web server.
Ένας web server είναι ουσιαστικά μια μηχανή αφιερωμένο στην παροχή περιεχομένου
που μπορεί να προσεγγιστεί μέσω του Διαδικτύου.
Όταν περιηγείστε σε μια ιστοσελίδα όπως Facebook.com / home.php
ο κώδικας στο αρχείο που ονομάζεται home.php που ζει σε ένα Facebook web server κάπου
θα εκτελεστεί σε αυτόν το διακομιστή.
Ο κωδικός αυτός θα δημιουργήσει πιθανόν κάποια έξοδο
η οποία με τη σειρά της θα πρέπει να σταλεί από τον server
στο web browser σας.
Θα πρέπει να χρησιμοποιείτε τη συσκευή CS50 ως web server.
Το μηχάνημά σας κατά πάσα πιθανότητα δεν θα είναι σχεδόν τόσο ισχυρό όσο τα μηχανήματα
σε ένα κέντρο δεδομένων του Facebook, αλλά δεν θα έχετε κανένα πρόβλημα με αυτό για την ανάπτυξη Ιστού.
>> Όταν μεταβείτε σε μια διεύθυνση URL, όπως http://localhost/hello.php
έχουμε να ρυθμίσετε τη συσκευή μέσω μιας εφαρμογής που ονομάζεται ο διακομιστής Apache HTTP
να ψάξουν για ένα αρχείο που ονομάζεται hello.php εσωτερικό του σπιτιού / jharvard / vhosts / localhosts / html από προεπιλογή.
Αν υπάρχει αυτό το αρχείο, στη συνέχεια, Apache θα χρησιμοποιήσετε το PHP διερμηνέα
να εκτελέσει τον κώδικα PHP σε hello.php.
Αν αυτό το αρχείο δεν υπάρχει τότε Apache θα ρίξει ένα δεν βρέθηκε σφάλμα
ή ένα σφάλμα 404, που πιθανώς έχετε δει κατά την περιήγηση στο Web.
>> Ας ρίξουμε μια ματιά σε hello.php.
Μπορούμε να δούμε εδώ ότι hello.php δημιουργεί μια γραμμή σήμα της εξόδου.
Όταν τρέξαμε hello.php στη γραμμή εντολών μέσω php hello.php
ότι η παραγωγή τυπώθηκε στο τερματικό.
Τώρα, όταν έχουμε πρόσβαση σε αυτό το αρχείο μέσω μιας διεύθυνσης URL στο πρόγραμμα περιήγησης στο web
παραγωγή της θα σταλεί στο πρόγραμμα περιήγησης στο Web,
τόσο με κατεύθυνση προς το URL, http://localhost/hello.php,
μπορούμε να δούμε την έξοδο στο web browser μας.
>> Ας δοκιμάστε να προσθέσετε ένα άλλο printf να hello world πρόγραμμα μας.
Εντάξει, ας το κεφάλι πίσω στο πρόγραμμα περιήγησης στο Web και να δούμε τι έχουμε.
Ενδιαφέρουσες.
Αντί να εκτυπώνετε μια άλλη γραμμή στη δική της γραμμή, όπως θα έχετε δει
στο τερματικό, φαίνεται σαν να πήρε smushed πάνω στην ίδια γραμμή
ως την άλλη printf, οπότε ίσως νέες γραμμές δεν λειτουργούν σε PHP.
Δεν είναι αρκετά.
Να θυμάστε ότι η HTML χρησιμοποιείται συνήθως για τη δημιουργία ιστοσελίδων
που μπορεί να εμφανιστούν από web browsers.
Δεν είναι μόνο το string γεια από php δεν είναι έγκυρο HTML,
αλλά υπενθυμίζουν ότι δεν μπορούμε να χρησιμοποιήσουμε τον χαρακτήρα \ n σε HTML
για να δημιουργήσετε μια αλλαγή γραμμής.
Αντί απλά έξοδο εξόδου έγκυρη HTML ενός let χορδών.
Με τη χρήση της παραγράφου ετικέτες καθένα από printf κλήσεις μας
θα εμφανίζεται στη δική της γραμμή,
έτσι και τώρα, όταν επισκεπτόμαστε τον προσανατολισμό URL για να valid.php
http://localhost/valid.php
βλέπουμε το αποτέλεσμα που ψάχνουμε.
>> Τώρα, αν δείτε τον κώδικα αυτής της σελίδας
μπορούμε να δούμε ότι είμαστε τώρα ψάχνουν σε έγκυρο HTML,
που θα δημιουργηθούν από την PHP.
Κάνοντας όλα τα HTML μας μέσα κλήσεις printf
είναι, φυσικά, πρόκειται να πάρει πραγματικά ενοχλητικό.
Ευτυχώς μπορούμε να αναμειγνύεται εύκολα HTML και PHP
στο ίδιο αρχείο php..
Θυμηθείτε, όλοι μας κώδικα PHP πρέπει να περικλείεται εντός <? Php
και>.
Τίποτα που δεν περικλείεται μέσα σε αυτά τα διαχωριστικά
απλώς θα αποσταλεί ως έξοδο στο πρόγραμμα περιήγησης
αντί να εκτελείται.
Αυτό σημαίνει ότι μπορούμε να κάνουμε κάτι τέτοιο.
Εμείς απλά να γράψετε HTML μέσα μας php αρχείο.
και στη συνέχεια τοποθετήστε μπλοκ PHP όπου θα θέλαμε κάποια κώδικα php να εκτελεστεί.
Εδώ ορίζουμε μερικές μεταβλητές στην αρχή του αρχείου,
και αργότερα τα εκτυπώσετε μέσα από HTML μας.
Τώρα, αν επισκεφτείτε αυτό το URL, http://localhost/mixed.php
μπορούμε να δούμε αξιολογηθεί PHP μας μέσα από HTML μας.
>> Τώρα, ας ρίξουμε μια ματιά στο πώς μπορούμε να περάσουμε τα δεδομένα
μεταξύ των διαφόρων σελίδες PHP μας.
Αντί να λέει
μπορούμε απλά να πούμε <? = η μεταβλητή θα θέλαμε να εκτυπώσετε, ή,
και>.
Ας ρίξουμε τώρα μια ματιά στο πώς μπορούμε να περάσουμε τα δεδομένα
μεταξύ των διαφόρων σελίδες PHP μας.
Ένας τρόπος να γίνει αυτό είναι να κωδικοποιήσει πληροφορίες στη διεύθυνση URL της σελίδας.
Κατά την περιήγηση στο Web, μπορεί να έχετε παρατηρήσει ότι ορισμένες διευθύνσεις URL
περιέχει ένα; ακολουθείται από μια σειρά που περιέχει συμπλεκτικά σύμβολα και σύμβολα ισότητας.
Αυτό το τμήμα του URL που είναι γνωστό ως συμβολοσειράς ερωτήματος,
και αυτό σας επιτρέπει να περάσετε αποτελεσματικά επιχειρήματα για PHP script σας.
Η συμβολοσειρά ερωτήματος αποτελείται από βασικά ζευγάρια αξίας, ακριβώς όπως ένα πίνακα κατακερματισμού.
Το σύμβολο του ίσον χωρίζει ένα κλειδί και την αντίστοιχη αξία του
ενώ συμπλεκτικά σύμβολα χωρίζουν ζευγάρια.
Μια διεύθυνση URL που μοιάζει με http://localhost/get.php?foo=bar&baz=qux
έχει 2 βασικά ζευγάρια αξίας στο query string.
Το κλειδί foo χάρτες στο μπαρ αξίας,
και το κλειδί baz χάρτες στο QUX αξία.
Μπορούμε εύκολα να έχουν πρόσβαση σε αυτά τα βασικά ζεύγη αξία χρησιμοποιώντας μια ειδική μεταβλητή στην PHP,
$ _GET.
$ _GET Είναι ένας associative array
που συμπληρώνεται αυτόματα με τα δεδομένα συμβολοσειράς ερωτήματος.
Αυτό σημαίνει ότι με βάση αυτή τη διεύθυνση URL $ _GET ["foo"]
θα είναι ίση με τη γραμμή χορδών.
>> Ας ρίξουμε μια ματιά σε get.php να δείτε $ _GET σε δράση.
Εδώ είμαστε χρησιμοποιώντας μια λειτουργία που ονομάζεται var_dump,
η οποία όταν δίνεται μια σειρά ή άλλης μεταβλητής
θα το εκτυπώσουν μας.
Τώρα, αν απλώς πρόσβαση http://localhost/get.php
Στη συνέχεια θα δούμε έναν άδειο πίνακα, επειδή δεν έχουμε προβλέψει μια σειρά ερωτημάτων.
Αν το κάνουμε παρέχουν μια σειρά ερωτημάτων μέσω http://localhost/get.php?foo=bar&baz=qux
τότε μπορούμε να δούμε ότι η μεταβλητή $ _GET θα περιέχει
βασικά ζευγάρια αξίας της συμβολοσειράς ερωτήματος.
Αλλά τι γίνεται αν δεν θέλουμε να βάλουμε τα στοιχεία μας μέσα στο URL της σελίδας;
Για μεγάλες ποσότητες δεδομένων, αυτό μπορεί να οδηγήσει σε ορισμένες πολύ άσχημο URLs
που πρόκειται να κάνει λαμπερό βλέμμα κουτσός ιστοσελίδα μας.
Μπορούμε να βάλουμε αντί για το string ερώτημα στο σώμα
των αιτήσεων HTTP αντί URL του αιτήματος.
Στη συνέχεια, μπορούμε να χρησιμοποιήσουμε $ _POST μεταβλητή της PHP
να έχουν πρόσβαση τα βασικά ζεύγη τιμών.
Ένας τρόπος να γίνει αυτό είναι μέσω μιας φόρμας HTML.
Εδώ έχουμε μια απλή μορφή HTML.
Σημειώστε εδώ ότι η μέθοδος χαρακτηριστικό αυτής της μορφής είναι μετά.
Αυτό λέει στον browser να θέσει βασικά ζευγάρια αξίας της φόρμας
μέσα στο σώμα της αίτησης και όχι τη διεύθυνση URL.
>> Αν ήταν να χρησιμοποιήσει την τιμή να πάρει για αυτό το χαρακτηριστικό
τότε βασικά ζευγάρια αξίας της φόρμας θα αντί να πάει στο επερώτησης,
έτσι θα μπορούσαμε να έχουν πρόσβαση σε αυτά μέσω του $ _GET και πάλι.
Το χαρακτηριστικό δράση του εντύπου λέει στον browser πού να στείλει τα δεδομένα.
Εδώ 2 στοιχεία εισόδου μας έχουν χαρακτηριστικά όνομα.
Η αξία των ιδιοτήτων όνομα θα χρησιμεύσει ως κλειδιά σε δεδομένα μας,
και οι τιμές των εισροών κείμενο θα γίνει τιμές αυτών των κλειδιών.
Τώρα, ας ρίξουμε μια ματιά στο post.php,
το αρχείο που αυτή η μορφή υποβολή.
Ακριβώς όπως κάναμε και πριν, είμαστε απλά εμφανίζει τα περιεχόμενα της μεταβλητής $ _POST.
>> Ας πλοηγηθείτε στην φόρμα με http://localhost/form.php.
Τώρα, όταν θα υποβάλει το έντυπο μπορούμε να δούμε ότι τα δεδομένα από form.php
διοχετεύεται στο post.php χωρίς να προσαρτήσει μια σειρά ερωτημάτων προς τη διεύθυνση URL.
Τώρα που έχουμε δει 2 διαφορετικούς τρόπους μετάδοσης δεδομένων μεταξύ των σελίδων PHP,
πάρετε και μετά.
Στα παραδείγματα μας, χρησιμοποιήσαμε 2 διαφορετικούς τύπους αιτήσεων HTTP.
Όπως μπορείτε να φανταστείτε, ένα αίτημα get χρησιμοποιείται όταν κατοικήθηκε
$ _GET Από το URL, και μετά από αίτημα χρησιμοποιήθηκε
όταν κατοικήθηκε $ _POST.
Κατά το σχεδιασμό web εφαρμογές σας είναι ένας καλός εμπειρικός κανόνας για να χρησιμοποιήσετε τα αιτήματα get
όταν η εφαρμογή σας θα διαβάσει μόνο τα δεδομένα, και μετά τα αιτήματα
όταν η εφαρμογή σας θα γράψετε δεδομένα.
Για παράδειγμα, ένα ερώτημα αναζήτησης θα διαβάσει δεδομένα από την εφαρμογή σας,
έτσι ένα αίτημα πάρει νόημα.
Από την άλλη πλευρά, η εφαρμογή σας θα γράψει τα δεδομένα μέσω του κάτι σαν μια φόρμα εγγραφής,
έτσι ένα αίτημα μετά θα ήταν πιο λογικό, και αυτό είναι μια επισκόπηση μερικών από τις τεχνικές
θα πρέπει να χρησιμοποιούν το CS50 να δημιουργήσουν ιστοσελίδες που χρησιμοποιούν PHP.
>> Το όνομά μου είναι ο Tommy, και αυτό είναι CS50.
[CS50.TV]