1 00:00:00,000 --> 00:00:03,920 >> [Παίζει μουσική] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> David J. Malan: Εντάξει. 4 00:00:13,800 --> 00:00:15,640 Αυτό είναι CS50. 5 00:00:15,640 --> 00:00:17,620 Αυτή είναι η αρχή της εβδομάδας οκτώ. 6 00:00:17,620 --> 00:00:22,440 Και ίσως θυμάστε ότι είχαμε μείνει τελευταία φορά που κοιτάζει μια νέα γλώσσα 7 00:00:22,440 --> 00:00:23,240 συνολικά. 8 00:00:23,240 --> 00:00:25,905 Στην πραγματικότητα, το ένα που είναι αρκετά ελαφρύ και δεν είναι ακόμη 9 00:00:25,905 --> 00:00:26,940 μια γλώσσα προγραμματισμού. 10 00:00:26,940 --> 00:00:31,100 Είναι μια γλώσσα σήμανσης που μας επιτρέπει στην πραγματικότητα δομή και ιστοσελίδες. 11 00:00:31,100 --> 00:00:33,350 Και όταν έχετε κάτι άλλο σε συνδυασμό με this-- 12 00:00:33,350 --> 00:00:35,670 ή σύντομα θα, εάν δεν έχετε ήδη. 13 00:00:35,670 --> 00:00:38,530 Εμείς πάμε για να χρησιμοποιήσετε Cascading Style Sheets ή CSS, η οποία 14 00:00:38,530 --> 00:00:40,971 είναι ένας άλλος τύπος της γλώσσας με τις ιδιότητες και τις αξίες 15 00:00:40,971 --> 00:00:43,220 ότι πρόκειται να ας κάνουμε πράγματα ήθελε να αλλάξει το χρώμα 16 00:00:43,220 --> 00:00:46,010 και να αλλάξετε τη θέση και αυτού του είδους τα τσιμπήματα. 17 00:00:46,010 --> 00:00:49,940 Αλλά σήμερα και μετά, αρχίζουμε να επικεντρωθεί σε πιο ισχυρές γλώσσες, 18 00:00:49,940 --> 00:00:52,810 πραγματικές γλώσσες προγραμματισμού, όπως η PHP. 19 00:00:52,810 --> 00:00:54,880 >> Έτσι η PHP έχει εδώ και αρκετό καιρό. 20 00:00:54,880 --> 00:00:56,810 Και όπως θα δείτε, το σχεδιάστηκε κατά κύριο λόγο 21 00:00:56,810 --> 00:01:00,280 νωρίς για την πραγματική χρήση σε ανάπτυξη ιστοσελίδων 22 00:01:00,280 --> 00:01:02,360 και στην πραγματικότητα δημιουργία ιστοσελίδων. 23 00:01:02,360 --> 00:01:04,849 Έτσι, τι είδους χαρακτηριστικά κάνει μια γλώσσα 24 00:01:04,849 --> 00:01:10,040 χρειάζεται προκειμένου να κάνει το web σελίδες δυναμικά με αυτό; 25 00:01:10,040 --> 00:01:14,760 >> Με άλλα λόγια, εάν θέλετε να δημιουργήσετε περιεκτικότητα dynamically-- όπως του Facebook 26 00:01:14,760 --> 00:01:19,480 Newsfeed, που αλλάζει συνεχώς, ή στιγμιαία μηνύματα που ξεπροβάλλουν από το χρόνο 27 00:01:19,480 --> 00:01:21,872 να time-- όπως ποια είναι η βασικό κομμάτι της λειτουργικότητας 28 00:01:21,872 --> 00:01:24,580 χρειάζεστε σε μια γλώσσα προγραμματισμού που θα σας αφήσει δυναμικά 29 00:01:24,580 --> 00:01:28,070 εκτυπώσετε τις νέες πληροφορίες στην οθόνη; 30 00:01:28,070 --> 00:01:28,685 >> ΜΑΘΗΤΗ: Κωδικός. 31 00:01:28,685 --> 00:01:29,560 David J. Malan: Κωδικός. 32 00:01:29,560 --> 00:01:30,440 ΟΚ. 33 00:01:30,440 --> 00:01:31,995 Θα πάρει αυτό. 34 00:01:31,995 --> 00:01:35,310 Λίγο πιο ακριβή. 35 00:01:35,310 --> 00:01:37,639 Θέλω να πω, θα μπορούσαμε να κάνουμε Αυτό με C, ειλικρινά. 36 00:01:37,639 --> 00:01:38,930 Θα ήταν ένας πόνος στο λαιμό. 37 00:01:38,930 --> 00:01:41,045 But-- είναι αυτή η δέσμευση; 38 00:01:41,045 --> 00:01:41,895 >> Φοιτητής: Ναι. 39 00:01:41,895 --> 00:01:42,677 Μεταβλητές, ίσως; 40 00:01:42,677 --> 00:01:43,760 David J. Malan: Μεταβλητές. 41 00:01:43,760 --> 00:01:44,160 Εντάξει, σίγουρα. 42 00:01:44,160 --> 00:01:45,740 Οι μεταβλητές μπορούν σίγουρα να μας βοηθήσει. 43 00:01:45,740 --> 00:01:47,020 Και ακόμα κάτι πιο απλό. 44 00:01:47,020 --> 00:01:50,640 Εμείς αυτό που χρησιμοποιείται στην πρώτη πρόγραμμα την πρώτη κιόλας μέρα 45 00:01:50,640 --> 00:01:55,686 όταν έχουμε πραγματικά είπε "Hello World". 46 00:01:55,686 --> 00:01:56,570 >> Φοιτητής: Εκτύπωση. 47 00:01:56,570 --> 00:01:57,778 >> David J. Malan: Εκτύπωση, σωστά; 48 00:01:57,778 --> 00:02:01,050 Εκτύπωση, ή printf στο κόσμο του C. Έτσι, όλο αυτό το διάστημα, 49 00:02:01,050 --> 00:02:03,362 είχαμε σε μας διάθεσης μια language-- C, 50 00:02:03,362 --> 00:02:05,570 σε particular-- και ακόμη Scratch για το συγκεκριμένο θέμα που 51 00:02:05,570 --> 00:02:07,400 μπορεί να δημιουργήσει χορδές του κειμένου. 52 00:02:07,400 --> 00:02:11,090 >> Λοιπόν, εάν HTML, όπως είδαμε την περασμένη εβδομάδα, είναι μόλις ένα σωρό χορδές του κειμένου 53 00:02:11,090 --> 00:02:14,692 έστω και με ανοιχτή παρένθεση και έκλεισε παρένθεση και κάποιο είδος της ομοιοκαταληξίας 54 00:02:14,692 --> 00:02:16,650 και ο λόγος πίσω από αυτό, καλά τότε θα μπορούσαμε πραγματικά να 55 00:02:16,650 --> 00:02:20,440 αρχίσει να παράγει ιστοσελίδες, είτε χειροκίνητα πληκτρολογώντας τους στο gedit 56 00:02:20,440 --> 00:02:23,870 ή στο Microsoft Word, γι 'αυτό matter-- χρειαζόμαστε μόνο ένα πρόγραμμα επεξεργασίας κειμένου. 57 00:02:23,870 --> 00:02:26,830 >> Ή θα μπορούσαμε να γράψουμε κώδικα, στην πρότασή σας 58 00:02:26,830 --> 00:02:30,435 νωρίτερα, ότι θα μας αφήσει δυναμικά παράγουν HTML, 59 00:02:30,435 --> 00:02:32,560 και αυτό είναι που θα πάμε να αρχίσουν να κάνουν με την PHP 60 00:02:32,560 --> 00:02:34,900 και, τελικά, ακόμη και με ένα γλώσσα που ονομάζεται το JavaScript, 61 00:02:34,900 --> 00:02:37,910 είναι να χρησιμοποιήσετε μια γλώσσα για να δημιουργήσει ένα άλλο. 62 00:02:37,910 --> 00:02:40,720 Και πράγματι, αυτό είναι ό, τι το Facebook και πολλά, πολλά άλλα sites 63 00:02:40,720 --> 00:02:44,530 κάνουν πραγματικά να δυναμικά εμφανίζουν νέες πληροφορίες για εσάς. 64 00:02:44,530 --> 00:02:47,117 >> Ας αρχίσουμε με this-- ένα αινιγματικό γραμμή που αναζητούν, αλλά ένα 65 00:02:47,117 --> 00:02:48,450 ότι στην πραγματικότητα είναι αρκετά ισχυρό. 66 00:02:48,450 --> 00:02:51,210 Μέχρι στιγμής, έχουμε χρησιμοποιήσει C, το οποίο είναι ένα καταρτίζονται γλώσσα. 67 00:02:51,210 --> 00:02:55,050 Και μόνο μια γρήγορη recap-- ένα μεταγλωττισμένο γλώσσα έχει ποια χαρακτηριστικά; 68 00:02:55,050 --> 00:02:59,050 Θα πρέπει προφανώς να καταρτίζουν αυτό, αλλά τι σημαίνει αυτό; 69 00:02:59,050 --> 00:03:00,505 Ναι; 70 00:03:00,505 --> 00:03:02,940 >> Φοιτητής: Πρέπει να είναι συναρμολογούνται σε κώδικα μηχανής. 71 00:03:02,940 --> 00:03:03,060 >> David J. Malan: ΟΚ. 72 00:03:03,060 --> 00:03:04,530 Θα πρέπει να συναρμολογηθούν σε κώδικα μηχανής. 73 00:03:04,530 --> 00:03:07,340 Έτσι θα πάρετε τον πηγαίο κώδικα σας, η οποία είναι το είδος της αγγλικής-όπως. 74 00:03:07,340 --> 00:03:09,270 Μπορείτε να μετατρέψετε ότι σε κάτι χαμηλότερο επίπεδο, 75 00:03:09,270 --> 00:03:11,590 το οποίο τελικά ονομάζεται αντικείμενο code-- 0 και 1 του. 76 00:03:11,590 --> 00:03:14,830 Και είναι αυτά τα 0 και 1, ότι μία CPU, όπως εκείνες που γίνονται από την Intel, 77 00:03:14,830 --> 00:03:16,110 πραγματικά καταλαβαίνουν. 78 00:03:16,110 --> 00:03:19,690 >> Τώρα, PHP και Python και Ruby και JavaScript και τσαμπιά των άλλων 79 00:03:19,690 --> 00:03:23,190 γλώσσες δεν καταρτίζονται γλώσσες, αλλά ερμηνευμένες γλώσσες, 80 00:03:23,190 --> 00:03:26,630 το οποίο σημαίνει απλά πληκτρολογείτε και, στη συνέχεια, δεν τους μετατρέψει σε 0 και 1 του. 81 00:03:26,630 --> 00:03:30,790 Μπορείτε, αντί απλά να παρέχει στη συνέχεια ως είσοδος στο πρόγραμμα κάποιου άλλου, 82 00:03:30,790 --> 00:03:32,080 ονομάζεται ένα διερμηνέα. 83 00:03:32,080 --> 00:03:34,460 Και ότι ατόμου το πρόγραμμα έχει σχεδιαστεί 84 00:03:34,460 --> 00:03:38,280 να καταλάβει τι το καθένα και κάθε σύμβολο σε Python και PHP 85 00:03:38,280 --> 00:03:42,650 ή Ruby ή οποιοδήποτε αριθμό άλλες γλώσσες σημαίνει. 86 00:03:42,650 --> 00:03:44,760 >> Και έτσι το μόνο που χρειαζόμαστε είναι κάτι σαν αυτό. 87 00:03:44,760 --> 00:03:46,350 Έτσι, στην πραγματικότητα, Πάω να πάει πάνω στη συσκευή 88 00:03:46,350 --> 00:03:48,100 Εδώ, ακριβώς σε οποιαδήποτε παλιό παράθυρο, και είμαστε 89 00:03:48,100 --> 00:03:52,580 πρόκειται να προχωρήσει και ανοικτό ένα αρχείο με όνομα, ας πούμε, γεια. 90 00:03:52,580 --> 00:03:55,780 Τώρα, στο παρελθόν, θα μπορούσα να έχω σωθεί Αυτό ακόμη και με την επέκταση του αρχείου, 91 00:03:55,780 --> 00:03:57,910 αλλά Πάω να κάνω κάτι ακόμα πιο απλό εδώ. 92 00:03:57,910 --> 00:04:02,450 Πάω να προχωρήσει και να αρχίσει Αυτό το αρχείο με αυτό το αινιγματικό σύνταξη. 93 00:04:02,450 --> 00:04:06,310 Έτσι "χρήστη, bin, env, για το περιβάλλον, php. " 94 00:04:06,310 --> 00:04:10,670 >> Αυτό είναι απλά μια γραμμή κώδικα που είναι πρόκειται να πει το λειτουργικό μου σύστημα, 95 00:04:10,670 --> 00:04:13,730 πηγαίνετε να βρείτε στο τοπικό σας περιβάλλον, όποια και αν είναι, 96 00:04:13,730 --> 00:04:18,149 όπου PHP is-- την interpreter-- και να προχωρήσει και να χρησιμοποιεί το εν λόγω διερμηνέα 97 00:04:18,149 --> 00:04:20,589 να ερμηνεύσει τον παρακάτω κώδικα. 98 00:04:20,589 --> 00:04:22,760 Τώρα, αυτό είναι το είδος του ένα άσχημο χαρακτηριστικό της PHP. 99 00:04:22,760 --> 00:04:24,980 Αλλά σε αυτή τη γλώσσα, οποιαδήποτε φορά που γράφετε κώδικα PHP, 100 00:04:24,980 --> 00:04:29,200 θα πρέπει να έχετε ένα από αυτά τα άσχημα Ετικέτες PHP που οριοθετούν την αρχή 101 00:04:29,200 --> 00:04:32,220 του code-- 00:04:37,430 >> Αλλά κάτω από εδώ, μπορώ να κάνω κάτι τώρα αρκετά απλή, όπως printf γεια κόμμα 103 00:04:37,430 --> 00:04:40,922 κόσμο backslash n κλείσιμο παραθέτω, κοντά παρένθεση. 104 00:04:40,922 --> 00:04:42,630 Και τότε μόνο για καλό μέτρο, Πάω 105 00:04:42,630 --> 00:04:45,380 να προχωρήσει και κοντά PHP tag μου εδώ 106 00:04:45,380 --> 00:04:47,390 έτσι ώστε όλα τα βλέμματά όμορφα όμορφα τυπωμένο. 107 00:04:47,390 --> 00:04:50,780 >> Και μόλις κάνω κλικ στο κουμπί Αποθήκευση, Το gedit είναι αρκετά πραγματικά έξυπνη 108 00:04:50,780 --> 00:04:54,620 να εξετάσουμε αυτό το πρώτο κιόλας γραμμή και συνειδητοποιούν, ω, είστε σύνταξη κώδικα PHP. 109 00:04:54,620 --> 00:04:56,710 Επιτρέψτε μου να τονίζουν σύνταξη με τα χρώματα 110 00:04:56,710 --> 00:04:58,690 εδώ έτσι ώστε να στέκεται έξω λίγο περισσότερο. 111 00:04:58,690 --> 00:05:01,300 Αλλά τώρα είμαι πρόκειται να πάει κάτω στο παράθυρο του τερματικού μου. 112 00:05:01,300 --> 00:05:02,340 Θα μεγέθυνση. 113 00:05:02,340 --> 00:05:06,860 >> Το πρόγραμμα αυτό ονομαζόταν "γεια" έτσι Πάω να κάνω dot κάθετος Γεια σας, 114 00:05:06,860 --> 00:05:07,990 αλλά δεν επιτρέπεται η πρόσβαση. 115 00:05:07,990 --> 00:05:08,490 Και το bash. 116 00:05:08,490 --> 00:05:10,610 Είμαστε πραγματικά ακούσει ότι Πριν πράγμα μια-δυο εβδομάδες 117 00:05:10,610 --> 00:05:13,140 στο πλαίσιο της Shellshock, ένα από αυτά τα σφάλματα. 118 00:05:13,140 --> 00:05:16,240 >> Αλλά αρνήθηκε την άδεια που έχουμε δει πριν, ίσως σε ένα διαφορετικό πλαίσιο. 119 00:05:16,240 --> 00:05:19,060 Υπάρχει κάποιος που θυμηθούμε πώς μπορείτε να διορθώσετε κάτι 120 00:05:19,060 --> 00:05:22,100 όπου δεν δίνεται άδεια σαν αυτό; 121 00:05:22,100 --> 00:05:23,490 Ποια είναι η εντολή, τουλάχιστον; 122 00:05:23,490 --> 00:05:24,159 >> Φοιτητής: Chmod. 123 00:05:24,159 --> 00:05:26,700 David J. Malan: Ναι, chmod, για την αλλαγή της λειτουργίας ενός αρχείου. 124 00:05:26,700 --> 00:05:30,171 Και θα έχετε όλα τα πιο χρησιμοποιούνται για την αυτό την επόμενη εβδομάδα με μια επακόλουθη πρόβλημα 125 00:05:30,171 --> 00:05:30,670 ρυθμιστεί. 126 00:05:30,670 --> 00:05:33,211 Αλλά για τώρα, εγώ είμαι πρόκειται να αλλάξει η λειτουργία να μην είναι αναγνώσιμα, 127 00:05:33,211 --> 00:05:36,650 αλλά να δώσει ο καθένας executeability προνόμια, η ικανότητα 128 00:05:36,650 --> 00:05:37,710 για να εκτελέσετε αυτό το αρχείο. 129 00:05:37,710 --> 00:05:40,360 Και Πάω να εκχωρήσετε ότι στο αρχείο γεια. 130 00:05:40,360 --> 00:05:45,150 >> Αν κάνω τώρα dot κάθετος γεια εισάγετε, μπορείτε βλέπετε, στην πραγματικότητα, το πρόγραμμα μου, γεια σου κόσμο. 131 00:05:45,150 --> 00:05:48,760 Και τι έκανα το βήμα σαφώς παραλείψετε εντελώς; 132 00:05:48,760 --> 00:05:49,520 Μεταγλώττιση. 133 00:05:49,520 --> 00:05:51,680 Έτσι έτρεξα ακριβώς αυτό το πρόγραμμα πολύ απλά. 134 00:05:51,680 --> 00:05:55,690 >> Και αυτό αποδεικνύεται μπορείτε να το κάνετε αυτό με πολλοί σύνταξη θυμίζει C. 135 00:05:55,690 --> 00:06:03,400 Επιτρέψτε μου να πάω στο στο σημερινό κώδικα, το οποίο θα τεθεί σε κατάλογο vhost μου 136 00:06:03,400 --> 00:06:05,250 εδώ, για πραγματικούς λόγους θα επανέλθω. 137 00:06:05,250 --> 00:06:09,350 Και Πάω να μπω σε, ας πούμε, τους όρους 1. 138 00:06:09,350 --> 00:06:12,450 >> Και θα δείτε εδώ, πρώτο και απ 'όλα, ένα σωρό σχόλια. 139 00:06:12,450 --> 00:06:15,240 Αλλά αυτό είναι στην πραγματικότητα μια εκ νέου δημιουργία στην PHP 140 00:06:15,240 --> 00:06:18,960 ενός προγράμματος που κάναμε στην εβδομάδα μία που ονομάζεται συνθήκες 1.γ 141 00:06:18,960 --> 00:06:20,690 όπου το σκοπό ζωή του εν λόγω προγράμματος 142 00:06:20,690 --> 00:06:22,950 είναι προφανώς να ρωτήσω ο χρήστης για έναν ακέραιο 143 00:06:22,950 --> 00:06:25,270 και στη συνέχεια να κάνετε κάποια αφράτα ανάλυση σχετικά με αυτό σύμφωνα με την οποία 144 00:06:25,270 --> 00:06:29,510 λέτε αν είναι θετικό ή αρνητική ή ίση με μηδέν. 145 00:06:29,510 --> 00:06:34,220 Και Φέρνω αυτό επάνω μόνο επειδή, εκτός ίσως για μία μικρή λεπτομέρεια, 146 00:06:34,220 --> 00:06:37,150 είναι δυσδιάκριτες τόσο μακριά από C. 147 00:06:37,150 --> 00:06:39,930 >> Ποιο είναι το πιο χαρακτηριστικό εδώ ότι ίσως πηδά έξω 148 00:06:39,930 --> 00:06:41,410 σε σας ως ένα λίγο διαφορετικό; 149 00:06:41,410 --> 00:06:42,160 Ίσως δύο πράγματα. 150 00:06:42,160 --> 00:06:42,660 Ναι; 151 00:06:42,660 --> 00:06:44,070 >> Φοιτητής: σύμβολο του δολαρίου n; 152 00:06:44,070 --> 00:06:44,944 >> David J. Malan: Ναι. 153 00:06:44,944 --> 00:06:46,210 Έτσι, το σύμβολο του δολαρίου n είναι παρούσα. 154 00:06:46,210 --> 00:06:48,120 Και το σύμβολο του δολαρίου, όπως θα δούμε, πρόκειται 155 00:06:48,120 --> 00:06:51,460 να είναι μια λύση στην αρχή κάθε μεταβλητής στην PHP. 156 00:06:51,460 --> 00:06:54,250 Είναι τόσο καλό και bad-- καλό στο ότι αυτό είναι το είδος του προφανές τι είναι 157 00:06:54,250 --> 00:06:56,797 μια μεταβλητή, κακό το ότι είναι ένα ακόμη πράγμα που πρέπει να πληκτρολογήσετε. 158 00:06:56,797 --> 00:06:58,630 Και υπάρχει ένα άλλο πράγμα που δεν έχουμε αρκετά 159 00:06:58,630 --> 00:07:00,876 φαίνεται, τουλάχιστον από αυτή την ορθογραφία. ναι; 160 00:07:00,876 --> 00:07:01,630 >> ΜΑΘΗΤΗ: Readline. 161 00:07:01,630 --> 00:07:02,671 >> David J. Malan: Readline. 162 00:07:02,671 --> 00:07:06,550 Η Readline δεν είδαμε, αυτή καθαυτή, στην C, ακόμη και αν υπάρχει κάτι 163 00:07:06,550 --> 00:07:09,530 παρόμοια, αλλά έχουμε χρησιμοποιήσει getstring, και αυτό είναι ομόλογό του. 164 00:07:09,530 --> 00:07:12,950 Έτσι αν πάω σε αυτό κατάλογο, ο οποίος συμβαίνει να είναι, 165 00:07:12,950 --> 00:07:18,030 όπως θα εξηγήσω σε λίγο στο vhost μου καταλόγου και πηγή μου Ένας κατάλογος, 166 00:07:18,030 --> 00:07:22,730 και πάω μπροστά και να κάνουμε dot κάθετος conditions-- whoops-- κάθετος τελεία 167 00:07:22,730 --> 00:07:26,710 προϋποθέσεις 1, θα δείτε, και πάλι, η ίδια issue-- permission denied. 168 00:07:26,710 --> 00:07:33,610 >> Έτσι, επιτρέψτε μου να μεγεθύνετε και να κάνουμε chmod ένα συν x για τους όρους, τις συνθήκες dot κάθετος. 169 00:07:33,610 --> 00:07:35,222 Θα ήθελα έναν ακέραιο, παρακαλούμε, 50. 170 00:07:35,222 --> 00:07:36,930 Και θα μπορούσαμε να παίξει αυτό παιχνίδι όλη την ημέρα. 171 00:07:36,930 --> 00:07:39,140 Είναι πρόκειται να συμπεριφέρονται ακριβώς όπως έπραξε σε μία εβδομάδα. 172 00:07:39,140 --> 00:07:42,860 >> Εντάξει, έτσι δεν είναι όλα τόσο διαφορετικά, με εξαίρεση όχι μόνο ότι η μικρή κομμάτι της σύνταξης, 173 00:07:42,860 --> 00:07:45,490 αλλά στην κορυφή, εγώ πάλι είχε αυτή τη γραμμή η οποία 174 00:07:45,490 --> 00:07:49,760 μου επέτρεψε να δημιουργήσω κάτι που Μοιάζει με ένα πρόγραμμα C που ονομάζεται Γεια σας, 175 00:07:49,760 --> 00:07:51,150 ονομάζεται προϋποθέσεις 1. 176 00:07:51,150 --> 00:07:54,520 Αλλά δεν είναι 0 και αυτά Είμαι άμεση εκτέλεση. 177 00:07:54,520 --> 00:07:57,620 Είναι αντίθετα τρέχει αυτό διερμηνέα του οποίου το όνομα 178 00:07:57,620 --> 00:07:59,440 συμβαίνει να είναι ταυτόσημη με τη γλώσσα. 179 00:07:59,440 --> 00:08:04,970 Το πρόγραμμα ονομάζεται PHP, και τον κωδικό μου κάτω από μία γραμμή που έχει περάσει σε αυτό. 180 00:08:04,970 --> 00:08:07,740 >> Μπορούμε να κάνουμε μια άλλη αρκετά απλή παράδειγμα θυμίζει κάτι 181 00:08:07,740 --> 00:08:09,240 κάναμε πριν μερικές εβδομάδες. 182 00:08:09,240 --> 00:08:12,020 Και πάλι, αυτό είναι ένα είδος του αυθαίρετη κομμάτι του κώδικα 183 00:08:12,020 --> 00:08:14,000 ότι προφανώς δεν ό, τι όταν το τρέξετε; 184 00:08:14,000 --> 00:08:15,625 Τι είναι αυτό πρόκειται να εκτυπώσετε, προφανώς; 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Αρχικά, λοιπόν, στη γραμμή 16, είναι πρόκειται να πω X είναι τώρα 2, κατά πάσα πιθανότητα. 187 00:08:28,250 --> 00:08:30,920 % D είναι η ίδια όπως $ i για printf. 188 00:08:30,920 --> 00:08:33,460 Άρα, λοιπόν, είναι cubing, τελεία, τελεία, τελεία, στη γραμμή 17. 189 00:08:33,460 --> 00:08:36,299 Και στη συνέχεια, γραμμή 18 εμφανίζεται για να καλέσετε μια συνάρτηση κύβους. 190 00:08:36,299 --> 00:08:37,600 Και όπου ορίζεται κύβους; 191 00:08:37,600 --> 00:08:40,319 >> Λοιπόν, αυτό μοιάζει με γραμμή 25, έτσι ώστε να μην είναι όλα τόσο διαφορετικά. 192 00:08:40,319 --> 00:08:42,610 Έχω κάποια σχόλια πάνω αυτό, αλλά για το μεγαλύτερο μέρος, 193 00:08:42,610 --> 00:08:45,370 είναι μια αρκετά απλή Η μεταφορά ή μετατροπή 194 00:08:45,370 --> 00:08:48,470 από το Γ πρόγραμμα για την έκδοση της PHP. 195 00:08:48,470 --> 00:08:52,670 Αλλά τώρα υπάρχουν μια-δυο διαφορές που ίσως θα πρέπει να πηδούν έξω. 196 00:08:52,670 --> 00:08:56,100 Τι άλλο είναι διαφορετικό για το πώς θα θα μπορούσε να γράψει αυτό το ίδιο πρόγραμμα σε C; 197 00:08:56,100 --> 00:08:57,900 >> Φοιτητής: [δεν ακούγεται]. 198 00:08:57,900 --> 00:09:00,070 >> David J. Malan: Δεν υπάρχει Δεν πρωτότυπο επάνω στην κορυφή. 199 00:09:00,070 --> 00:09:03,210 Έτσι PHP-- και ειλικρινά, ένας πολλά σύγχρονα languages-- 200 00:09:03,210 --> 00:09:06,920 είναι πολύ πιο έξυπνη και πιο χρήσιμες από C compilers σε ότι σας 201 00:09:06,920 --> 00:09:09,740 μπορεί να θέσει τη λειτουργία μέχρι εδώ, μπορείτε να βάλετε μια λειτουργία εδώ κάτω, 202 00:09:09,740 --> 00:09:12,740 και ο διερμηνέας θα για να κάνετε την εύνοια της ανάγνωσης 203 00:09:12,740 --> 00:09:16,010 ολόκληρο το αρχείο πριν να αποφασίσει ότι κάποια λειτουργία δεν υπάρχει. 204 00:09:16,010 --> 00:09:17,970 Τόσο ωραίο βελτιώσεις χρόνια αργότερα. 205 00:09:17,970 --> 00:09:22,126 Αλλά υπάρχει και κάτι άλλο διαφορετικό ή απουσιάζει εδώ. 206 00:09:22,126 --> 00:09:22,626 Ναι; 207 00:09:22,626 --> 00:09:25,084 >> Φοιτητής: [δεν ακούγεται]. 208 00:09:25,084 --> 00:09:27,750 David J. Malan: Εμείς δεν χρειάζεται να δηλώνουν τους τύπους των μεταβλητών, 209 00:09:27,750 --> 00:09:31,780 έτσι θα δούμε πριν από καιρό ότι υπάρχουν διαφορετικοί τύποι σε PHP, 210 00:09:31,780 --> 00:09:34,970 αλλά δεν χρειάζεται να τα προσδιορίσει, η οποία επίσης είναι και καλό και κακό. 211 00:09:34,970 --> 00:09:36,623 Και υπάρχει ένα άλλο πράγμα που λείπει. 212 00:09:36,623 --> 00:09:37,430 >> Φοιτητής: Δεν υπάρχει καμία βιβλιοθήκες. 213 00:09:37,430 --> 00:09:38,630 >> David J. Malan: Δεν υπάρχουν βιβλιοθήκες. 214 00:09:38,630 --> 00:09:39,350 Εντάξει, έτσι ώστε να είναι ωραίο. 215 00:09:39,350 --> 00:09:40,540 Έχουμε πάρει πολλά περισσότερα από το κουτί. 216 00:09:40,540 --> 00:09:43,373 Έτσι, υπάρχει πράγματι μια πολύ πιο τα πράγματα από ό, τι νόμιζα ότι ήταν διαφορετική. 217 00:09:43,373 --> 00:09:44,350 Πόσο περίπου τρόπο στην πλάτη; 218 00:09:44,350 --> 00:09:46,032 Τι είναι αυτό; 219 00:09:46,032 --> 00:09:46,740 Πείτε ότι για μια ακόμη φορά; 220 00:09:46,740 --> 00:09:47,960 >> ΜΑΘΗΤΗ: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> David J. Malan: Δεν δείκτες. 222 00:09:49,270 --> 00:09:51,280 ΟΚ, τουλάχιστον σε αυτό το παράδειγμα, όχι. 223 00:09:51,280 --> 00:09:52,070 Αυτό είναι δίκαιη. 224 00:09:52,070 --> 00:09:55,090 Έτσι, δεν υπάρχουν δείκτες σε PHP πραγματικότητα σε γενικές γραμμές. 225 00:09:55,090 --> 00:09:58,730 Υπάρχουν κάτι που ονομάζεται αναφορές, αλλά εμείς δεν θα ξοδεύουν πάρα πολύ χρόνο εκεί. 226 00:09:58,730 --> 00:09:59,520 Και τι άλλο; 227 00:09:59,520 --> 00:10:00,185 >> ΜΑΘΗΤΗ: Κύριο. 228 00:10:00,185 --> 00:10:01,060 David J. Malan: Κύριο. 229 00:10:01,060 --> 00:10:02,768 Έτσι, αυτό ήταν το biggie Σκεφτόμουν. 230 00:10:02,768 --> 00:10:04,660 Σημειώστε ότι δεν υπάρχει κεντρικό σημείο εισόδου. 231 00:10:04,660 --> 00:10:06,525 Μπορείτε απλά να αρχίσετε να γράφετε τον κωδικό σας. 232 00:10:06,525 --> 00:10:08,400 Και αυτό είναι στην πραγματικότητα πρόκειται να είναι πλεονεκτικό 233 00:10:08,400 --> 00:10:10,560 όταν έχουμε μετάβαση στιγμιαία για να χρησιμοποιεί στην πραγματικότητα 234 00:10:10,560 --> 00:10:13,980 Αυτή η ίδια γλώσσα για web-based προγραμματισμού, για την οποία εμείς 235 00:10:13,980 --> 00:10:16,580 δεν θέλουν να έχουν ένα μόνο σημείο εισόδου. 236 00:10:16,580 --> 00:10:19,980 Μπορούμε ίσως να θέλετε να έχετε μια δέσμη των URLs, ένα σωρό διαφορετικά αρχεία 237 00:10:19,980 --> 00:10:22,930 λαμβάνοντας όλα στην είσοδο χρήστη και παράγει αντίγραφα. 238 00:10:22,930 --> 00:10:27,130 >> Αλλά εδώ είναι το πολύ απογοητευτικό παράδειγμα ότι είχα υποσχεθεί την τελευταία φορά, 239 00:10:27,130 --> 00:10:30,130 δηλαδή σε αυτόν το φάκελο Εδώ, ορθογραφικά λάθη. 240 00:10:30,130 --> 00:10:33,680 Έτσι, σε αυτό το ορθογράφος αρχείο, το οποίο θα δεν θα ξοδεύουν πάρα πολύ χρόνο σε, δεν υπάρχει 241 00:10:33,680 --> 00:10:37,870 ουσιαστικά ένα porting-- Ρ-Ο-Κ-Τ. Είναι ακριβώς η λέξη δίνεται όταν, ας πούμε, 242 00:10:37,870 --> 00:10:40,800 να μετατρέψετε από τη μία γλώσσα σε ένα άλλο με το χέρι συνήθως. 243 00:10:40,800 --> 00:10:45,680 >> Αυτό είναι μια μεταφορά του υπολογιστή έκδοση της ορθογράφο από PSET 5. 244 00:10:45,680 --> 00:10:48,856 Και εγώ προσπάθησα ουσιαστικά να μετατρέψει αυτό ανά γραμμή όσο μπορώ. 245 00:10:48,856 --> 00:10:51,730 Έτσι, αν σας αρέσει αυτό το είδος του πράγματος, είναι πραγματικά αξίζει σε κάποιο σημείο 246 00:10:51,730 --> 00:10:54,229 τραβώντας τους τόσο από πλευράς πλευρά και να δει τι είναι η ίδια 247 00:10:54,229 --> 00:10:55,230 και τι είναι διαφορετικό. 248 00:10:55,230 --> 00:10:57,510 Αλλά είναι αρκετά καταριέται παρόμοιο. 249 00:10:57,510 --> 00:11:00,110 Αν θυμάστε τι Ορθογράφος Έμοιαζε και, 250 00:11:00,110 --> 00:11:02,110 ακόμα κι αν δεν το έκανε πρέπει να αλλάξετε αυτό το αρχείο, 251 00:11:02,110 --> 00:11:04,860 είναι αρκετά παρόμοια δομικά με μόνο ένα ζευγάρι 252 00:11:04,860 --> 00:11:06,200 των αλλαγών εδώ και εκεί. 253 00:11:06,200 --> 00:11:10,140 >> Έτσι, αυτό είναι μόνο για να πω ότι είναι αρκετά εύκολο να μετατρέψετε ορθογράφος 254 00:11:10,140 --> 00:11:12,000 από C σε PHP. 255 00:11:12,000 --> 00:11:15,390 Αλλά στο λεξικό, υπάρχει κάτι ακόμα πιο συναρπαστικό. 256 00:11:15,390 --> 00:11:19,270 Επιτρέψτε μου να προχωρήσει και να δημιουργήσει το δικό μου αρχείο dictionary.php. 257 00:11:19,270 --> 00:11:24,010 Έτσι ελαφρώς διαφορετική σε ότι Θα ονομάσουμε .php αντί για .c. 258 00:11:24,010 --> 00:11:26,980 Επειδή αυτό είναι ένα αρχείο PHP, εγώ do-- ελαφρώς annoyingly-- έχουν 259 00:11:26,980 --> 00:11:30,132 για να ξεκινήσει το αρχείο με μια ετικέτα php όπως αυτό. 260 00:11:30,132 --> 00:11:32,340 Και Πάω να πάει μπροστά και να ορίσουμε ορισμένες λειτουργίες. 261 00:11:32,340 --> 00:11:35,770 Λειτουργία ονομάζεται επιταγή, η οποία είναι πρόκειται να πάρει σε μια λέξη όπως πριν. 262 00:11:35,770 --> 00:11:37,520 Αλλά αυτό το επιχείρημα της πρόκειται να έχουν ένα δολάριο 263 00:11:37,520 --> 00:11:39,840 υπογράψει, διότι είμαστε, και πάλι, με τη χρήση της PHP. 264 00:11:39,840 --> 00:11:42,350 Μια άλλη λειτουργία από dictionary.c ήταν φορτίου 265 00:11:42,350 --> 00:11:47,120 και πήρε το όνομα του λεξικού, γι 'αυτό θα πάρει αυτή η λειτουργία είναι έτοιμα να ξεκινήσουν. 266 00:11:47,120 --> 00:11:50,920 >> Ένας άλλος ένας στο dictionary.c ήταν αυτό; 267 00:11:50,920 --> 00:11:54,580 Μέγεθος ήταν ένα από τα ομορφότερα, σε τουλάχιστον αν τηρείται κάποια μεταβλητή γύρω. 268 00:11:54,580 --> 00:11:57,830 έτσι ώστε το μέγεθος έχει απλά να επιστρέψει μια μεταβλητή. 269 00:11:57,830 --> 00:11:59,090 Και τότε υπήρχε ξεφορτώσουν. 270 00:11:59,090 --> 00:12:02,830 >> Έτσι, υπήρχαν αυτά τα τέσσερα λειτουργίες στο πρόβλημα που 5 271 00:12:02,830 --> 00:12:06,770 ότι χρειάζεται να εφαρμόσει με κάποια δομή δεδομένων ή δομές. 272 00:12:06,770 --> 00:12:10,170 Γι 'αυτό και υποσχέθηκε ότι στο PHP, μπορούμε να δηλώσουμε 273 00:12:10,170 --> 00:12:14,490 ένα πίνακα κατακερματισμού, για παράδειγμα, όλα ότι πιο εύκολα. 274 00:12:14,490 --> 00:12:17,377 Στην πραγματικότητα, αν θέλω ένα πίνακα κατακερματισμού, Είμαι ακριβώς πρόκειται να πάει, όπως ότι 275 00:12:17,377 --> 00:12:18,460 και υπάρχει πίνακας κατακερματισμού μου. 276 00:12:18,460 --> 00:12:21,555 Και αυτό είναι το σημείωμα, απογοητευτικό, ότι φύγαμε από την τελευταία φορά. 277 00:12:21,555 --> 00:12:23,930 Και ξέρετε τι, αν ήθελα μια μεταβλητή για το μέγεθος, καλά, 278 00:12:23,930 --> 00:12:25,867 αυτό δεν είναι όλα ότι διαφορετικά από το C, 279 00:12:25,867 --> 00:12:27,450 αλλά Πάω να προχωρήσει και να το κάνουμε αυτό. 280 00:12:27,450 --> 00:12:28,630 Και η ανακοίνωση τύπου δεδομένων. 281 00:12:28,630 --> 00:12:31,180 Και εγώ θα πάω πίσω αργότερα και πραγματικά να προσθέσει κάποια σχόλια εδώ. 282 00:12:31,180 --> 00:12:32,480 Αλλά τι γίνεται με το φορτίο; 283 00:12:32,480 --> 00:12:35,780 >> Αν το σύμβολο του δολαρίου λεξικό είναι το όνομα του αρχείου μου 284 00:12:35,780 --> 00:12:39,600 και εγώ πραγματικά θέλετε να φορτώσετε λέξεις σε αυτό το τραπέζι τώρα, 285 00:12:39,600 --> 00:12:42,360 Μπορώ πραγματικά να κάνουμε κάτι αρκετά απλό. 286 00:12:42,360 --> 00:12:44,880 Ένα-- και αυτό είναι minorly annoying-- σε PHP, 287 00:12:44,880 --> 00:12:47,710 θα πρέπει να καθορίσετε μέσα μιας συνάρτησης αν 288 00:12:47,710 --> 00:12:51,060 θέλουν να έχουν πρόσβαση σε κάποια παγκόσμια μεταβλητή που έχει οριστεί έξω. 289 00:12:51,060 --> 00:12:53,530 >> Αλλά αυτό δεν είναι ιδιαίτερα ενδιαφέρον τώρα. 290 00:12:53,530 --> 00:12:57,920 Τι είναι πιο ενδιαφέρον είναι αυτό για κάθε κατασκευή που ανέφερα τελευταία φορά. 291 00:12:57,920 --> 00:13:01,880 Και αποδεικνύεται ότι η PHP έχει μια λειτουργία που ονομάζεται αρχείο του οποίου σκοπός στη ζωή 292 00:13:01,880 --> 00:13:05,550 είναι να ανοίξετε ένα αρχείο και να διαβάσετε στο το σύνολο των γραμμών του σε μία συστοιχία 293 00:13:05,550 --> 00:13:06,840 και να τους παραδώσει πίσω στο. 294 00:13:06,840 --> 00:13:12,170 >> Ποια είναι να πούμε μπορώ να κάνω λεξικό έτσι ότι τώρα αποτελεσματικά όταν το αρχείο κλήση, 295 00:13:12,170 --> 00:13:15,472 Αυτό πρόκειται να μου παραδώσει πίσω μια σειρά των λέξεων από το αρχείο. 296 00:13:15,472 --> 00:13:16,430 Δεν είναι όλα τόσο καλά. 297 00:13:16,430 --> 00:13:20,130 Είναι ακόμα πρόκειται να είναι μια γραμμή των λέξεων, κάτι γραμμικό. 298 00:13:20,130 --> 00:13:23,880 Αλλά μπορώ να πάω μπροστά και να επαναλάβει πάνω από κάθε μία από αυτές τις λέξεις που χρησιμοποιούν 299 00:13:23,880 --> 00:13:25,710 ότι η σύνταξη είδαμε εν συντομία την τελευταία φορά. 300 00:13:25,710 --> 00:13:27,940 Και θα το δείτε περισσότερα στην επερχόμενη PSET. 301 00:13:27,940 --> 00:13:32,070 >> Αλλά τώρα έχω την επανάληψη βρόχου πάνω από κάθε λέξη στο λεξικό. 302 00:13:32,070 --> 00:13:36,100 Και σε κάθε επανάληψη, υπενθυμίζουν ότι είμαι καλώντας την τρέχουσα λέξη «λέξη». 303 00:13:36,100 --> 00:13:39,790 Και όλοι πρόκειται να λάβει για να βάλει μια λέξη στο λεξικό είναι 304 00:13:39,790 --> 00:13:43,530 πρόκειται να είναι λέξη εικασία "αλήθεια". 305 00:13:43,530 --> 00:13:44,740 Αυτή είναι η λειτουργία ένθετο μου. 306 00:13:44,740 --> 00:13:46,661 Αυτό είναι συνάρτηση του φορτίου μου για το λεξικό μου. 307 00:13:46,661 --> 00:13:49,410 Τώρα αυτό είναι ένα κομμάτι από ένα εξαπατήσει, διότι, ξέρετε τι, δεν υπάρχει στην πραγματικότητα 308 00:13:49,410 --> 00:13:52,920 backslash ν στο τέλος των λέξεων ότι θα πρέπει κατά πάσα πιθανότητα να απαλλαγούμε από, 309 00:13:52,920 --> 00:13:56,380 αλλά αυτό δεν είναι ένα πρόβλημα, επειδή η PHP έχει μια λειτουργία που ονομάζεται μπριζόλα που κυριολεκτικά 310 00:13:56,380 --> 00:13:58,480 μπριζόλες από ένα χαρακτήρα στο τέλος. 311 00:13:58,480 --> 00:13:59,400 Έτσι, δεν υπάρχει πρόβλημα εκεί. 312 00:13:59,400 --> 00:14:02,199 Έχουμε προχωρήσει και στην πραγματικότητα μειωθεί ότι μόνο σε αυτό. 313 00:14:02,199 --> 00:14:05,240 Και τώρα θα πρέπει πιθανώς να παρακολουθείτε του μεγέθους, οπότε ας κάνουμε τουλάχιστον this-- 314 00:14:05,240 --> 00:14:05,835 μέγεθος ++. 315 00:14:05,835 --> 00:14:07,339 Μπορώ να το κάνω όπως πριν. 316 00:14:07,339 --> 00:14:10,380 Και τότε αυτό είναι κατά πάσα πιθανότητα πρόκειται να λειτουργεί μια χαρά, έτσι ώστε να επιστρέψουμε αλήθεια. 317 00:14:10,380 --> 00:14:10,930 Έγινε. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [Γέλια] 320 00:14:13,545 --> 00:14:14,420 >> David J. Malan: ΟΚ. 321 00:14:14,420 --> 00:14:16,628 Εμείς πάμε να κάνουμε ότι και πάλι με την επόμενη PSET, πάρα πολύ. 322 00:14:16,628 --> 00:14:18,730 Έτσι τι γίνεται με το μέγεθος; 323 00:14:18,730 --> 00:14:22,080 Λοιπόν, αυτό ελπίζω να είναι περίπου όπως θα περιμένατε την τελευταία φορά, 324 00:14:22,080 --> 00:14:24,460 αν και έχω να κάνω αυτή η ηλίθια παγκόσμια πράγμα. 325 00:14:24,460 --> 00:14:26,610 Είναι απλά ένα τεχνούργημα από το σχεδιασμό της γλώσσας. 326 00:14:26,610 --> 00:14:28,450 >> Αλλά έλεγχος είναι λίγο πιο ενδιαφέρουσα. 327 00:14:28,450 --> 00:14:31,420 Έτσι, αν θα περάσει στο δολάριο υπογράψουν λέξη, για πρώτη φορά 328 00:14:31,420 --> 00:14:34,060 θέλουν να έχουν πρόσβαση σε ότι η παγκόσμια μεταβλητή πίνακα. 329 00:14:34,060 --> 00:14:36,700 Και τώρα, αν θέλω να ελέγξετε αν μια λέξη είναι εκεί, 330 00:14:36,700 --> 00:14:44,350 Θα ήθελα απλώς να πω αν είναι αλήθεια ότι η ακόλουθη βρίσκεται στο τραπέζι, 331 00:14:44,350 --> 00:14:49,957 τότε προχωρήστε και επιστροφή αλήθεια? αλλιώς, επιστρέφει false. 332 00:14:49,957 --> 00:14:51,180 Έγινε. 333 00:14:51,180 --> 00:14:52,440 Το άλλο μισό του PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> Εντάξει, οπότε και πάλι, είμαι κόψιμο μερικών γωνίες. 335 00:14:54,540 --> 00:14:56,831 Για να είμαστε δίκαιοι, θα πρέπει πιθανώς περάσουν μερικά ακόμη δευτερόλεπτα 336 00:14:56,831 --> 00:14:58,300 σχετικά με την εφαρμογή αυτή. 337 00:14:58,300 --> 00:15:01,860 Και εγώ κατά πάσα πιθανότητα δεν θα πρέπει να κοροϊδεύει όλα τα ώρες βάζετε στο PSET τόσο πολύ. 338 00:15:01,860 --> 00:15:04,045 Έτσι strtolower είναι μια λειτουργία. 339 00:15:04,045 --> 00:15:06,670 Κάτι παρόμοιο υπαρξιστής σε C, τουλάχιστον για τους χαρακτήρες, 340 00:15:06,670 --> 00:15:08,560 αλλά PHP πήρε μια ολόκληρη έκδοση εγχόρδων. 341 00:15:08,560 --> 00:15:11,226 >> Αυτό πρόκειται να αναγκάσει τα πάντα σε πεζά, τα οποία μερικοί από εσάς 342 00:15:11,226 --> 00:15:14,944 θα μπορούσε να γίνει για να canonicalize τι θα έβαζαν στο λεξικό σας. 343 00:15:14,944 --> 00:15:16,360 Και τώρα μπορείτε να το κάνετε αυτό σε C, πάρα πολύ. 344 00:15:16,360 --> 00:15:17,780 Αυτό δεν έχει να κάνει με την PHP. 345 00:15:17,780 --> 00:15:20,260 >> Αλλά κάθε φορά που έχετε μια Boolean κατάσταση, 346 00:15:20,260 --> 00:15:22,680 σαν κάτι on line 10 εκεί, το οποίο είναι μόνο 347 00:15:22,680 --> 00:15:27,145 πρόκειται να αξιολογηθεί σε πραγματικό ή ψευδείς, και σας εάν άλλος σαφώς 348 00:15:27,145 --> 00:15:33,620 επιστρέφει true ή false, θα μπορούσα απλά κάνει πραγματικά αυτό το πιο σέξι 349 00:15:33,620 --> 00:15:38,360 και απλά να κάνουμε κάτι σαν αυτό. 350 00:15:38,360 --> 00:15:40,500 Έτσι ώστε να υπάρχει έλεγχος της λειτουργίας μου. 351 00:15:40,500 --> 00:15:42,560 Δεξιά, αν το Boolean επιστρέφει μια αληθινή ή ψευδή, 352 00:15:42,560 --> 00:15:44,630 ας το επιστρέψει αμέσως. 353 00:15:44,630 --> 00:15:47,340 >> Και υπάρχουν μερικά άλλα tweaks Θα μπορούσα να κάνω εδώ και εκεί. 354 00:15:47,340 --> 00:15:51,380 Load-- ξεφορτώσουν, από τον τρόπο, που έχει κάνει. 355 00:15:51,380 --> 00:15:52,850 Δεν έχει τίποτα να κάνει εκεί. 356 00:15:52,850 --> 00:15:55,840 Δεδομένου ότι το σύνολο της μνήμης σε PHP και πολλές άλλες γλώσσες 357 00:15:55,840 --> 00:15:57,570 είναι πραγματικά κατάφερε για εσάς. 358 00:15:57,570 --> 00:16:00,330 Έτσι, ενώ στην C, όπως έχετε μάθει οδυνηρά, 359 00:16:00,330 --> 00:16:04,700 κάτι που malloc ή calloc ή realloc, θα πρέπει να ελευθερώσετε τον εαυτό σας. 360 00:16:04,700 --> 00:16:08,770 Οτιδήποτε fopen, θα πρέπει να fclose, ούτως ώστε οι πόροι είναι τελικά απελευθερώθηκαν 361 00:16:08,770 --> 00:16:11,690 και εργαλεία όπως Valgrind δεν κάνει παρατηρήσετε και δεν παραπονιούνται, 362 00:16:11,690 --> 00:16:13,570 το οποίο είναι ένα καλό πράγμα για να τρέξει πάνω τους. 363 00:16:13,570 --> 00:16:16,190 >> Αλλά σίγουρα, πρέπει να υπάρχει υπάρξει κάποια αλιευμάτων, σωστά; 364 00:16:16,190 --> 00:16:19,400 Σε αντίθετη περίπτωση, έχουμε το είδος των σπατάλη ένα σωρό εβδομάδες. 365 00:16:19,400 --> 00:16:23,270 Έτσι υπάρχει οποιοσδήποτε αριθμός λόγων Γι 'αυτό το είδος της εκμεταλλευτώ αυτή την τροχιά, 366 00:16:23,270 --> 00:16:24,440 αλλά υπάρχει ένα trade-off. 367 00:16:24,440 --> 00:16:25,820 Δεξιά, αυτό ήταν θεματική. 368 00:16:25,820 --> 00:16:29,690 >> Λοιπόν, τι θα μπορούσε ένα trade-off εδώ μετακίνηση, από την Γ στην PHP; 369 00:16:29,690 --> 00:16:33,250 Αισθάνεται σαν όλα να κερδίσει μέχρι στιγμής, εκτός από ένα κομμάτι της ασχήμιας εδώ ή εκεί. 370 00:16:33,250 --> 00:16:34,040 Ναι. 371 00:16:34,040 --> 00:16:34,700 Τι είναι αυτό; 372 00:16:34,700 --> 00:16:36,064 >> Φοιτητής: [δεν ακούγεται] μνήμη. 373 00:16:36,064 --> 00:16:36,980 David J. Malan: Ταχύτητα. 374 00:16:36,980 --> 00:16:37,479 ΟΚ. 375 00:16:37,479 --> 00:16:40,720 Λοιπόν, η ταχύτητα μου ήταν αρκετά γρήγορη. 376 00:16:40,720 --> 00:16:42,020 Σωστά; 377 00:16:42,020 --> 00:16:44,320 Αλλά η ταχύτητα της εκτέλεσης του προγράμματος; 378 00:16:44,320 --> 00:16:45,580 Εντάξει, έτσι ώστε να είναι μια δίκαιη σημείο. 379 00:16:45,580 --> 00:16:50,930 >> Έτσι, όπως θα συνέβαινε, εγώ εκ των προτέρων Μπαίνει πρώτη τόσο Λύση Δοκιμάστε μου, η μία 380 00:16:50,930 --> 00:16:53,510 Είχα στη μεγάλη πλακέτα Ήταν μια λύση δοκιμή που βασίζεται, 381 00:16:53,510 --> 00:16:55,510 και έχω ότι σε αυτόν τον κατάλογο εδώ. 382 00:16:55,510 --> 00:16:58,510 Γι 'αυτό και σε μια στιγμή, μπορώ να πάω μπροστά και να εκτελέσετε αυτή στο βασιλιά James Bible, 383 00:16:58,510 --> 00:16:59,657 πατώντας Enter. 384 00:16:59,657 --> 00:17:01,990 Και αυτό είναι σωστό ελπίζουμε εφαρμογή, στο τέλος, 385 00:17:01,990 --> 00:17:05,109 μου δίνει το χρόνο στο σύνολο 0,38 δευτερολέπτων για αυτό 386 00:17:05,109 --> 00:17:07,270 ένα κάπως αυθαίρετο παράδειγμα. 387 00:17:07,270 --> 00:17:09,270 >> Και αν εγώ τώρα πάω σε αυτό δεύτερο παράθυρο τερματικού 388 00:17:09,270 --> 00:17:14,569 εδώ όπου άνοιξε το πρώτο του gedit, ας Θέλω να πάω σε σημερινή code-- η οποία, και πάλι, 389 00:17:14,569 --> 00:17:19,650 είναι σε αυτόν τον κατάλογο here-- και επιτρέψτε μου να πάει μπροστά και να τρέξει ορθογράφο. 390 00:17:19,650 --> 00:17:23,470 Έτσι, ακριβώς για να είναι σαφής, Αυτή είναι η έκδοση της PHP. 391 00:17:23,470 --> 00:17:25,170 Είμαι απλά δείχνει το πάνω μέρος του εδώ. 392 00:17:25,170 --> 00:17:32,020 >> Έτσι, αν κάνω ορθογράφο της περισπωμένη CS50 PSET 5 κείμενα, King James, εισάγετε. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 Είναι ακόμα πιο γρήγορα από ό, τι γραπτώς το σε C, αλλά ο συνολικός χρόνος 395 00:17:43,050 --> 00:17:47,650 είναι, ειδοποίηση, 0,93, ενώ μου Εφαρμογή C-βάση ήταν 0,38. 396 00:17:47,650 --> 00:17:49,110 Γι 'αυτό είναι μια μη-τετριμμένο διαφορά. 397 00:17:49,110 --> 00:17:51,100 >> Και αυτό είναι μόνο για ένα αρχείο. 398 00:17:51,100 --> 00:17:53,480 Αν ήταν να λειτουργούν και τα δύο προγράμματα σε σχέση με το μεγάλο διοικητικό συμβούλιο 399 00:17:53,480 --> 00:17:56,510 και έχουν ένα σωρό των εισροών δοκιμαστεί, αυτό σίγουρα θα προσθέσει επάνω. 400 00:17:56,510 --> 00:18:00,310 Και αν είχαμε ακόμη μεγαλύτερα σύνολα δεδομένων, Αυτό, επίσης, θα προσθέσει έως και όλα τα άλλα. 401 00:18:00,310 --> 00:18:04,820 Οπότε ναι, πληρώνοντας κάποια τιμή της ταχύτητας είναι πράγματι η περίπτωση. 402 00:18:04,820 --> 00:18:05,470 Τι άλλο; 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Ναι; 405 00:18:08,860 --> 00:18:10,340 >> Φοιτητής: Ποσό της χρήσης μνήμης RAM. 406 00:18:10,340 --> 00:18:11,756 >> David J. Malan: Ποσό της χρήσης μνήμης RAM. 407 00:18:11,756 --> 00:18:15,380 Έτσι, δεν είχα δώσει έναν δευτερόλεπτα σκέφτηκε όταν έγραφε αυτό το PHP 408 00:18:15,380 --> 00:18:17,300 έκδοση ως προς το πόσο μνήμη ήμουν με τη χρήση. 409 00:18:17,300 --> 00:18:22,080 Είμαι εντελώς αναβολή ότι με την PHP το ίδιο και όποιος έγραψε αυτό το πρόγραμμα. 410 00:18:22,080 --> 00:18:24,500 Και αυτό θα μπορούσε να είναι εντάξει, αλλά αν πραγματικά πραγματικά 411 00:18:24,500 --> 00:18:28,420 νοιάζονται για συμπιέζοντας όσο επιδόσεις έξω από το πρόγραμμά μου ή από την ιστοσελίδα μου 412 00:18:28,420 --> 00:18:31,150 ή από ό, τι εργαλείο Χτίζω, ίσως 413 00:18:31,150 --> 00:18:33,310 PHP, πράγματι, δεν είναι η σωστή γλώσσα. 414 00:18:33,310 --> 00:18:36,330 >> Και στην πραγματικότητα, αυτός είναι ο λόγος, για παράδειγμα, πολλοί web servers-- 415 00:18:36,330 --> 00:18:38,980 τα πραγματικά προγράμματα που εξυπηρετήσει μέχρι web content-- 416 00:18:38,980 --> 00:18:41,810 δεν είναι γραμμένο σε PHP ή σε Python ή Ruby. 417 00:18:41,810 --> 00:18:44,630 Είναι γραμμένο, όπως θα κάνουμε τώρα με το chipset 6, 418 00:18:44,630 --> 00:18:48,120 σε C, έτσι ώστε να μπορείτε να αποσπάσουν κάθε κομμάτι της απόδοσης από αυτό 419 00:18:48,120 --> 00:18:50,780 και πραγματικά να ασκήσουν ποιοτικό έλεγχο πάνω στο τι είναι 420 00:18:50,780 --> 00:18:52,980 συμβαίνει κάτω από το κουκούλα και όχι απλά να το πάρετε 421 00:18:52,980 --> 00:18:54,890 για χορηγηθεί κάποια υψηλότερη δομή δεδομένων επίπεδο. 422 00:18:54,890 --> 00:18:58,071 >> Σκεφτείτε, μετά από όλα, όποιος στην PHP υλοποιούνται 423 00:18:58,071 --> 00:19:00,070 ότι η έννοια του κατακερματισμού table-- είναι στην πραγματικότητα περισσότερο 424 00:19:00,070 --> 00:19:04,260 σωστά ονομάζεται μια συνειρμική array-- κάνει αυτός ή αυτή έχουν καμία ιδέα τι είδους 425 00:19:04,260 --> 00:19:07,090 των εισροών θα έχετε την ευκαιρία να βάζοντας στη δομή; 426 00:19:07,090 --> 00:19:08,260 Έτσι, προφανώς, δεν είναι, σωστά; 427 00:19:08,260 --> 00:19:10,340 Είναι ένα γενικό εργαλείο στην εργαλειοθήκη που είναι 428 00:19:10,340 --> 00:19:13,430 παρέχεται σε όποιον θέλει να το χρησιμοποιήσει, και έτσι σίγουρα 429 00:19:13,430 --> 00:19:17,680 δεν μπορεί να βελτιστοποιηθεί τελικά για το τι ακριβώς θέλετε να κάνετε. 430 00:19:17,680 --> 00:19:21,180 >> Έτσι, το εμπόριο-offs-- χρόνο ανάπτυξης θα μπορούσε διαφέρουν, οι επιδόσεις μπορεί να διαφέρουν, 431 00:19:21,180 --> 00:19:23,120 πολυπλοκότητα ή η χρήση της μνήμης μπορεί να διαφέρουν. 432 00:19:23,120 --> 00:19:24,820 Και έτσι αυτό που θα βρείτε όλο και περισσότερο είναι ότι υπάρχει 433 00:19:24,820 --> 00:19:26,570 πρόκειται να είναι διαφορετική εργαλεία για το εμπόριο. 434 00:19:26,570 --> 00:19:31,160 Και στην πραγματικότητα για ένα σούπερ πλειοψηφία των τελευταία έργα των ανθρώπων σε αυτή την κατηγορία, 435 00:19:31,160 --> 00:19:34,360 είτε το πιστεύετε είτε όχι, Γ δεν πρόκειται να είναι η σωστή γλώσσα για να χρησιμοποιήσει. 436 00:19:34,360 --> 00:19:37,880 >> Και στην πραγματικότητα, ένα από τα φαστ φουντ τελικά, για κάθε κατηγορία, όπως αυτή 437 00:19:37,880 --> 00:19:40,510 είναι να σας κάνει να σκεφτείτε, Λοιπόν, τι θα έπρεπε να τραβήξει από 438 00:19:40,510 --> 00:19:42,710 το ράφι όταν θέλετε να λύσει κάποιο πρόβλημα. 439 00:19:42,710 --> 00:19:46,720 Και πράγματι, θα διασχίσουν τη γέφυρα ακόμη περισσότερο καθώς κοιτάζουμε σε περισσότερες γλώσσες 440 00:19:46,720 --> 00:19:47,920 ακόμη και πέρα ​​από το σήμερα. 441 00:19:47,920 --> 00:19:50,530 >> Ας μετάβαση τώρα να ίσως ένα πιο οικείο πλαίσιο 442 00:19:50,530 --> 00:19:52,480 για τη χρήση μιας γλώσσας, όπως η PHP. 443 00:19:52,480 --> 00:19:56,720 Είναι κάπως κοινό να χρησιμοποιήσει σε η γραμμή εντολών, γράφει σενάρια 444 00:19:56,720 --> 00:19:59,050 όπως έκανα, αλλά είναι πολύ, πολύ πιο συχνές. 445 00:19:59,050 --> 00:20:02,350 Και αυτό επρόκειτο να χρησιμοποιηθεί σε η μορφή των αρχείων που συνήθως καταλήγουν 446 00:20:02,350 --> 00:20:05,060 σε .php-- αλλά αυτό είναι όχι μια prerequisite-- 447 00:20:05,060 --> 00:20:07,990 ότι οι ίδιοι παράγουν περιεχόμενο στον Παγκόσμιο Ιστό. 448 00:20:07,990 --> 00:20:11,310 >> Έτσι, επιτρέψτε μου να πάει μπροστά και να ανοίξει μερικά παραδείγματα που έχω προετοιμαστεί εκ των προτέρων. 449 00:20:11,310 --> 00:20:15,100 Και αυτά είναι στην πραγματικότητα το είδος της αληθινής ιστορίες από το ότι ένα από τα πρώτα πράγματα 450 00:20:15,100 --> 00:20:18,200 Έκανα ποτέ τον εαυτό μου μετά την ολοκλήρωση CS50 και ίσως, νομίζω, 451 00:20:18,200 --> 00:20:21,350 CS51 χρόνια είναι μου συγκάτοικο και εγώ ήμασταν βοηθώντας 452 00:20:21,350 --> 00:20:24,320 για να τρέξει το ενδοτοιχωματικό καινούριο αθλητικό πρόγραμμα, το οποίο, κατά τον χρόνο, 453 00:20:24,320 --> 00:20:28,610 είχε καινούριος εγγραφή για διάφορες αθλήματα συμπληρώνοντας ένα κομμάτι χαρτί, 454 00:20:28,610 --> 00:20:31,800 όπως ονομάστηκε, το περπάτημα σε όλη την αυλή για να Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 και πτώση σε ορισμένες πτώση πόρτα του επόπτη. 456 00:20:34,030 --> 00:20:37,210 Και τότε αυτός ή αυτή θα περάσουν αυτά και τότε πράγματι να μας στείλετε email με το χέρι 457 00:20:37,210 --> 00:20:39,140 ότι ήταν εγγεγραμμένοι για κάποιο άθλημα. 458 00:20:39,140 --> 00:20:41,166 >> Έτσι, σαφώς, μια ευκαιρία για βελτίωση. 459 00:20:41,166 --> 00:20:44,040 Αυτές τις μέρες, ίσως στραφούν σε απλά Φόρμες Google, αλλά πίσω στην ημέρα, 460 00:20:44,040 --> 00:20:46,914 είχαμε να φτάσουν στην πραγματικότητα for-- αυτό δεν ήταν ακόμη τόσο πολύ ago-- φθάσουν 461 00:20:46,914 --> 00:20:49,410 για τον προγραμματισμό γλώσσα που δεν ήταν PHP. 462 00:20:49,410 --> 00:20:51,200 Εκείνη την εποχή, ήταν κάτι που ονομάζεται Perl, 463 00:20:51,200 --> 00:20:52,890 η οποία έχει φύγει από τη μόδα από τότε. 464 00:20:52,890 --> 00:20:54,160 Αλλά η ιδέα είναι η ίδια. 465 00:20:54,160 --> 00:20:58,940 >> Και κάθισα ουσιαστικά προς τα κάτω για να δοκιμάσετε στο λιμάνι πηγαίνει εκδόσεις της Perl σε PHP, 466 00:20:58,940 --> 00:21:03,710 αλλά σε πλήρη αποκήρυξη, δεν δίνουν οποιαδήποτε σκέψη για την αισθητική ακριβώς ακόμα. 467 00:21:03,710 --> 00:21:04,960 Έτσι, εδώ είναι μια ιστοσελίδα. 468 00:21:04,960 --> 00:21:05,670 Αυτό είναι ένα αρχείο. 469 00:21:05,670 --> 00:21:09,470 Αν μεγέθυνση, προφανώς του ονομάζεται froshim0.php 470 00:21:09,470 --> 00:21:12,060 μόνο και μόνο επειδή είναι η πρώτη μας παράδειγμα σε αυτή τη σειρά. 471 00:21:12,060 --> 00:21:15,970 Και παρατηρήσετε ότι έχει ό, τι φαίνεται να είναι ένα πολύ άσχημο μορφή HTML, 472 00:21:15,970 --> 00:21:18,680 αλλά μια μορφή είναι ενδιαφέρουσα επειδή επιτρέπει 473 00:21:18,680 --> 00:21:21,910 Θέλω να παρέχει είσοδο του χρήστη στο πρόγραμμα περιήγησης. 474 00:21:21,910 --> 00:21:27,730 >> Τώρα τελευταία φορά που είχαμε μια μορφή, σε τους οποίους δεν μπορούμε να υποβάλει ερώτημα παραμέτρων μας, 475 00:21:27,730 --> 00:21:30,450 η παράμετρος ουρά όπως λεγόταν; 476 00:21:30,450 --> 00:21:31,330 Έτσι, στο Google, σωστά; 477 00:21:31,330 --> 00:21:34,090 Εμείς κλότσησε εντελώς την ιδέα της να κάνει τίποτα με την συγκεκριμένη είσοδο. 478 00:21:34,090 --> 00:21:36,160 >> Αλλά σήμερα, θα αρχίσουν να παράγουν έξοδο. 479 00:21:36,160 --> 00:21:39,420 Και η συμπεριφορά Πάω να δω εδώ αρχικά είναι αρκετά τετριμμένο. 480 00:21:39,420 --> 00:21:42,980 Ντέιβιντ, θα ελέγξετε μακριά φύλου Εδώ, λένε Matthews εδώ. 481 00:21:42,980 --> 00:21:43,800 Δεν θα είναι ο αρχηγός. 482 00:21:43,800 --> 00:21:45,410 Πάω να κάνετε κλικ στο Εγγραφή. 483 00:21:45,410 --> 00:21:50,720 Και παρατηρήσετε ότι η διεύθυνση URL έχει αλλάξει για να εγγραφείτε-0.php, 484 00:21:50,720 --> 00:21:52,310 και στη συνέχεια να υπάρχει αυτό το άσχημο κείμενο εδώ. 485 00:21:52,310 --> 00:21:54,460 Έδωσα καμία σκέψη για η μορφοποίηση του αυτή. 486 00:21:54,460 --> 00:21:59,900 >> Αλλά αυτό που είναι ενδιαφέρον είναι ότι οι τρεις τιμές είχαν ήδη περάσει όπως φαίνεται στο. 487 00:21:59,900 --> 00:22:02,960 Αυτό είναι το είδος της PHP ισοδύναμο με printf-- 488 00:22:02,960 --> 00:22:06,330 θα δούμε τι είναι πραγματικά ονομάζεται σε bit-- που απλά τυπώνει έξω 489 00:22:06,330 --> 00:22:08,300 τι σας πέρασε σε αυτό. 490 00:22:08,300 --> 00:22:11,414 Έτσι, το γεγονός αυτό δείχνει ότι αυτή η μορφή είχαν τουλάχιστον τρεις τομείς σε αυτό, 491 00:22:11,414 --> 00:22:12,580 και είδες εμένα να πληκτρολογήσετε. 492 00:22:12,580 --> 00:22:15,739 Το ένα ήταν το όνομά μου, ο ένας ήταν το φύλο, ο ένας ήταν κοιτώνα. 493 00:22:15,739 --> 00:22:18,780 Και καπετάνιος δεν μπόρεσα ούτε καν να αποστέλλονται ο διακομιστής γιατί εγώ δεν το ελέγχει. 494 00:22:18,780 --> 00:22:22,150 >> Έτσι, αυτό είναι να πούμε προφανώς, όταν υποβάλλετε τα πράγματα στο διαδίκτυο, 495 00:22:22,150 --> 00:22:26,830 δεν αφορά μόνο τη διεύθυνση URL μερικές φορές change-- μερικές φορές δεν το κάνει. 496 00:22:26,830 --> 00:22:30,330 Στην πραγματικότητα, το όνομα του αρχείου αλλάξει, αλλά αυτό είναι απούσα από τη διεύθυνση URL 497 00:22:30,330 --> 00:22:32,861 ότι είδαμε την τελευταία φορά με την Google. 498 00:22:32,861 --> 00:22:33,360 Ναι; 499 00:22:33,360 --> 00:22:34,380 >> Φοιτητής: Όχι συμβολοσειρά ερωτήματος 500 00:22:34,380 --> 00:22:35,220 >> David J. Malan: Δεν υπάρχει συμβολοσειρά ερωτήματος. 501 00:22:35,220 --> 00:22:37,270 Δεν υπάρχει κάτι ερωτηματικό. 502 00:22:37,270 --> 00:22:40,050 Δεν υπάρχει q ερωτηματικό ισούται με γάτες, όπως κάναμε την τελευταία φορά. 503 00:22:40,050 --> 00:22:42,170 Και δεν υπάρχει βέβαια καμία όνομα ερωτηματικό ισούται 504 00:22:42,170 --> 00:22:46,310 David ή κοιτώνα ισούται Matthews, έτσι ώστε, όπου ότι όλα πηγαίνουν; 505 00:22:46,310 --> 00:22:51,290 >> Λοιπόν, επιτρέψτε μου να πάω πίσω στο gedit εδώ και να ανοίξει το πρώτο από τα αρχεία 506 00:22:51,290 --> 00:22:57,020 σε vhost μου, τοπική υποδοχής, δημόσια Κατάλογος εδώ και να πάει σε froshim0. 507 00:22:57,020 --> 00:23:02,060 Έτσι αποδεικνύεται ότι σχεδόν όλα αυτής της σελίδας είναι απλά HTML. 508 00:23:02,060 --> 00:23:05,410 Και αυτό μπορεί να είναι άγνωστη σε εσάς, αλλά σύντομα θα είναι περισσότερο με PSET 6 509 00:23:05,410 --> 00:23:07,370 και PSET 7 και 8 PSET. 510 00:23:07,370 --> 00:23:09,160 Αλλά αυτό είναι μόνο μια σελίδα HTML. 511 00:23:09,160 --> 00:23:12,400 >> Και τα ενδιαφέροντα πράγματα φαίνεται να είναι εδώ. 512 00:23:12,400 --> 00:23:16,290 Μια ετικέτα μορφή του οποίου η δράση χαρακτηριστικό έχει μια τιμή του καταχωρητή 0. 513 00:23:16,290 --> 00:23:18,890 Γι 'αυτό όταν υποβάλλουν αυτό, πηγαίνει σε αυτό το αρχείο. 514 00:23:18,890 --> 00:23:20,620 Όμως η μέθοδος είναι διαφορετική μετά today--. 515 00:23:20,620 --> 00:23:23,120 Έτσι αποδεικνύεται υπάρχει τουλάχιστον δύο μεθόδους στο διαδίκτυο που χρησιμοποιείται 516 00:23:23,120 --> 00:23:24,911 να στείλουν πληροφορίες από το πρόγραμμα περιήγησης στο διακομιστή. 517 00:23:24,911 --> 00:23:25,980 Αποκτήστε το βάζει στο URL. 518 00:23:25,980 --> 00:23:27,950 Δημοσίευση βάζει αλλού. 519 00:23:27,950 --> 00:23:30,570 Και πότε και γιατί θα μπορούσε να σας πραγματικά θέλουν μια ιστοσελίδα 520 00:23:30,570 --> 00:23:34,110 να χρησιμοποιούν θέση, τότε αντ 'αυτού του να πάρει, απλά διαισθητικά; 521 00:23:34,110 --> 00:23:37,080 Κάθε ιστοσελίδα. 522 00:23:37,080 --> 00:23:42,010 Τι είδους δεδομένα θα πρέπει να περάσει μόνο κατά τεκμήριο τώρα μέσω ταχυδρομείου σε αντιδιαστολή 523 00:23:42,010 --> 00:23:45,184 να πάρει, αν έχουμε δει οι δύο διαφορές; 524 00:23:45,184 --> 00:23:46,350 Φοιτητής: [δεν ακούγεται] εξασφαλίσει. 525 00:23:46,350 --> 00:23:47,790 David J. Malan: Εάν θέλετε κάτι για να είναι ασφαλής. 526 00:23:47,790 --> 00:23:50,360 Έτσι, μπορείτε να πληκτρολογήσετε έναν κωδικό πρόσβασης σε μια ιστοσελίδα, μια πιστωτική κάρτα 527 00:23:50,360 --> 00:23:53,030 σε μια ιστοσελίδα θα το είδος αυτών των αναντίστοιχο 528 00:23:53,030 --> 00:23:56,220 αν το πρόγραμμα περιήγησης που ότι αξίας στο εσωτερικό του URL. 529 00:23:56,220 --> 00:23:57,680 Γιατί; 530 00:23:57,680 --> 00:24:00,059 Μπορείτε να το δείτε, το οποίο δεν φαίνεται να είναι μια τέτοια μεγάλη υπόθεση, 531 00:24:00,059 --> 00:24:03,350 αλλά οι πιθανότητες είναι εσείς αρκετά συχνά τα πόδια μακριά από τον υπολογιστή ή τη χρήση του υπολογιστή σας 532 00:24:03,350 --> 00:24:05,310 εργαστήρια, και έτσι κάποιος άλλο ή ακόμα και ένα συγκάτοικο 533 00:24:05,310 --> 00:24:08,220 θα μπορούσε εύκολα να περπατήσετε και να δείτε ότι οι ιδιωτικές πληροφορίες. 534 00:24:08,220 --> 00:24:10,220 Όταν στέλνετε ένα e-mail μέσω του διαδικτύου, ίσως 535 00:24:10,220 --> 00:24:12,350 Δεν θέλω αυτό το τέλος των δεδομένων πάνω στο URL, καθώς και. 536 00:24:12,350 --> 00:24:15,266 Και έτσι υπάρχει οποιοσδήποτε αριθμός λόγων γιατί θα μπορούσαμε να θέλουμε να το θέσω εδώ. 537 00:24:15,266 --> 00:24:18,610 Και photos-- δεξιά, δεν μπορώ ακόμη αρκετά Φανταστείτε πώς θα πάρετε ένα γραφικό, 538 00:24:18,610 --> 00:24:21,480 σαν JPEG, και το βάζουμε σε μια διεύθυνση URL. 539 00:24:21,480 --> 00:24:22,330 Θα μπορούσε να το κάνει. 540 00:24:22,330 --> 00:24:25,840 Υπάρχουν τρόποι που κωδικοποιεί αυτό, αλλά είναι απλά δεν είναι απλή υπόθεση όπως αυτή. 541 00:24:25,840 --> 00:24:29,030 >> Έτσι εγγραφείτε 0 είναι στην πραγματικότητα πολύ απογοητευτικό. 542 00:24:29,030 --> 00:24:31,610 Όλα τα λέει κυριολεκτικά είναι αυτό. 543 00:24:31,610 --> 00:24:35,910 Εκτυπώνει στο εσωτερικό ορισμένων Html tags τα ακόλουθα. 544 00:24:35,910 --> 00:24:38,640 Έχω ένα tag της PHP εδώ ένθετα στο εσωτερικό του προ ετικέτας. 545 00:24:38,640 --> 00:24:42,300 "Προ" σημαίνει απλώς προ-μορφοποιημένο κείμενο, μονο-απόσταση μεταξύ τους, όπως και μια γραφομηχανή. 546 00:24:42,300 --> 00:24:44,836 >> Printr είναι μια εκτύπωση αναδρομική συνάρτηση. 547 00:24:44,836 --> 00:24:46,710 Και έπειτα υπάρχει αυτό ενδιαφέρον πράγμα εδώ. 548 00:24:46,710 --> 00:24:48,835 Και θα επανέλθουμε σε αυτό επειδή υπάρχουν και άλλοι, 549 00:24:48,835 --> 00:24:51,140 αλλά το σύμβολο του δολαρίου υπογράμμισης μετά φαίνεται να είναι 550 00:24:51,140 --> 00:24:56,110 μια μεταβλητή στην PHP στην οποία τίποτα μπορείτε να στείλετε από το πρόγραμμα περιήγησης στο διακομιστή 551 00:24:56,110 --> 00:24:58,040 παίρνει αποθηκεύονται για εσάς. 552 00:24:58,040 --> 00:25:00,930 Και θα δούμε πώς να φτάσετε στο ότι οι πληροφορίες πριν από καιρό. 553 00:25:00,930 --> 00:25:04,000 >> Αλλά πρώτα, ας πάμε πίσω στο ένα ελαφρώς διαφορετικό παράδειγμα. 554 00:25:04,000 --> 00:25:09,050 Πηγαίνοντας σε register-- ή μάλλον, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 η οποία μοιάζει λίγο διαφορετικό. 556 00:25:10,470 --> 00:25:12,670 Πήρα λίγο περισσότερο προσπάθεια με τη μορφοποίηση, 557 00:25:12,670 --> 00:25:14,370 ακόμα κι αν είναι ακόμα αρκετά άσχημο. 558 00:25:14,370 --> 00:25:16,990 Αλλά Πάω να πάει μπροστά και πληκτρολογήστε "Δαβίδ" τώρα. 559 00:25:16,990 --> 00:25:17,850 Άντρας. 560 00:25:17,850 --> 00:25:19,360 Θα ελέγξει "καπετάνιος" αυτή τη φορά. 561 00:25:19,360 --> 00:25:20,660 Θα κάνουμε Matthews. 562 00:25:20,660 --> 00:25:22,430 Και εγγραφείτε. 563 00:25:22,430 --> 00:25:24,110 >> Και αυτή τη φορά, λέει, χμ, δεν είναι πραγματικά. 564 00:25:24,110 --> 00:25:26,180 Εντάξει, έτσι τι'S REGISTER 1; 565 00:25:26,180 --> 00:25:30,509 Επιτρέψτε μου να πάω σε ανοικτό νηολόγιο 1 and-- χμ. 566 00:25:30,509 --> 00:25:32,300 Εντάξει, έτσι αυτό είναι ενδιαφέρον, και αυτό 567 00:25:32,300 --> 00:25:34,880 είναι ένα σκαλοπάτι προς την επιχείρηση πιο ενδιαφέροντα προγράμματα. 568 00:25:34,880 --> 00:25:38,970 >> Παρατηρήστε την κορυφή του αυτό το αρχείο έχει ένα PHP tag καθώς και ορισμένα σχόλια. 569 00:25:38,970 --> 00:25:42,590 Και αυτά είναι, προς το παρόν, μια απόσπαση της προσοχής οπότε ας απαλλαγούμε από αυτά τα σχόλια 570 00:25:42,590 --> 00:25:47,070 ακριβώς σαν να είσαι σε C. Και ισχυρίζομαι με αυτό το κομμάτι του κώδικα με ένα σχόλιο 571 00:25:47,070 --> 00:25:49,280 ότι αυτός ο κώδικας είναι την επικύρωση της υποβολής. 572 00:25:49,280 --> 00:25:51,690 >> Λοιπόν, αποδεικνύεται ότι μεταβλητές όπως το σύμβολο του δολαρίου 573 00:25:51,690 --> 00:25:53,739 υπογραμμίζουν θέση είναι που ονομάζεται σούπερ διεθνοποιημένων. 574 00:25:53,739 --> 00:25:55,530 Είναι όπως αυτά ειδικές παγκόσμιες μεταβλητές 575 00:25:55,530 --> 00:25:58,840 που είναι ακριβώς omni-σήμερα διαθέσιμες στο πλαίσιο του προγράμματος σας. 576 00:25:58,840 --> 00:26:03,870 Και μπορείτε να χρησιμοποιήσετε πλατεία συμβολισμός βραχίονα σε δείκτη σε αυτούς που δεν χρησιμοποιούν αριθμούς 577 00:26:03,870 --> 00:26:07,460 όπως 0, 1, 2, 3, αλλά πραγματικές λέξεις. 578 00:26:07,460 --> 00:26:12,100 >> Έτσι, μπορείτε να σκεφτείτε το σύμβολο του δολαρίου υπογραμμίζουν θέση ως είδος ενός πίνακα κατακερματισμού 579 00:26:12,100 --> 00:26:15,920 ότι θα μπορούσε να περάσει ένα κλειδί σε, μια αναζήτηση λέξη-μεταξύ των αγκύλες, 580 00:26:15,920 --> 00:26:19,370 και πρόκειται να σας δώσει πίσω το τιμή που ο χρήστης πραγματικά. 581 00:26:19,370 --> 00:26:21,210 PHP έχει μια λειτουργία καλείται κενό που απλά 582 00:26:21,210 --> 00:26:23,720 λέει ναι ή όχι, αυτό μεταβλητή είναι κενή ή όχι. 583 00:26:23,720 --> 00:26:27,250 Έχουμε δύο μέτρα και δύο μπαρ, πράγμα που σημαίνει απλά ή, όπως στη C. 584 00:26:27,250 --> 00:26:31,740 >> Έτσι, στην πραγματικότητα, αυτή η γραμμή 4 είναι απλά λέγοντας ότι αν ο χρήστης δεν δώσει ένα όνομα 585 00:26:31,740 --> 00:26:36,540 ή δεν δώσει ένα φύλο ή δεν έκανε δίνουν ένα κοιτώνα, να προχωρήσει και να ανακατευθύνει τον 586 00:26:36,540 --> 00:26:38,184 ή της μέσω αυτής της γραμμής εδώ. 587 00:26:38,184 --> 00:26:40,600 Έτσι, αυτό είναι λίγο αινιγματικό, αλλά αυτό απλά σημαίνει κυριολεκτικά 588 00:26:40,600 --> 00:26:43,330 πάει πίσω σε αυτήν τη θέση, έτσι κλωτσιές τον χρήστη 589 00:26:43,330 --> 00:26:45,420 πίσω από όπου αυτός ή αυτή προήλθε από. 590 00:26:45,420 --> 00:26:47,880 Αλλά είναι λίγο άκομψο σε ότι έχω δύσκολο κωδικοποιημένα. 591 00:26:47,880 --> 00:26:52,150 >> Αλλά τι γίνεται αν αυτό αν η κατάσταση δεν αξιολογεί στην αλήθεια; 592 00:26:52,150 --> 00:26:55,790 Τι και αν ο χρήστης δεν μου δώσει του ή το όνομα και κοιτώνα και το φύλο της; 593 00:26:55,790 --> 00:26:58,540 Ότι αν η κατάσταση δεν είναι πρόκειται να αξιολογηθεί στην αληθινή, 594 00:26:58,540 --> 00:27:00,650 έτσι δεν χτύπησε την έξοδο στην γραμμή 7. 595 00:27:00,650 --> 00:27:01,680 Λοιπόν, τι θα συμβεί; 596 00:27:01,680 --> 00:27:03,880 Και αυτό είναι ό, τι είναι ενδιαφέρον για την PHP. 597 00:27:03,880 --> 00:27:07,470 >> Μπορείτε να ρίξετε μέσα και έξω της λειτουργίας PHP, να το πω έτσι. 598 00:27:07,470 --> 00:27:10,985 Αν θέλετε κάποια κώδικα για να εκτελέσει, μπορείτε να ανοίξετε και να κλείσετε ένα tag της PHP 599 00:27:10,985 --> 00:27:13,010 και να θέσει τον κωδικό εκεί, όπως έχω κάνει εδώ. 600 00:27:13,010 --> 00:27:16,810 Μόλις κλείσετε η ετικέτα PHP, ο διακομιστής 601 00:27:16,810 --> 00:27:19,407 είναι ακριβώς πρόκειται να φτύσει ό, τι βάζετε εκεί. 602 00:27:19,407 --> 00:27:21,740 Και πράγματι, αυτό ήταν μέρος του Ο αρχικός σχεδιασμός της PHP, 603 00:27:21,740 --> 00:27:25,280 για καλύτερο προς το χειρότερο, ήταν αυτό συνεύρεση του κώδικα και σήμανσης 604 00:27:25,280 --> 00:27:25,920 γλώσσας. 605 00:27:25,920 --> 00:27:28,670 Και θα δούμε ότι αυτό το πολύ περιέρχεται γρήγορα σε ένα χάος. 606 00:27:28,670 --> 00:27:31,280 Και έτσι θα κάνουμε καλύτερα από ό, τι Αυτό τελικά, αλλά απλά 607 00:27:31,280 --> 00:27:35,620 παρατηρήσετε την ευκολία με την οποία είμαι πράγματι σε θέση να εκτελέσει κάποια λογική. 608 00:27:35,620 --> 00:27:37,440 >> Αλλά εξακολουθεί να είναι λίγο απογοητευτικό. 609 00:27:37,440 --> 00:27:41,210 Ας ανοίξει έκδοση δύο από Frosh ΔΥ, η οποία 610 00:27:41,210 --> 00:27:44,270 προφανώς υποβάλλει register2.php. 611 00:27:44,270 --> 00:27:47,600 Έτσι, αυτό το αρχείο είναι στην πραγματικότητα πρόκειται να φαίνονται σχεδόν το ίδιο. 612 00:27:47,600 --> 00:27:50,780 Πάω να πάει στο Frosh ΔΥ 2. 613 00:27:50,780 --> 00:27:53,050 Αλλά σε Frosh ΔΥ 2, ας δούμε τι θα συμβεί. 614 00:27:53,050 --> 00:27:58,110 >> Δαβίδ, κάντε κλικ στο κουμπί, όπως αυτό λέγεται? Matthews, δεν υπάρχει καπετάνιος. 615 00:27:58,110 --> 00:27:59,230 Εγγραφείτε. 616 00:27:59,230 --> 00:28:00,130 Έχετε εγγραφεί. 617 00:28:00,130 --> 00:28:00,700 Όχι πραγματικά. 618 00:28:00,700 --> 00:28:02,574 Ω περιμένετε, απλά κάναμε ότι το παράδειγμα, δεν κάναμε; 619 00:28:02,574 --> 00:28:04,520 Εντάξει, να σταθεί με. 620 00:28:04,520 --> 00:28:06,602 Θα κάνουμε το τρία. 621 00:28:06,602 --> 00:28:08,560 Είναι σαφές ότι κάτι είναι περίπου να συμβεί με το Gmail. 622 00:28:08,560 --> 00:28:09,600 Θα φτάσουμε εκεί. 623 00:28:09,600 --> 00:28:11,900 >> Έτσι Frosh ΔΥ 3 μοιάζει με αυτό. 624 00:28:11,900 --> 00:28:13,050 Δεν διαφορετικά. 625 00:28:13,050 --> 00:28:19,850 Αλλά όταν το κάνω Δαβίδ, αρσενικό, Matthews, και εγγραφή, αυτή η τρίτη και τελική έκδοση 626 00:28:19,850 --> 00:28:22,230 αξιώσεις, πολύ απλά, θα Οι εγγεγραμμένοι πραγματικά. 627 00:28:22,230 --> 00:28:23,560 Αυτό είναι το είδος των άυλων. 628 00:28:23,560 --> 00:28:25,600 Αλλά έχω αυτή την αξίωση με αυτό τρίτη και τελική έκδοση 629 00:28:25,600 --> 00:28:30,610 Έχω τώρα ανασυνταχθεί ακριβώς τι μου συγκάτοικο και έφτιαξα για τα Frosh ΔΥ 630 00:28:30,610 --> 00:28:31,731 Πρόγραμμα χρόνια πριν. 631 00:28:31,731 --> 00:28:32,480 Και ήταν απλό. 632 00:28:32,480 --> 00:28:34,330 Δεν υπήρχε βάση δεδομένων, Δεν υπολογιστικό φύλλο Excel. 633 00:28:34,330 --> 00:28:36,450 Αλλά το πιο σημαντικό, δεν υπήρχε περισσότερο χαρτί 634 00:28:36,450 --> 00:28:42,520 γιατί αυτό που κάναμε με αυτό το πρόγραμμα ήταν με το ηλεκτρονικό ταχυδρομείο στην πραγματικότητα το Proctor, ο οποίος 635 00:28:42,520 --> 00:28:44,530 ήταν προηγουμένως λήψη αυτά τα πράγματα μέσω εντύπων. 636 00:28:44,530 --> 00:28:48,890 >> Και προφανώς έχουμε προγραμματιστεί αυτό το ένα τέτοιο τρόπο, ώστε όταν κάποιος καταχωρεί, 637 00:28:48,890 --> 00:28:52,470 Λογαριασμό e-mail Τζον Χάρβαρντ το proctor-- ή τον εαυτό του σε αυτήν την περίπτωση, 638 00:28:52,470 --> 00:28:55,960 John Harvard-- με τα ακόλουθα text-- "Αυτό το άτομο μόλις εγγραφεί." 639 00:28:55,960 --> 00:29:00,560 Το όνομα είναι David, καπετάνιος είναι κενό? φύλο, αρσενικό? και κοιτώνες, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Έτσι, ό, τι συνέβη εκεί; 641 00:29:01,560 --> 00:29:05,360 Λοιπόν, το εν λόγω αρχείο εδώ είναι προφανώς register3.php. 642 00:29:05,360 --> 00:29:09,080 Και αν μπορώ να ανοίξω αυτό, θα δείτε τόσο η ισχύς του κώδικα, όπως αυτό 643 00:29:09,080 --> 00:29:12,380 και, επίσης, ειλικρινά, η ανασφάλεια ενός συστήματος όπως το ηλεκτρονικό ταχυδρομείο. 644 00:29:12,380 --> 00:29:16,290 Έχω μόνο αποτελεσματικά προσποιήθηκε είναι John Harvard με τον ακόλουθο τρόπο. 645 00:29:16,290 --> 00:29:20,920 >> Έχω την ανοικτή ετικέτα php επάνω στην κορυφή, η οποία ακριβώς λέει εδώ έρχεται κάποια κώδικα PHP. 646 00:29:20,920 --> 00:29:23,155 Εδώ κάτω, γυρίζει εκεί έξω οι βιβλιοθήκες σε PHP. 647 00:29:23,155 --> 00:29:26,410 Απλά δεν χρειάζεται να περιλαμβάνουν header αρχεία τόσο πολύ. 648 00:29:26,410 --> 00:29:28,900 Μπορείτε να πάρετε περισσότερο με το νεροχύτη της κουζίνας, να το πω έτσι. 649 00:29:28,900 --> 00:29:31,820 >> Αλλά αυτή τη φορά στη γραμμή 4, να κάνω θέλουν να ειδική βιβλιοθήκη που ονομάζεται 650 00:29:31,820 --> 00:29:36,087 PHP αλληλογραφίας, το οποίο είναι κάτι που μπορείτε να εγκαταστήσετε δωρεάν σε πολλά συστήματα. 651 00:29:36,087 --> 00:29:37,920 Εδώ κάτω είμαι επικύρωση η υποβολή μόνο 652 00:29:37,920 --> 00:29:40,540 ελέγχοντας έκανε ο χρήστης δώσει μου ένα όνομα, ένα φύλο, και ένα κοιτώνα. 653 00:29:40,540 --> 00:29:44,130 Και αν ναι, να προχωρήσει και να υπόσταση σε ένα πρόγραμμα ηλεκτρονικής αλληλογραφίας. 654 00:29:44,130 --> 00:29:47,020 >> Μπορείτε να σκεφτείτε αυτό ως ένα γραμμή κώδικα που διαθέτει μόνο. 655 00:29:47,020 --> 00:29:48,950 Είναι σαν malloc, αλλά είναι λίγο πιο σέξι 656 00:29:48,950 --> 00:29:51,790 στο ότι δεν αναφέρω μόνο malloc και κάποιες γενικές αριθμό. 657 00:29:51,790 --> 00:29:55,030 Λέτε να μου δώσει ένα από αυτά, να μου δώσει ένα νέο μία από αυτές. 658 00:29:55,030 --> 00:29:57,950 >> Και αν έχετε προγραμματιστεί στο Java ή C ++ ή άλλες γλώσσες, 659 00:29:57,950 --> 00:29:59,130 μπορεί να έχετε δει αυτό. 660 00:29:59,130 --> 00:30:01,840 Αλλά το κοντό του, αν άγνωστη, αυτή η γραμμή 661 00:30:01,840 --> 00:30:05,410 θέτει σε σύμβολο του δολαρίου ταχυδρομείου ένα ειδικό struct που ονομάζεται 662 00:30:05,410 --> 00:30:08,731 ένα αντικείμενο που έχει ενσωματωμένο λειτουργικότητα ηλεκτρονικού ταχυδρομείου. 663 00:30:08,731 --> 00:30:10,355 Και στην πραγματικότητα, να παρατηρήσετε και παρόμοια σύνταξη. 664 00:30:10,355 --> 00:30:11,900 >> Αυτό δεν είναι ένας δείκτης, per se. 665 00:30:11,900 --> 00:30:13,990 PHP χρησιμοποιεί ακριβώς την ίδια σύνταξη. 666 00:30:13,990 --> 00:30:17,660 Αυτή η γραμμή που λέει χρήση SMTP-- Simple Mail Transfer 667 00:30:17,660 --> 00:30:20,900 Πρωτόκολλο, το οποίο είναι ακριβώς η πρωτόκολλο που χρησιμοποιείται για την αποστολή αλληλογραφίας. 668 00:30:20,900 --> 00:30:24,240 Αυτό είναι που προσδιορίζει τη χρήση Διακομιστή SMTP του Χάρβαρντ, η οποία 669 00:30:24,240 --> 00:30:25,830 είναι κάπου εδώ στην πανεπιστημιούπολη. 670 00:30:25,830 --> 00:30:28,480 >> Αυτό λέει ό, τι το πρωτόκολλο TCP αριθμό θύρας για να μιλήσω, 671 00:30:28,480 --> 00:30:31,650 και εγώ μόλις κατάλαβα ότι έξω από googling ή ζητώντας από το γραφείο βοήθειας. 672 00:30:31,650 --> 00:30:34,640 Και στη συνέχεια, επειδή Χάρβαρντ χρησιμοποιεί κάποια ασφάλεια του συστήματος για την server-- ταχυδρομείου 673 00:30:34,640 --> 00:30:37,060 τουλάχιστον για την κρυπτογράφηση κίνηση ανάμεσα σε εσάς και, 674 00:30:37,060 --> 00:30:41,380 παρόλο που ο καθένας μπορεί να στείλει σε it-- Πάω να ενεργοποιήσετε το πρωτόκολλο TLS 675 00:30:41,380 --> 00:30:42,710 για τη διατήρηση αυτής ασφαλή. 676 00:30:42,710 --> 00:30:44,730 >> Αλλά αυτό είναι όπου τα πράγματα πάρει λίγο τρομακτικό. 677 00:30:44,730 --> 00:30:47,970 Μπορώ μόνο αυθαίρετα να πω ότι είμαι jharvard, 678 00:30:47,970 --> 00:30:51,930 και μπορώ μόνο αυθαίρετα email εαυτό μου εδώ. 679 00:30:51,930 --> 00:30:55,650 Και τότε μπορώ να καθορίσετε ένα θέμα με αυτή τη γραμμή εδώ. 680 00:30:55,650 --> 00:30:58,460 >> Και αυτό ακριβώς φαίνεται άσχημο, αλλά είναι απλώς ένα μάτσο αλληλουχία. 681 00:30:58,460 --> 00:31:04,480 Βγάζει PHP έχει ένα σούπερ χρήσιμο σύμβολο, όπως ορισμένες γλώσσες, ο χειριστής τελεία, 682 00:31:04,480 --> 00:31:07,340 η οποία μόλις κυριολεκτικά συνενώνει συμβολοσειρά μετά συμβολοσειρά μετά χορδών, 683 00:31:07,340 --> 00:31:09,810 και δεν έχετε να malloc ή σχήμα από το συνολικό μήκος του string. 684 00:31:09,810 --> 00:31:10,820 Μπορείτε απλά να το κάνει. 685 00:31:10,820 --> 00:31:15,220 Και μάλιστα, επειδή είμαι συνενώσει σε όλα αυτά τα πράγματα με αυτές τις κουκκίδες, 686 00:31:15,220 --> 00:31:18,330 γι 'αυτό το e-mail μου αποστέλλονται κοίταξε όπως έπραξε. 687 00:31:18,330 --> 00:31:20,610 >> Και στη συνέχεια, τέλος, εδώ, είμαι αποστολή μηνυμάτων ηλεκτρονικού ταχυδρομείου. 688 00:31:20,610 --> 00:31:22,580 Έτσι, αν αυτό είναι λάθος, Είμαι ακριβώς πρόκειται να πεθάνει, 689 00:31:22,580 --> 00:31:25,680 η οποία είναι μια λειτουργία που μόλις εκτυπώσεις στην οθόνη μερικά μήνυμα σφάλματος. 690 00:31:25,680 --> 00:31:29,170 Αλλά είναι, στην πραγματικότητα, καλώντας τη λειτουργία αποστολής. 691 00:31:29,170 --> 00:31:31,780 Διαφορετικά, αν όλα αυτό αποτύχει, μου ανακατευθύνει πίσω εδώ. 692 00:31:31,780 --> 00:31:34,050 >> Και γιατί βλέπω ότι Είμαι εγγεγραμμένος πραγματικά; 693 00:31:34,050 --> 00:31:36,110 Λοιπόν, αυτό που συνέβη εδώ. 694 00:31:36,110 --> 00:31:38,170 Έτσι Φέρνω αυτό επάνω για μια-δυο λόγους. 695 00:31:38,170 --> 00:31:41,542 >> Ένα, αυτό είναι ακριβώς το πώς και αν χτίζετε κάποια ιστοσελίδα για ένα τελικό σχέδιο 696 00:31:41,542 --> 00:31:44,000 ή για τον πραγματικό κόσμο, αυτό είναι πώς μπορείτε να στείλετε e-mail υπενθυμίσεις 697 00:31:44,000 --> 00:31:45,924 με τους πελάτες σας ή τους συνδρομητές σας. 698 00:31:45,924 --> 00:31:47,590 Αυτό είναι το πώς μπορείτε να στείλετε υπενθυμίσεις κωδικού πρόσβασης. 699 00:31:47,590 --> 00:31:50,760 Αυτό είναι το πώς μπορείτε να στείλετε τους ανθρώπους μηνύματα ότι έχουν ένα νέο Facebook 700 00:31:50,760 --> 00:31:52,990 μήνυμα σε εκκρεμότητα ή κάτι τέτοιο. 701 00:31:52,990 --> 00:31:55,010 >> Αλλά μιλάει επίσης να Το γεγονός ότι αυτό θα μπορούσε 702 00:31:55,010 --> 00:31:58,160 ήταν πολύ καλά από Davin ή οποιονδήποτε άλλον. 703 00:31:58,160 --> 00:32:00,567 Και το λέω αυτό το είδος του με ένα χαμόγελο, επειδή είμαι 704 00:32:00,567 --> 00:32:03,400 αρκετά σίγουροι για το τι συμβαίνει μέσα πολλά από το μυαλό σας σε αυτό το σημείο. 705 00:32:03,400 --> 00:32:11,910 Αλλά αυτό είναι ένα από εκείνα που κάνουν όπως εγώ λένε, όχι αυτό που κάνω το είδος των πραγμάτων, 706 00:32:11,910 --> 00:32:14,480 επειδή είναι ασήμαντο σε σφυρηλατήσει τα μηνύματα σαν αυτό. 707 00:32:14,480 --> 00:32:16,480 Αλλά, όπως ίσως έχετε δει ή να διαβάσετε στο Crimson, 708 00:32:16,480 --> 00:32:18,271 των καθυστερήσεων είναι επίσης αρκετά ασήμαντο για τους ανθρώπους 709 00:32:18,271 --> 00:32:20,050 για να τους εντοπίζουν πίσω σε κάποιο προέλευσης. 710 00:32:20,050 --> 00:32:23,790 Και να με ρωτήσεις κάποια στιγμή, ίσως σε CS50 γεύμα, πώς ήρθα για πρώτη 711 00:32:23,790 --> 00:32:27,080 γνωριστήκαμε πολύ στενά σχεδόν στο Διοικητικό Συμβούλιο ed πολλά χρόνια 712 00:32:27,080 --> 00:32:30,890 πριν, όταν ανακάλυψα πώς λειτούργησε το διαδίκτυο. 713 00:32:30,890 --> 00:32:36,940 Έτσι, σε κάθε case-- ελαφρώς αφού έκανε το διοικητικό συμβούλιο ed. 714 00:32:36,940 --> 00:32:42,300 >> Έτσι, σε κάθε περίπτωση, υπάρχει ένα σωρό σούπερ διεθνοποιημένων, 715 00:32:42,300 --> 00:32:45,960 όπως και αν ονομάζεται εδώ, μία εκ των οποίων εμείς saw-- σύμβολο του δολαρίου υπογράμμισης μετά. 716 00:32:45,960 --> 00:32:49,530 Υπάρχει μια ομόλογό ονομάζεται get, η οποία είναι όπου τα πράγματα από μια διεύθυνση URL 717 00:32:49,530 --> 00:32:50,690 καταλήγει πηγαίνει. 718 00:32:50,690 --> 00:32:54,051 Και υπάρχουν ένα σωρό άλλοι, too-- συνεδρία και server και μπισκότο. 719 00:32:54,051 --> 00:32:55,800 Θα επανέλθουμε σε μπισκότων κάποια άλλη στιγμή, 720 00:32:55,800 --> 00:33:01,340 αλλά συνεδρία είναι είδος δροσερό επειδή το δικαίωμα now-- μέχρι now-- 721 00:33:01,340 --> 00:33:06,350 ό, τι έχουμε κάνει με ένα web browser Είναι το είδος των ανιθαγενών, να το πω έτσι. 722 00:33:06,350 --> 00:33:10,060 Μπορώ να κάνετε κλικ γύρω, πρόσβαση αρχεία στο διακομιστή, κάτι 723 00:33:10,060 --> 00:33:13,500 συμβαίνει στην οθόνη, αλλά τότε η σύνδεση κλείνει. 724 00:33:13,500 --> 00:33:17,450 Ο Internet Explorer ή το Firefox εικονίδιο σταματήσει να γυρίζει 725 00:33:17,450 --> 00:33:20,340 και μπορείτε απλά να δούμε τι η ιστοσελίδα περιέχει. 726 00:33:20,340 --> 00:33:23,530 >> Έτσι HTTP είναι ανιθαγενείς σε ότι αφού κάνει μια σύνδεση, 727 00:33:23,530 --> 00:33:25,050 παίρνει κάποια δεδομένα, αυτό είναι όλο. 728 00:33:25,050 --> 00:33:29,940 Δεν υπάρχει πλέον σύνδεση, σε αντίθεση με το Skype, σε αντίθεση με υποστήριξη FaceTime, σε αντίθεση με GChat, η οποία 729 00:33:29,940 --> 00:33:32,180 διατηρεί ένα σταθερό σύνδεση με το διακομιστή. 730 00:33:32,180 --> 00:33:34,650 Το διαδίκτυο είναι θεμελιωδώς αποσυνδεθεί, αν και θα 731 00:33:34,650 --> 00:33:36,630 δείτε πριν από καιρό πώς μπορούμε να προσομοιώσει τα πράγματα 732 00:33:36,630 --> 00:33:39,300 όπως το Facebook chat και GChat, που διατηρούν την illusion-- 733 00:33:39,300 --> 00:33:41,680 ή πραγματικά να κάνουμε διατηρήσει μια σταθερή σύνδεση με τη χρήση 734 00:33:41,680 --> 00:33:43,270 πιο σύγχρονη τεχνολογία. 735 00:33:43,270 --> 00:33:49,000 >> Αλλά αν πάω σε, ας πούμε, counter.php, Αυτό είναι ένα άλλο απλό παράδειγμα, 736 00:33:49,000 --> 00:33:52,700 όπως θα δούμε, ότι σκέφτεται σήμερα Έχω επισκεφθεί το site μηδέν χρόνο. 737 00:33:52,700 --> 00:33:56,790 Αλλά αν εγώ απλά επαναλάβετε τη φόρτωση της σελίδας, γνωρίζει κατά κάποιο τρόπο ήμουν εδώ πριν. 738 00:33:56,790 --> 00:33:58,840 Αν φορτώσετε εκ νέου και πάλι, ξέρει Ήμουν εδώ πριν. 739 00:33:58,840 --> 00:34:01,100 Και ξανά και ξανά και ξανά και ξανά. 740 00:34:01,100 --> 00:34:03,610 >> Έτσι, υπάρχει κάποια συν-plussing συμβαίνει, αλλά ειδοποίηση 741 00:34:03,610 --> 00:34:07,090 το μικρό πράγμα γυρίζει ποτέ έτσι λίγο επάνω στην κορυφή και στη συνέχεια αποσυνδέεται, 742 00:34:07,090 --> 00:34:11,179 έτσι δεν είναι σαν να έχω ένα σταθερό σύνδεση με τη συσκευή μου. 743 00:34:11,179 --> 00:34:16,929 Λοιπόν, αν πάω σε counter.php, παρατηρήσετε πόσο απλό είναι. 744 00:34:16,929 --> 00:34:19,080 Θέλω πρώτα καλέσετε αυτό το ειδικό λειτουργία που σύντομα θα 745 00:34:19,080 --> 00:34:21,513 αρχίσετε να παίρνετε ως δεδομένο ονομάζεται έναρξης της συνεδρίας. 746 00:34:21,513 --> 00:34:22,179 Ξεκινήστε μια συνεδρία. 747 00:34:22,179 --> 00:34:25,095 >> Και μια συνεδρία πλέον είναι απλά πρόκειται να είναι ένας κάδος, όπως ένα εμπορικό 748 00:34:25,095 --> 00:34:28,120 καλάθι στο οποίο μπορείτε να βάλετε τιμές και το είδος της εμπιστοσύνης ως προγραμματιστής 749 00:34:28,120 --> 00:34:31,590 ότι πρόκειται να είναι εδώ όταν ο χρήστης έρχεται back-- ένα δεύτερο 750 00:34:31,590 --> 00:34:35,670 αργότερα, μία ώρα αργότερα, ακόμα και ένα χρόνο αργότερα, εφ 'όσον αυτός ή αυτή δεν καθαρίζει 751 00:34:35,670 --> 00:34:37,602 cookies τους, όπως εμείς τελικά θα δούμε. 752 00:34:37,602 --> 00:34:39,310 Και τώρα έχω μόνο αν μια κατάσταση εδώ. 753 00:34:39,310 --> 00:34:44,679 Έτσι, αν το ακόλουθο κλειδί, που ονομάζεται μετρητής, βρίσκεται μέσα 754 00:34:44,679 --> 00:34:49,210 αυτού του σούπερ global-- αυτό το κλειδί τραπέζι, αν will-- ονομάζεται συνεδρία, 755 00:34:49,210 --> 00:34:53,350 τότε προχωρήστε και πιάσε το αξία από την session-- think 756 00:34:53,350 --> 00:34:55,250 αυτό ως εμπορικό cart-- και να το αποθηκεύσετε 757 00:34:55,250 --> 00:34:57,680 σε μια προσωρινή μεταβλητή που ονομάζεται μετρητής. 758 00:34:57,680 --> 00:35:02,240 >> Διαφορετικά, αν η τιμή του μετρητή ήταν δεν έχει οριστεί στο λεγόμενο καλάθι αγορών, 759 00:35:02,240 --> 00:35:04,430 μόλις γίνει η προετοιμασία στο 0. 760 00:35:04,430 --> 00:35:09,830 Τέλος, εδώ κάτω, πάει και να βάλει πίσω μέσα στα καροτσάκια ή της συνεδρίασης 761 00:35:09,830 --> 00:35:13,000 η τιμή του μετρητή +1. 762 00:35:13,000 --> 00:35:16,730 Έτσι, αποδεικνύεται ότι αυτή η ειδική here-- δοχείο 763 00:35:16,730 --> 00:35:20,355 η οποία, και πάλι, είναι ένα από αυτά που σχετίζονται συστοιχίες, μια σειρά που μπορείτε δείκτη 764 00:35:20,355 --> 00:35:25,010 σε λέξεις αντί numbers-- παραμένει ακόμα και αφού ο χρήστης πηγαίνει μακριά. 765 00:35:25,010 --> 00:35:26,510 Και πάλι, εγώ θα πάω πίσω στην σελίδα τώρα. 766 00:35:26,510 --> 00:35:28,400 Ήταν ένα λεπτό ή έτσι. 767 00:35:28,400 --> 00:35:31,300 Αλλά θυμάται ότι έχω εδώ 19 φορές πριν. 768 00:35:31,300 --> 00:35:32,740 Αυτή είναι η 20η επίσκεψη μου. 769 00:35:32,740 --> 00:35:36,560 >> Και έτσι αυτό πρόκειται να είναι το κλειδί για την στην υλοποίηση κάθε ιστοσελίδα που θυμάται 770 00:35:36,560 --> 00:35:40,640 ότι είστε συνδεδεμένοι, ότι βάζετε κάτι κυριολεκτικό στο καλάθι αγορών σας 771 00:35:40,640 --> 00:35:43,902 να αγοράσει ή ότι έχετε κάποια τον αριθμό των μηνυμάτων που εκκρεμούν. 772 00:35:43,902 --> 00:35:45,610 Κάθε φορά που θέλετε να θυμηθείτε τα στοιχεία, 773 00:35:45,610 --> 00:35:48,130 θα δούμε ότι η PHP, όπως αρκετές άλλες γλώσσες, 774 00:35:48,130 --> 00:35:53,640 μας παρέχει αυτή ψευδαίσθηση του κράτους αν και, όπως θα δείτε στο PSET 6, 775 00:35:53,640 --> 00:35:57,642 όπως έχετε κάνει αιτήσεις HTTP από τον client στον server, αυτό είναι όλο. 776 00:35:57,642 --> 00:35:59,850 Μόλις πάρετε πίσω ότι απάντηση, δεν υπάρχει τίποτα περισσότερο 777 00:35:59,850 --> 00:36:01,790 έρχονται πίσω από το διακομιστή από προεπιλογή. 778 00:36:01,790 --> 00:36:03,820 Αλλά θα δούμε πώς να επιλύσετε αυτό. 779 00:36:03,820 --> 00:36:07,430 >> Καλά τώρα, ας προσπαθήσουμε να καθαρίστε αυτό επάνω λίγο. 780 00:36:07,430 --> 00:36:09,470 Έχουμε δει μερικά διαφορετικά παραδείγματα που δίνονται εκεί. 781 00:36:09,470 --> 00:36:12,250 Ω, και ως ένα μέρος, για όσοι είναι εξοικειωμένοι ή δεν είναι εξοικειωμένοι, 782 00:36:12,250 --> 00:36:14,230 Ο λόγος που η Frosh ΔΥ παράδειγμα πήγε 783 00:36:14,230 --> 00:36:18,060 από αναζητούν πραγματικά άσχημο να slightly-- καλά, 784 00:36:18,060 --> 00:36:23,160 ακόμα ugly-- έως ελαφρώς λιγότερο άσχημο αν και ακόμα άσχημο 785 00:36:23,160 --> 00:36:25,230 είναι γιατί αν κοιτάξουμε τον πηγαίο κώδικα εδώ, 786 00:36:25,230 --> 00:36:28,240 αποδεικνύεται ότι έχω αυτό στην κορυφή του αρχείου. 787 00:36:28,240 --> 00:36:32,570 >> Βγάζει ότι bootstrap είναι ένα από τα πολλά ελεύθερα διαθέσιμες βιβλιοθήκες εκεί έξω 788 00:36:32,570 --> 00:36:37,140 που δεν υπάρχουν για τις γλώσσες προγραμματισμού πάντα, αλλά για CSS ή για το JavaScript 789 00:36:37,140 --> 00:36:39,190 ή HTML ή οποιοδήποτε αριθμό των γλωσσών. 790 00:36:39,190 --> 00:36:42,160 >> Και αυτοί οι λαοί here-- αρχικά βγήκε 791 00:36:42,160 --> 00:36:44,730 της Twitter-- έχουν μόνο ένα σωρό στυλ. 792 00:36:44,730 --> 00:36:47,360 Είναι ένα τεράστιο αρχείο εδώ ότι κάποιος έγραψε, 793 00:36:47,360 --> 00:36:51,020 ή κάποιος έγραψε, πάροδο του χρόνου που καθορίζει τα χρώματα και τη μορφοποίηση 794 00:36:51,020 --> 00:36:53,740 και εταζέρα, ώστε να μπορώ να το είδος των δανειστεί σύνταξή τους 795 00:36:53,740 --> 00:36:56,157 και δεν πρέπει να καταλάβω πώς να βάλει τη φόρμα μου. 796 00:36:56,157 --> 00:36:57,990 Αυτό είναι επίσης minified έτσι ώστε ένας υπολογιστής μπορεί να 797 00:36:57,990 --> 00:37:00,560 καταλάβουμε αυτό, αλλά δεν αναγκαστικά ένας άνθρωπος. 798 00:37:00,560 --> 00:37:03,050 Έτσι, αυτό είναι ακριβώς γιατί η στυλιζάρισμα εκεί άλλαξε. 799 00:37:03,050 --> 00:37:05,450 >> Αλλά ας κάνουμε τώρα καλύτερα όσον αφορά το σχεδιασμό, 800 00:37:05,450 --> 00:37:07,490 γιατί αν μείνει κάτω Αυτός ο δρόμος είναι πολύ μακρύς, 801 00:37:07,490 --> 00:37:11,290 κώδικα μας πρόκειται να να πάρει βρώμικο και Messier. 802 00:37:11,290 --> 00:37:13,040 Έτσι, ας επικεντρωθεί σε αυτά τα παραδείγματα εδώ. 803 00:37:13,040 --> 00:37:15,090 Το τελευταίο για σήμερα. 804 00:37:15,090 --> 00:37:18,720 >> Έτσι, εδώ είναι μια εξαιρετικά απλή έκδοση 1.0 της ιστοσελίδας CS50 του. 805 00:37:18,720 --> 00:37:21,250 Έχει μόνο συνδέσεις με διαλέξεις και εξεταστέα ύλη, 806 00:37:21,250 --> 00:37:25,490 και αυτό είναι ότι η χρήση μη διατεταγμένη λίστα tag-- την ετικέτα UL που χρησιμοποιήθηκαν την τελευταία φορά. 807 00:37:25,490 --> 00:37:28,800 Και αν στην πραγματικότητα, αν μου ανοίξει Θέα Σελίδα Πηγή, 808 00:37:28,800 --> 00:37:31,710 θα δείτε ότι αυτό είναι πραγματικά, πραγματικά απλή HTML. 809 00:37:31,710 --> 00:37:35,460 Και στην πραγματικότητα, ακόμη και αν αυτό είναι ένα αρχείο PHP κάτω από την κουκούλα, 810 00:37:35,460 --> 00:37:38,620 είναι ακόμα φτύνουν μόνο HTML για τώρα. 811 00:37:38,620 --> 00:37:41,312 >> Έτσι, αν κάνω κλικ στο Διαλέξεις, Βλέπουμε αυτό να συμβαίνει. 812 00:37:41,312 --> 00:37:43,020 Και αν κάνω κλικ στην εβδομάδα μηδέν, βλέπουμε αυτό. 813 00:37:43,020 --> 00:37:44,920 Και αν κάνω κλικ στο Τετάρτη, βλέπουμε αυτό. 814 00:37:44,920 --> 00:37:47,900 Και αυτό προφανώς ήταν το PDF από τις διαφάνειες από εκείνη την ημέρα. 815 00:37:47,900 --> 00:37:52,020 Όλα τα έχω κάνει είναι η σύνδεση με ένα άγκυρα ετικέτα σε αυτό το URL εδώ. 816 00:37:52,020 --> 00:37:55,400 >> Έτσι, αυτό είναι μόνο για να πω ότι αυτό είναι ένα αρκετά απλή έκδοση της ιστοσελίδας του CS50. 817 00:37:55,400 --> 00:37:56,790 Ας δούμε πώς έχει εφαρμοστεί. 818 00:37:56,790 --> 00:38:01,240 Αν πάω στον κατάλογο mvc0, θα δούμε μερικά αρχεία. 819 00:38:01,240 --> 00:38:03,250 Το ένα είναι ένα README, οπότε αν μερικά από αυτό είναι πάρα πολύ γρήγορη, 820 00:38:03,250 --> 00:38:05,166 μπορείτε απλά να σακί γύρω πιο χαλαρό αργότερα. 821 00:38:05,166 --> 00:38:07,930 Και προειδοποίηση εδώ είναι ένα αρχείο index.php. 822 00:38:07,930 --> 00:38:09,960 Αποδεικνύεται ότι αν εσείς ο ίδιος, το ανθρώπινο, 823 00:38:09,960 --> 00:38:14,460 δεν καθορίσετε ένα όνομα στο τελικό μια διεύθυνση URL, ο web server συνήθως 824 00:38:14,460 --> 00:38:17,010 συνάγει κάποιο προεπιλεγμένο όνομα για εσάς. 825 00:38:17,010 --> 00:38:20,060 Μια κάτι δείκτης τελεία είναι γενικά η προεπιλογή. 826 00:38:20,060 --> 00:38:23,010 >> Έτσι, γι 'αυτό πριν από λίγο όταν επισκέφθηκα αυτό το URL εδώ, 827 00:38:23,010 --> 00:38:26,750 κανένα όνομα αρχείου, κανένα αρχείο επέκταση, καμία περίοδος στη διεύθυνση URL. 828 00:38:26,750 --> 00:38:29,710 Απλά ήξερε κάπως μαγικά να ψάξουν για index.php. 829 00:38:29,710 --> 00:38:30,870 Είναι απλά μια σύμβαση. 830 00:38:30,870 --> 00:38:32,360 Θα μπορούσε να ονομάζεται τίποτα. 831 00:38:32,360 --> 00:38:35,110 >> Έτσι, αν μπορώ τώρα να πάει σε index.php, θα δείτε 832 00:38:35,110 --> 00:38:37,100 ότι, indeed-- ας να απαλλαγούμε από τα σχόλια 833 00:38:37,100 --> 00:38:39,500 εδώ γιατί δεν υπάρχει πραγματικά τίποτα ενδιαφέρον να it-- 834 00:38:39,500 --> 00:38:41,579 Αυτό είναι απλά σκληρό κωδικοποιούνται HTML. 835 00:38:41,579 --> 00:38:43,370 Έτσι ώστε να είναι συνεπής, όμως, με την αξίωση μου 836 00:38:43,370 --> 00:38:45,230 ότι μπορείτε να αναμιγνύω HTML και PHP. 837 00:38:45,230 --> 00:38:48,060 Δεν υπάρχει καμία πραγματική Λογικός Προγραμματισμός εδώ. 838 00:38:48,060 --> 00:38:51,030 >> Και τα άλλα αρχεία είναι αρκετά πολύ απλά ως πληκτικός. 839 00:38:51,030 --> 00:38:56,240 Είναι απλά δύσκολο-κωδικοποιημένα εβδομάδα ένα εδώ για μία εβδομάδα m και μία εβδομάδα W, 840 00:38:56,240 --> 00:38:57,510 για τη Δευτέρα και την Τετάρτη. 841 00:38:57,510 --> 00:39:01,890 Και στη συνέχεια, αν έχω ανοίξει εβδομάδα μηδέν, παρατηρήσετε ότι είναι σχεδόν πανομοιότυπα. 842 00:39:01,890 --> 00:39:03,320 >> Και αυτό είναι το είδος της ένα βασικό πακέτο. 843 00:39:03,320 --> 00:39:06,180 Παρατηρήστε πόσο περιττό είναι. 844 00:39:06,180 --> 00:39:10,710 Αυτά τα αρχεία μόλις αλλάξει, και ακόμα μου τράβηξε ένα από αυτά copy / paste τις θέσεις εργασίας 845 00:39:10,710 --> 00:39:13,420 όπου πήρα ένα file-- προφανώς στην εβδομάδα zero-- να αντιγραφεί 846 00:39:13,420 --> 00:39:16,320 όταν μία εβδομάδα ήρθε γύρω, και πειραγμένο μερικές τιμές. 847 00:39:16,320 --> 00:39:18,590 Θα πρέπει πιθανώς να είναι σε θέση να κάνουμε κάτι καλύτερο από αυτό. 848 00:39:18,590 --> 00:39:21,800 >> Έτσι, ας πάμε πίσω μέχρι MVC και να πάει σε μία έκδοση. 849 00:39:21,800 --> 00:39:24,810 Και παρατηρήσετε Έχω ένα μερικά αρχεία, επειδή ό, τι 850 00:39:24,810 --> 00:39:29,870 ήταν κοινά για όλα αυτά τα αρχεία μόνο ένα στιγμή ago-- αν πάω πίσω στην έκδοση 0, 851 00:39:29,870 --> 00:39:32,600 ας πάμε πίσω στο δείκτη, και μόλις postulate-- 852 00:39:32,600 --> 00:39:36,090 μια φορά μπορώ να απαλλαγώ από την comments-- Ποιο μέρος αυτής της σελίδας 853 00:39:36,090 --> 00:39:40,072 είναι προφανώς σε κάθε ένα από τα αρχεία μου; 854 00:39:40,072 --> 00:39:40,780 Απλά καλέστε έξω. 855 00:39:40,780 --> 00:39:44,620 Ποιες γραμμές είναι διπλές πιθανώς σε όλες από αυτές τις σελίδες; 856 00:39:44,620 --> 00:39:45,120 Ναι; 857 00:39:45,120 --> 00:39:46,110 >> Φοιτητής: [δεν ακούγεται]. 858 00:39:46,110 --> 00:39:47,660 >> David J. Malan: 1 έως 9. 859 00:39:47,660 --> 00:39:48,720 Ναι, απολύτως. 860 00:39:48,720 --> 00:39:52,080 1 έως 9, εκτός ίσως από 8 αλλάζει λίγο, γιατί CS50 861 00:39:52,080 --> 00:39:54,650 γίνεται διαλέξεις ή εβδομάδα μηδέν ή κάτι τέτοιο. 862 00:39:54,650 --> 00:39:55,970 Αλλά σχεδόν ταυτόσημα. 863 00:39:55,970 --> 00:39:58,657 Έτσι, όλα αυτά τα πράγματα είναι απλά είδος αντιγραφεί και επικολληθεί. 864 00:39:58,657 --> 00:40:00,490 Και υπάρχει ένα ζευγάρι άλλες γραμμές μπορώ να σκεφτώ 865 00:40:00,490 --> 00:40:05,000 του που είναι πιθανώς όμοια σε όλα τα αρχεία. 866 00:40:05,000 --> 00:40:06,315 >> Φοιτητής: 12 και 13. 867 00:40:06,315 --> 00:40:07,190 David J. Malan: Ναι. 868 00:40:07,190 --> 00:40:11,220 Σίγουρα, 12, 13, και 14, κατά πάσα πιθανότητα, μόνο και μόνο επειδή του ενδιαφέροντα πράγματα 869 00:40:11,220 --> 00:40:15,460 συμβαίνει στις γραμμές 11 και 10, έτσι φαίνεται. 870 00:40:15,460 --> 00:40:18,350 Οπότε ας δούμε την έκδοση 1, η οποία προσπαθεί να βελτιώσει σε αυτό. 871 00:40:18,350 --> 00:40:24,020 Στην έκδοση 1 του παρόντος MVC example-- θα Εξηγήστε τι MVC μέσα σε ένα moment-- 872 00:40:24,020 --> 00:40:27,420 αν πάω σε δείκτη, το είδος του φαίνεται μια μικρή σύγχυση τώρα. 873 00:40:27,420 --> 00:40:28,880 Δεν είναι τόσο απλό όσο πριν. 874 00:40:28,880 --> 00:40:30,906 >> Αλλά τη στιγμή που θα αρχίσουν να διαβάσετε προσεκτικά, είναι 875 00:40:30,906 --> 00:40:32,530 αρκετά απλή τι κάνει. 876 00:40:32,530 --> 00:40:34,397 Προφανώς γραμμή 1 και γραμμή 8 έχουν αντικατασταθεί 877 00:40:34,397 --> 00:40:37,230 όλα τα πράγματα που μόλις identified-- αν και μόνο για το καλό μέτρο, 878 00:40:37,230 --> 00:40:41,900 Άφησα τα ULS υπάρχει μόνο στην περίπτωση που κάποιο ημέρες δεν έχουν μια λίστα με πράγματα. 879 00:40:41,900 --> 00:40:47,860 Και έτσι απαιτούν είναι κάτι σαν λίρας περιλαμβάνονται στο Γ αντίγραφα και πάστες 880 00:40:47,860 --> 00:40:50,470 τα περιεχόμενα αποτελεσματικά ακριβώς εδώ σε αυτό το αρχείο. 881 00:40:50,470 --> 00:40:53,650 >> Έτσι, σε header.php, όπως σας θα μπορούσε να συναχθεί από το όνομά του, 882 00:40:53,650 --> 00:40:55,330 πρόκειται να είναι η επικεφαλίδα της σελίδας. 883 00:40:55,330 --> 00:40:57,110 Είναι το είδος των ορφανών εδώ. 884 00:40:57,110 --> 00:41:01,820 Έχει μόνο την κορυφή σε αυτό, αλλά δεν υπάρχει περισσότερο περιεχόμενο κατωτέρω. 885 00:41:01,820 --> 00:41:05,070 >> Και αν κοιτάξουμε υποσέλιδο εν τω μεταξύ, που ήταν το άλλο αρχείο mentioned-- 886 00:41:05,070 --> 00:41:08,830 αυτό είναι ακόμα λιγότερο ενδιαφέρον, αλλά και πάλι, αυτό είναι κοινή για όλα. 887 00:41:08,830 --> 00:41:10,250 Έτσι, αυτό είναι το υποσέλιδο. 888 00:41:10,250 --> 00:41:11,300 Αυτή είναι η επικεφαλίδα. 889 00:41:11,300 --> 00:41:13,950 Αυτό είναι το αρχείο που είναι αλλάζει, οπότε γιατί να μην 890 00:41:13,950 --> 00:41:18,140 προσπαθήστε να συνυπολογίσει τα κοινά με αυτές τις δύο γραμμές εδώ; 891 00:41:18,140 --> 00:41:20,090 >> Αλλά μπορούμε να καθαρίσετε αυτό μέχρι λίγο περισσότερο. 892 00:41:20,090 --> 00:41:23,260 Πάω να πάει μπροστά και ανοίξει έκδοση δύο, όπου 893 00:41:23,260 --> 00:41:27,106 θα δούμε ότι υπάρχει ένα νέο αρχείο, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Θα δούμε τι είναι αυτό σε μια στιγμή. 895 00:41:28,610 --> 00:41:30,930 Ας πάμε στο δείκτη, όπως η το σημείο εισόδου, όπως πριν. 896 00:41:30,930 --> 00:41:35,230 >> Και τώρα παρατηρήσετε είμαι απαιτούν helpers.php, δεν κεφαλίδα ή το υποσέλιδο. 897 00:41:35,230 --> 00:41:41,720 Αλλά βοηθοί είναι κάτι σαν helpers.c και helpers.h από PSET 2 898 00:41:41,720 --> 00:41:46,150 ή PSET 3 πολύ καιρό πριν, όταν στην πραγματικότητα έκανε αναζητήσετε και να βρείτε για το συγκεκριμένο PSET, 899 00:41:46,150 --> 00:41:50,950 και είχατε όλοι κωδικό σας για διαλογή και η αναζήτηση σε ένα ξεχωριστό αρχείο. 900 00:41:50,950 --> 00:41:52,510 Αυτό είναι ό, τι συμβαίνει εδώ. 901 00:41:52,510 --> 00:41:54,390 >> Και τώρα γραμμή 3 μοιάζει λίγο διαφορετικό. 902 00:41:54,390 --> 00:41:55,920 Και αυτό είναι μόνο μία γραμμή. 903 00:41:55,920 --> 00:41:57,950 Για να γίνει αυτό ακόμη περισσότερο σαφής, θα μπορούσα απλά 904 00:41:57,950 --> 00:42:01,820 το κάνετε αυτό να είναι στυλιστικά συνεπής με όλα τα άλλα που έχουμε κάνει. 905 00:42:01,820 --> 00:42:04,130 Αλλά αυτό δεν είναι πραγματικά αλλάζοντας τη λειτουργικότητα. 906 00:42:04,130 --> 00:42:05,880 Είναι μόνο μία γραμμή πραγματικό κώδικα. 907 00:42:05,880 --> 00:42:09,010 >> Προφανώς, υπάρχει μια συνάρτηση κάπου ονομάζεται καθιστούν κεφαλίδα, 908 00:42:09,010 --> 00:42:11,420 και αυτό είναι όπου τα πράγματα να πάρει αρκετά ισχυρό. 909 00:42:11,420 --> 00:42:17,040 Παρατηρήστε ότι στο εσωτερικό των παρενθέσεων της Είναι ό, τι άλλο κομμάτι της σύνταξης; 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Είναι ίσως λίγο δύσκολο να πω, αλλά παρατηρήσετε there's-- Θα βάλω κάποιο λευκό 912 00:42:23,350 --> 00:42:24,300 χώρο. 913 00:42:24,300 --> 00:42:25,530 Υπάρχει αγκύλες. 914 00:42:25,530 --> 00:42:29,700 >> Και αγκύλες είδαμε πριν από λίγο στο πλαίσιο των συστοιχιών συνειρμική, 915 00:42:29,700 --> 00:42:31,580 που είναι, και πάλι, όπως πίνακες κατακερματισμού. 916 00:42:31,580 --> 00:42:36,230 Και αν νομίζετε τώρα σε C, το σειρά των επιχειρημάτων σε λειτουργία 917 00:42:36,230 --> 00:42:37,570 πρέπει να είναι πάντα το ίδιο. 918 00:42:37,570 --> 00:42:41,146 Θα πρέπει να θυμόμαστε ό, τι το διατάξει is-- x, y, z ή z, y, x-- 919 00:42:41,146 --> 00:42:44,020 και θα πρέπει να τους παρέχει πάντα με την ίδια σειρά ή βλέμμα τους επάνω 920 00:42:44,020 --> 00:42:45,100 αν έχετε ξεχάσει. 921 00:42:45,100 --> 00:42:51,140 >> Αλλά αυτό φαίνεται να είναι ένας έξυπνος τρόπος του περνώντας μια αυθαίρετη τιμή κλειδιού 922 00:42:51,140 --> 00:42:55,840 ζεύγη σύμφωνα με την οποία ο τίτλος είναι το όνομα του ένα επιχείρημα σε αυτή την περίπτωση 923 00:42:55,840 --> 00:42:58,334 και CS50 είναι η αξία του. 924 00:42:58,334 --> 00:43:00,250 Και το γεγονός ότι έχω Αυτές οι αγκύλες 925 00:43:00,250 --> 00:43:02,560 εδώ σημαίνει ότι θα μπορούσα επίσης περάσει σε κάτι 926 00:43:02,560 --> 00:43:07,550 σαν μια εβδομάδα είναι 1 ή 0 ή 2 ή 3. 927 00:43:07,550 --> 00:43:10,550 Έτσι έχουμε παραμετροποιείται Αυτή η λειτουργία κατά τέτοιο τρόπο 928 00:43:10,550 --> 00:43:15,180 ότι μπορεί να χρειαστούν πολλαπλές εισόδους, αλλά για τώρα είναι μόνο η μία. 929 00:43:15,180 --> 00:43:20,060 >> Αν τώρα πάμε σε helpers.php, παρατηρήσετε τι κάνει. 930 00:43:20,060 --> 00:43:22,030 Αυτό είναι ένα μικρό κομμάτι της νέας λειτουργικότητας, 931 00:43:22,030 --> 00:43:24,190 αλλά για τώρα απλά να πάρουν την πίστη ότι αυτό είναι 932 00:43:24,190 --> 00:43:26,570 η σύνταξη με την οποία θα ορίσουμε μια συνάρτηση σε PHP. 933 00:43:26,570 --> 00:43:27,840 Μπορείτε κυριολεκτικά να πω λειτουργία. 934 00:43:27,840 --> 00:43:30,090 Δεν καθορίσετε μια επιστροφή πληκτρολογήστε, και ότι είναι συνεπής 935 00:43:30,090 --> 00:43:33,880 με την μεταβλητή λεπτομέρεια νωρίτερα όπου δεν χρειάζεται πραγματικά να πληκτρολογήσετε έντονα. 936 00:43:33,880 --> 00:43:35,650 >> Αυτό καθορίζει μόνο ότι, εξ ορισμού, αυτό 937 00:43:35,650 --> 00:43:37,460 παίρνει μια συνειρμική συστοιχία ως επιχείρημα. 938 00:43:37,460 --> 00:43:38,210 Και ξέρετε τι; 939 00:43:38,210 --> 00:43:41,450 Εάν ο χρήστης δεν περάσει ένα σε, να αναλάβει μια προκαθορισμένη τιμή. 940 00:43:41,450 --> 00:43:44,680 >> Αυτό είναι ένα χαρακτηριστικό ότι η C δεν έχει για εμάς, το οποίο είναι ωραίο, γιατί τώρα 941 00:43:44,680 --> 00:43:46,430 δεδομένα, ακόμη και αν δεν θα δώσει τίποτα, 942 00:43:46,430 --> 00:43:49,300 Είναι πρόκειται να είναι μια συστοιχία αλλά κενή. 943 00:43:49,300 --> 00:43:51,860 Και, παρεμπιπτόντως, εκχύλισμα απλά κάνει κάτι funky 944 00:43:51,860 --> 00:43:56,380 όπου λαμβάνει όλα τα κλειδιά από αυτό συνειρμική σειρά, όλα τα πράγματα 945 00:43:56,380 --> 00:43:59,950 θα μπορούσε να θέσει σε αγκύλες, και δημιουργεί μεταβλητές από αυτά 946 00:43:59,950 --> 00:44:06,270 έτσι ώστε να μπορούμε να έχουμε τελικά την πρόσβαση για τους footet.php και header.php. 947 00:44:06,270 --> 00:44:08,950 Αυτό είναι λίγο αφηρημένο, οπότε επιτρέψτε μου να το επισημάνω αυτό. 948 00:44:08,950 --> 00:44:12,990 >> Στο index.php, παρατηρήσετε ότι είμαι περνώντας σε ένα βασικό ζευγάρι αξίας του τίτλου 949 00:44:12,990 --> 00:44:14,850 με τιμή CS50. 950 00:44:14,850 --> 00:44:18,660 Αν εξετάσουμε τώρα helpers.php, παρατηρήσετε ότι RenderHeader 951 00:44:18,660 --> 00:44:23,870 η εξαγωγή ότι τα δεδομένα που περνάω και, στη συνέχεια απαιτούν header.php. 952 00:44:23,870 --> 00:44:27,970 Αυτό που έχω κάνει είναι είδος ενός φτωχού εφαρμογή τώρα από τα ακόλουθα. 953 00:44:27,970 --> 00:44:31,720 >> Αν έχω ανοίξει header.php, ειδοποίηση ότι έχω πλέον σκληρά 954 00:44:31,720 --> 00:44:34,890 κωδικοποιημένες τη λέξη CS50 σε αυτό το αρχείο κεφαλίδας. 955 00:44:34,890 --> 00:44:39,310 Έχω βάλει αυτό το ομολογουμένως atrociously που ονομάζεται λειτουργία, HTML ειδικούς χαρακτήρες, 956 00:44:39,310 --> 00:44:40,170 εκεί. 957 00:44:40,170 --> 00:44:41,640 Αλλά παρατηρήστε τι έχω κάνει. 958 00:44:41,640 --> 00:44:44,240 Έχω ανοιχτό HTML. 959 00:44:44,240 --> 00:44:47,420 Στη συνέχεια έχουν ανοικτή κεφαλή και ανοιχτή τίτλο. 960 00:44:47,420 --> 00:44:52,380 >> Και στη συνέχεια στο εσωτερικό της ανοικτής και ο τίτλος του κοντά ετικέτες, έχω ένα κομμάτι του κώδικα PHP. 961 00:44:52,380 --> 00:44:56,670 Και αυτό είναι ένα ωραίο, αλλά της σύνταξης, που απλά σημαίνει ηχώ έξω. 962 00:44:56,670 --> 00:44:59,840 Σημαίνει κυριολεκτικά this-- απηχούν την following-- 963 00:44:59,840 --> 00:45:01,910 αλλά αυτό είναι πιο σέξι να γράψω. 964 00:45:01,910 --> 00:45:05,000 Ηχώ από τον τίτλο που είναι ήδη περάσει στο. 965 00:45:05,000 --> 00:45:07,560 >> Αλλά τι νομίζετε HTML ειδική char είναι όλα σχετικά, 966 00:45:07,560 --> 00:45:10,590 ειδικά αν έχετε κάποια προηγούμενη εμπειρία HTML; 967 00:45:10,590 --> 00:45:14,050 Ποιους χαρακτήρες μπορεί να είναι επικίνδυνο να περάσει σε μια σελίδα 968 00:45:14,050 --> 00:45:17,980 όπου είστε δυναμικά δημιουργώντας η ιστοσελίδα με κώδικα όπως αυτό; 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Επιτρέψτε μου να πάω σε αυτό το αρχείο, έκδοση δύο, και να δούμε αν δεν μπορώ να προκαλέσουν αυτό. 971 00:45:24,650 --> 00:45:26,210 >> Έκδοση δύο είναι αυτό. 972 00:45:26,210 --> 00:45:28,510 Και παρατηρήσετε τα πάντα είναι μια χαρά, λειτουργεί καλά. 973 00:45:28,510 --> 00:45:35,280 Αλλά ας υποθέσουμε ότι έχω πάει σε index.php και Έχω διευκρινίσει ότι ο τίτλος της σελίδας μου 974 00:45:35,280 --> 00:45:36,630 Δεν είναι CS50. 975 00:45:36,630 --> 00:45:44,930 Είναι ανοιχτό βραχίονα ειδοποίησης σενάριο Γεια σας κόσμο, στενή και μόνη προσφορά, 976 00:45:44,930 --> 00:45:49,740 κοντά παρένθεση, τελεία, ελεύθερο βραχίονα, σενάριο κάθετος. 977 00:45:49,740 --> 00:45:51,897 >> Σενάριο, όπως θα για να δουν τελικά, είναι μια ετικέτα 978 00:45:51,897 --> 00:45:54,480 που μπορείτε να χρησιμοποιήσετε για να χρησιμοποιήσετε από άλλο γλώσσα προγραμματισμού που ονομάζεται 979 00:45:54,480 --> 00:45:56,330 JavaScript στο εσωτερικό μιας ιστοσελίδας. 980 00:45:56,330 --> 00:45:57,960 Και τώρα παρατηρήσετε τη λογική εδώ. 981 00:45:57,960 --> 00:45:59,840 Εδώ είναι ένα κλειδί που ονομάζεται τίτλο. 982 00:45:59,840 --> 00:46:02,690 Εδώ είναι τρελό μεγάλη αξία τώρα. 983 00:46:02,690 --> 00:46:07,840 >> Αλλά αν πάω να τους βοηθούς PAGE- ή μάλλον, η σελίδα κεφαλίδας, 984 00:46:07,840 --> 00:46:11,310 Είμαι καλώντας τη λειτουργία αυτή για αυτόν τον τίτλο για πρώτη φορά. 985 00:46:11,310 --> 00:46:15,250 Έτσι, αν εγώ τώρα φορτώστε ξανά αυτήν τη σελίδα, εγώ δείτε αυτό, το οποίο φαίνεται γελοίο, 986 00:46:15,250 --> 00:46:16,110 αλλά είναι ασφαλές. 987 00:46:16,110 --> 00:46:17,310 Απλώς φαίνεται ανόητο. 988 00:46:17,310 --> 00:46:20,320 >> Αλλά ας υποθέσουμε ότι αντί Είχα ξεχάσει αυτό. 989 00:46:20,320 --> 00:46:24,660 Και σημειώστε τα λόγια μου, ένας μη μηδενικός αριθμός του θα ξεχάσετε να το κάνετε αυτό 990 00:46:24,660 --> 00:46:27,790 και θα πάρετε κάποια εργατικός φοιτητής ή ο φίλος έρχεται 991 00:46:27,790 --> 00:46:31,540 για εσάς στην εύλογη CS50 ή ανώνυμα τη νύχτα σπρώχνει γύρω στην ιστοσελίδα σας 992 00:46:31,540 --> 00:46:35,300 και ουσιαστικά ένεση κώδικα εν αγνοία σας στο site σας 993 00:46:35,300 --> 00:46:35,800 κατά κάποιο τρόπο. 994 00:46:35,800 --> 00:46:39,000 >> Διότι αν εγώ απλά φτύνουν από τον τίτλο εδώ και τίτλος 995 00:46:39,000 --> 00:46:44,330 there-- καλά, εάν ο τίτλος κυριολεκτικά μοιάζει με αυτό και PHP 996 00:46:44,330 --> 00:46:47,660 ως μια γλώσσα που μπορεί να φτύνουν τις άλλες γλώσσες το κείμενο, 997 00:46:47,660 --> 00:46:50,650 Αυτό είναι κυριολεκτικά πηγαίνει να αντικαταστήσουν αυτή την ετικέτα με, 998 00:46:50,650 --> 00:46:53,010 Φυσικά, αυτό που έβαλα αλλού. 999 00:46:53,010 --> 00:46:57,640 >> Έτσι, αν εγώ τώρα πάω εδώ και να φορτώσετε εκ νέου μετά αναίρεση αυτών των μηχανισμών ασφαλείας, 1000 00:46:57,640 --> 00:46:59,982 τώρα έχω Hello World εδώ. 1001 00:46:59,982 --> 00:47:02,690 Τώρα που δεν είναι όλοι το μεγάλο του αντιμετώπιση, αλλά θα μπορούσε να κάνει κάτι 1002 00:47:02,690 --> 00:47:05,119 λίγο πιο κακόβουλο εδώ, σαν να υπάρχει 1003 00:47:05,119 --> 00:47:08,410 άλλα tags-- όπως θα δούμε μια φορά ξοδεύουμε περισσότερο χρόνο στην JavaScript-- σαν τοποθεσία 1004 00:47:08,410 --> 00:47:14,910 dot href παίρνει, παραθέτω, εισαγωγικά, HTTP business.com, αλλά το αντίθετο από αυτό 1005 00:47:14,910 --> 00:47:15,950 από την άλλη ημέρα. 1006 00:47:15,950 --> 00:47:20,120 Και τώρα μπορείτε να προκαλέσουν ένα web σελίδα πραγματικά να πάει αμέσως 1007 00:47:20,120 --> 00:47:21,190 σε αυτήν την ιστοσελίδα εδώ. 1008 00:47:21,190 --> 00:47:23,000 >> Και στην πραγματικότητα, δεν θέλω ακόμη και να πάει στο business.com 1009 00:47:23,000 --> 00:47:24,749 γιατί δεν θέλω να ξέρουν τι είναι αυτό. 1010 00:47:24,749 --> 00:47:28,710 Αλλά αυτό, επίσης, θα προκαλέσει κώδικα να εγχυθεί σε αυτή τη σελίδα. 1011 00:47:28,710 --> 00:47:32,680 Έτσι, αυτό είναι μόνο για να πω ότι ακόμη και αν είμαστε εισαγωγή σούπερ νωρίς για κάποια 1012 00:47:32,680 --> 00:47:36,800 αυτών των περισσότερο πολύπλοκων δομών, είναι όλα προς το τέλος του φροντίζοντας 1013 00:47:36,800 --> 00:47:39,320 ότι ο κωδικός σας δεν είναι εκμεταλλεύσιμα. 1014 00:47:39,320 --> 00:47:40,960 >> Έτσι τώρα μια τρίτη εκδοχή εδώ. 1015 00:47:40,960 --> 00:47:42,470 Είναι να πάρει λίγο πιό φανταχτερό. 1016 00:47:42,470 --> 00:47:44,875 Δεν είχα πραγματικά like-- η πρωκτική πλευρά του εαυτού μου 1017 00:47:44,875 --> 00:47:47,750 ήταν να πάρει λίγο ενοχλημένος από το το γεγονός ότι είχα μια λειτουργία που ονομάζεται 1018 00:47:47,750 --> 00:47:51,940 RenderHeader και RenderFooter ότι ήταν σχεδόν πανομοιότυπα. 1019 00:47:51,940 --> 00:47:55,400 Έτσι, αυτό συνέβη σε μένα, γιατί να μην κάνουμε Έχω παραμετροποιήσετε αυτές τις λειτουργίες 1020 00:47:55,400 --> 00:47:59,180 σε ένα μόνο ονομάζεται καθιστούν, έχουν λάβει ένα δεύτερο επιχείρημα 1021 00:47:59,180 --> 00:48:04,420 όπως το όνομα του προτύπου, η τελική να render-- είτε κεφαλίδα ή το υποσέλιδο; 1022 00:48:04,420 --> 00:48:07,160 Και στη συνέχεια, προαιρετικά, αν θέλω να περάσει σε ορισμένα βασικά ζεύγη αξία 1023 00:48:07,160 --> 00:48:10,580 όπως κάνω για τον τίτλο για το header αλλά όχι για το υποσέλιδο, 1024 00:48:10,580 --> 00:48:11,800 Θα μπορούσα να το κάνω αυτό. 1025 00:48:11,800 --> 00:48:16,510 >> Και έτσι τώρα αν πάω σε helpers.php, είναι λίγο πιο περίπλοκη. 1026 00:48:16,510 --> 00:48:19,670 Και εγώ θα κύμα χέρια μου το λεπτομέρειες, αλλά αυτό είναι μόνο μία λειτουργία. 1027 00:48:19,670 --> 00:48:21,890 Έτσι, αυτό είναι ένα βήμα προς ένα καλύτερο σχεδιασμό. 1028 00:48:21,890 --> 00:48:23,360 >> Μπορούμε να πάρουμε ένα βήμα παραπέρα. 1029 00:48:23,360 --> 00:48:28,890 Αν πάω στην τέταρτη μου έκδοση αυτή, παρατηρούμε τώρα 1030 00:48:28,890 --> 00:48:31,320 ότι κάνω κάτι ακόμα περισσότερο το είδος των αινιγματικό. 1031 00:48:31,320 --> 00:48:33,230 Και ξέρω ότι αυτό είναι ένα παρτίδα να απορροφήσει ταυτόχρονα, 1032 00:48:33,230 --> 00:48:35,080 αλλά είμαστε ακριβώς το είδος του καθαρισμού πράγματα. 1033 00:48:35,080 --> 00:48:38,550 Τώρα βάζω βοηθοί μου το αρχείο σε ένα φάκελο που ονομάζεται 1034 00:48:38,550 --> 00:48:41,190 includes-- απλά μια αυθαίρετη Ονομα όπου θέλω να βάλω τα πράγματα 1035 00:48:41,190 --> 00:48:44,300 ότι θέλω να include-- και, στη συνέχεια, το υπόλοιπο αυτό είναι η ίδια. 1036 00:48:44,300 --> 00:48:47,140 >> Αλλά αν κοιτάξουμε τώρα στο gedit, ειδοποίηση που έχω πάρει απαλλαγούμε 1037 00:48:47,140 --> 00:48:51,940 από όλα τα άλλα αρχεία και έχω μετακινηθεί τους, για παράδειγμα, σε εδώ. 1038 00:48:51,940 --> 00:48:55,110 Και στη συνέχεια, πρότυπα, Έχω αυτό εδώ, πάρα πολύ. 1039 00:48:55,110 --> 00:48:59,292 Και έτσι όλα αυτά είναι τώρα προς βήμα της χρησιμοποιώντας ένα πολύ καλύτερο πρότυπο σχεδιασμού. 1040 00:48:59,292 --> 00:49:01,000 Και είμαστε πολύ γρήγορα πρόκειται να απομακρυνθούμε 1041 00:49:01,000 --> 00:49:03,870 από προεπιλογή λειτουργικότητα της PHP, η οποία ξεκινήσαμε εδώ με, 1042 00:49:03,870 --> 00:49:07,655 όπου μπορείτε απλά συμμιγνύω PHP, και σας HTML, CSS και σας, 1043 00:49:07,655 --> 00:49:09,780 και μπορείτε απλά να φτύσει και πηγαίνετε για το δρόμο σας. 1044 00:49:09,780 --> 00:49:11,404 Δεν πρόκειται να είναι πολύ διατηρήσιμη. 1045 00:49:11,404 --> 00:49:14,481 Ακριβώς όπως και στη C, αρχίσαμε να χρησιμοποιούμε πολλαπλά αρχεία και πολλαπλές λειτουργίες 1046 00:49:14,481 --> 00:49:15,730 και factoring πράγματα που έξω. 1047 00:49:15,730 --> 00:49:16,688 Θα κάνουμε το ίδιο και εδώ. 1048 00:49:16,688 --> 00:49:19,970 Και στην πραγματικότητα, στο πέμπτο και τελικό έκδοση εδώ, έκανα ένα άλλο πράγμα. 1049 00:49:19,970 --> 00:49:23,710 Μπορείτε ακόμη να χρησιμοποιήσετε τελεία τελεία, η οποία, πάλι, είναι ακριβώς το γονικό κατάλογο. 1050 00:49:23,710 --> 00:49:28,260 Για να είναι ακόμα μεγαλύτερη ασφάλεια συνειδητή, γιατί αν κοιτάξουμε την ακρόαση 1051 00:49:28,260 --> 00:49:32,450 εδώ για πέμπτη και τελική έκδοση, προειδοποίηση ότι έχω έναν κατάλογο που ονομάζεται εδώ 1052 00:49:32,450 --> 00:49:35,180 κοινό, και στη συνέχεια η ίδιο επίπεδο, να το πω έτσι, 1053 00:49:35,180 --> 00:49:38,490 Έχω περιλαμβάνει και πρότυπα και, στη συνέχεια, ότι readme αρχείο κειμένου. 1054 00:49:38,490 --> 00:49:41,130 >> Και ο λόγος που έχω δομημένη αρέσει this-- και τόσα πολλά web 1055 00:49:41,130 --> 00:49:44,330 ξενιστές, ιδίως εκείνων 5 δολάρια αυτούς μήνα ή αυτοί $ 10 το μήνα, 1056 00:49:44,330 --> 00:49:47,170 εάν είχατε ποτέ μία από αυτές services-- αυτό που τόσο πολλοί από αυτούς κάνουν 1057 00:49:47,170 --> 00:49:50,690 είναι το μόνο που αναμένουμε από εσάς να απορρίπτουν όλα των αρχείων σας σε έναν κατάλογο, 1058 00:49:50,690 --> 00:49:53,640 όπως κάναμε ήδη με Αυτό το πρώτο παράδειγμα. 1059 00:49:53,640 --> 00:49:56,740 >> Αλλά μόλις ξεκινήσετε την οικοδόμηση περισσότερο εξελιγμένες περιοχές που αποθηκεύουν μόνο 1060 00:49:56,740 --> 00:50:00,480 δεδομένα που νοιάζονται για και τα αρχεία σας νοιάζει, στην πραγματικότητα την οργάνωση πράγματα 1061 00:50:00,480 --> 00:50:05,060 σωστά και με μεγαλύτερη ασφάλεια συνείδηση ​​στο μυαλό μπορεί να 1062 00:50:05,060 --> 00:50:07,927 αρχίζουμε να υπερασπιστούν ενάντια σε όλους τους φίλους 1063 00:50:07,927 --> 00:50:10,135 ότι έχετε είτε εντός είτε εκτός αυτής της κατηγορίας οι οποίοι, 1064 00:50:10,135 --> 00:50:12,510 μόλις αρχίσετε να κάνετε προγράμματα εαυτό σας στο διαδίκτυο, 1065 00:50:12,510 --> 00:50:15,140 πρόκειται να ξεκινήσει να πάρει σε σας και σε αυτούς. 1066 00:50:15,140 --> 00:50:17,420 >> Και έτσι θα δούμε τελικά, σε αυτό το σχέδιο. 1067 00:50:17,420 --> 00:50:20,010 Αυτό είναι απλά μια εικόνα που απεικονίζει την ακόλουθη. 1068 00:50:20,010 --> 00:50:22,897 Εμείς πάμε να βάλουμε όλα μας προγραμματισμού λογικής σε ένα ή περισσότερα αρχεία, 1069 00:50:22,897 --> 00:50:25,230 και θα πάμε να ξεκινήσει μόνο καλώντας τους ελεγκτές. 1070 00:50:25,230 --> 00:50:28,022 Είναι το μέρος όπου οι εγκέφαλοι των ιστοσελίδες μας πραγματικά είναι. 1071 00:50:28,022 --> 00:50:29,730 Στη συνέχεια θα πάμε να έχουν απόψεις, και τις απόψεις 1072 00:50:29,730 --> 00:50:32,480 είναι τόσο απλό όσο ακριβώς ξεχωριστά files-- ονομάζεται πρότυπα, συχνά. 1073 00:50:32,480 --> 00:50:34,410 Έχουν ακριβώς το αισθητική της σελίδας μου, 1074 00:50:34,410 --> 00:50:37,020 τι θέλω τη σελίδα για να δείτε like-- τα χρώματα και τη διάταξη 1075 00:50:37,020 --> 00:50:38,870 και οι θέσεις των όλες τις μεταβλητές. 1076 00:50:38,870 --> 00:50:41,120 >> Και στη συνέχεια πιο ενδιαφέρουσα ότι θα πάρουν τελικά να 1077 00:50:41,120 --> 00:50:45,420 είναι το μοντέλο, το οποίο πρόκειται να είναι ακριβώς η λέξη που χαστούκι σε άλλες τεχνολογίες 1078 00:50:45,420 --> 00:50:47,771 ότι θέτουν σε η εικόνας, όπως η πραγματική βάσεις δεδομένων, 1079 00:50:47,771 --> 00:50:49,520 έτσι ώστε όταν θέλετε για να αποθηκεύσετε τις πληροφορίες, 1080 00:50:49,520 --> 00:50:52,140 που δεν πρέπει απλώς να στείλετε ένα e-mail στο Proctor σας ή για τον εαυτό σας, 1081 00:50:52,140 --> 00:50:57,350 μπορείτε πραγματικά να το αποθηκεύσετε σε μια βάση δεδομένων χρησιμοποιώντας μια άλλη γλώσσα γνωστή ως SQL. 1082 00:50:57,350 --> 00:51:00,450 Και έτσι θα φύγουμε από εδώ σήμερα και σηκώστε με αυτή την Τετάρτη 1083 00:51:00,450 --> 00:51:02,990 και την εισαγωγή δεδομένων στη συνέχεια. 1084 00:51:02,990 --> 00:51:06,940 >> [Παίζει μουσική] 1085 00:51:06,940 --> 00:54:24,555