1 00:00:00,000 --> 00:00:04,410 >> [Musikwiedergabe] 2 00:00:04,410 --> 00:00:12,250 3 00:00:12,250 --> 00:00:15,770 >> Sprecher 1: Dies ist CS50 und Dies ist das Ende der sieben Wochen. 4 00:00:15,770 --> 00:00:20,240 Heute ist vielleicht, wo wir wirklich Unterricht, Sprachen. 5 00:00:20,240 --> 00:00:24,100 Wir führten in den letzten paar Wochen HTML und CSS, von denen keines 6 00:00:24,100 --> 00:00:25,240 sind Programmiersprachen. 7 00:00:25,240 --> 00:00:28,600 Und in der Tat, auch wenn wir es nicht Blick auf fast alle Tags 8 00:00:28,600 --> 00:00:33,410 dass HTML kommt mit und fast alle der Eigenschaften, die CSS kommt mit, 9 00:00:33,410 --> 00:00:35,007 das ist irgendwie es für HTML und CSS. 10 00:00:35,007 --> 00:00:36,840 Wir werden einfach in der Regel beginnen vorausgesetzt, dass Sie 11 00:00:36,840 --> 00:00:39,545 die allgemeinen Ideen zu verstehen von Tags und Attributen, 12 00:00:39,545 --> 00:00:41,850 und Seiten gesendet vom Client zum Server. 13 00:00:41,850 --> 00:00:45,280 >> Denn heute beginnen wir zu sehen eine weitere Programmiersprache PHP. 14 00:00:45,280 --> 00:00:47,110 Wir werden diese super schnell zu tun. 15 00:00:47,110 --> 00:00:50,910 Wir gehen nicht zu lehren, PHP an sich, ähnlich wie wir nicht danach streben, Ihnen beizubringen, 16 00:00:50,910 --> 00:00:52,670 C, per se, sondern vielmehr Programmierung. 17 00:00:52,670 --> 00:00:55,088 Und in der Tat, eine der Ziele für diesen Kurs 18 00:00:55,088 --> 00:00:57,820 ist nicht zu lehren, C, oder HTML oder CSS oder PHP, 19 00:00:57,820 --> 00:01:00,370 oder eine beliebige Anzahl anderer Schlagworte oder Akronyme, 20 00:01:00,370 --> 00:01:03,097 sondern der Informatik und wie grundlegend zu programmieren. 21 00:01:03,097 --> 00:01:05,930 Und in der Tat, heute beginnen wir zu nehmen diese Stützräder off all die 22 00:01:05,930 --> 00:01:10,600 weiter fliegen durch eine Sprache namens PHP, wie folgt. 23 00:01:10,600 --> 00:01:13,640 >> Hier ist, was diese Sprache aussieht. 24 00:01:13,640 --> 00:01:17,790 Es stellt sich heraus, dass es keine Notwendigkeit eine Hauptfunktion in einem Programm geschrieben 25 00:01:17,790 --> 00:01:19,470 in einer Sprache namens PHP. 26 00:01:19,470 --> 00:01:22,585 So dass klingt schon ein wenig einfacher als C, mit dem wir vertraut sind. 27 00:01:22,585 --> 00:01:25,370 Es stellt sich heraus, dass, wenn Sie wollen eine Variable zu deklarieren, 28 00:01:25,370 --> 00:01:29,470 Sie fast genauso, C. Aber tun gibt es hier deutlich einen Unterschied 29 00:01:29,470 --> 00:01:31,850 wenn ich erklären, eine Zeichenfolge, oder vielleicht zwei Unterschiede. 30 00:01:31,850 --> 00:01:32,725 Was sieht anders aus? 31 00:01:32,725 --> 00:01:35,810 32 00:01:35,810 --> 00:01:37,160 >> Publikum: Das Dollarzeichen. 33 00:01:37,160 --> 00:01:39,951 >> Sprecher 1: Ja, es gibt Dollar unterzeichnen, die wir noch nie gesehen habe. 34 00:01:39,951 --> 00:01:41,451 Und was fehlt? 35 00:01:41,451 --> 00:01:41,950 Ja? 36 00:01:41,950 --> 00:01:42,820 >> ZIELGRUPPE: [unverständlich] 37 00:01:42,820 --> 00:01:44,403 >> Sprecher 1: Ja, es gibt keinen Datentyp. 38 00:01:44,403 --> 00:01:48,410 So stellt sich heraus, dass PHP ist, was wir rufen Sie eine schwach typisierte Sprache ist, in der 39 00:01:48,410 --> 00:01:49,959 C ist stark typisiert. 40 00:01:49,959 --> 00:01:52,500 Schwach typisierte bedeutet nur, dass Es gibt verschiedene Datentypen, 41 00:01:52,500 --> 00:01:54,470 gibt es Zeichenfolgen und Ints, und schwimmt. 42 00:01:54,470 --> 00:01:56,330 Aber die Computerfiguren, die aus. 43 00:01:56,330 --> 00:01:58,664 Sie das menschliche Programmierer nicht haben, um es herauszufinden. 44 00:01:58,664 --> 00:02:00,580 Also alles, was Sie tun müssen, zu erklären, eine Variable 45 00:02:00,580 --> 00:02:03,220 Dollar-Zeichen, der Name Ihrer variabel, und dann, zum Beispiel, 46 00:02:03,220 --> 00:02:04,760 Zitat Zitat Ende, hallo Welt. 47 00:02:04,760 --> 00:02:07,662 >> Gut, das ist, was ein Zustand sieht aus wie in PHP. 48 00:02:07,662 --> 00:02:08,328 Etwaige Unterschiede? 49 00:02:08,328 --> 00:02:10,650 50 00:02:10,650 --> 00:02:11,150 Nein. 51 00:02:11,150 --> 00:02:12,540 So stellt sich heraus das sind identisch. 52 00:02:12,540 --> 00:02:14,665 Und Sie könnten weniger haben Niederlassungen oder mehr Zweige, 53 00:02:14,665 --> 00:02:16,557 aber die Syntax Wendungen genau das gleiche. 54 00:02:16,557 --> 00:02:18,390 Boolesche Ausdrücke können zusammen bestellt werden. 55 00:02:18,390 --> 00:02:20,400 Boolesche Ausdrücke können miteinander UND-verknüpft werden. 56 00:02:20,400 --> 00:02:21,430 Sie haben noch Switches. 57 00:02:21,430 --> 00:02:23,790 Auch wenn Sie nicht verwendet haben, Davon Diese müssen in C existieren 58 00:02:23,790 --> 00:02:26,020 und sie sind funktional Gegenwert in PHP. 59 00:02:26,020 --> 00:02:28,260 >> Und in der Tat, in PHP sie ein wenig mehr mächtig. 60 00:02:28,260 --> 00:02:32,540 In C können Sie nur bestimmte vergleichen Datentypen wie Ganzzahlen und Zeichen, 61 00:02:32,540 --> 00:02:36,320 während in PHP Sie tatsächlich vergleichen können vollwertige Zeichenfolgen ohne 62 00:02:36,320 --> 00:02:38,460 um über Zeiger und dergleichen kümmern. 63 00:02:38,460 --> 00:02:39,430 Also hier ist eine for-Schleife. 64 00:02:39,430 --> 00:02:41,270 Dies ist nur Pseudo Code, wenn man so will. 65 00:02:41,270 --> 00:02:43,400 Aber es ist strukturell identisch mit C. 66 00:02:43,400 --> 00:02:47,520 >> Hier ist eine while-Schleife, Pseudo therefore-- identisch mit C. 67 00:02:47,520 --> 00:02:49,390 Hier ist eine Do While loop-- identisch. 68 00:02:49,390 --> 00:02:51,390 Und so gibt es Art von dieses Muster hier, wobei 69 00:02:51,390 --> 00:02:54,400 es gibt ein paar andere syntaktische Features wir ja gehen, um zu sehen. 70 00:02:54,400 --> 00:02:57,340 In der Tat, hier ist ein nettes Weg in PHP, wodurch, 71 00:02:57,340 --> 00:02:59,350 wenn Sie wollen, durchlaufen über ein Array, und Sie 72 00:02:59,350 --> 00:03:02,309 wollen nicht durch den Sprung geistige und syntaktischen Reifen des Habens 73 00:03:02,309 --> 00:03:05,178 int i gleich 0 ist, i kleiner als n, i plus plus-- die 74 00:03:05,178 --> 00:03:07,040 ist nur eine Menge von lästigen Syntax. 75 00:03:07,040 --> 00:03:10,654 Sie können ein wenig mehr sagen, strömungsmäßig für jeweils Zahlen 76 00:03:10,654 --> 00:03:13,320 als Zahl, wobei in diesem Fall Dollar-Zeichen-Nummern, ich gehe davon aus, 77 00:03:13,320 --> 00:03:15,400 ist wie ein Array angerufenen Nummern. 78 00:03:15,400 --> 00:03:18,810 Und dann gehe ich davon aus Nummer, Singular, wird eine Variable sein. 79 00:03:18,810 --> 00:03:22,940 >> Und was PHP wird für mich tun, was ich durchlaufen über diese Schleife ist, bei jeder Iteration, 80 00:03:22,940 --> 00:03:28,450 es wird aktualisieren die variable Anzahl an das i-te Element in Zahlen, Plural sein. 81 00:03:28,450 --> 00:03:30,060 So ist es nur handhabt das alles für mich. 82 00:03:30,060 --> 00:03:32,750 Keine eckigen Klammern, keine Dollar-Zeichen, keine Semikolons. 83 00:03:32,750 --> 00:03:34,117 Es ist nur ein wenig einfacher. 84 00:03:34,117 --> 00:03:35,950 Nun, wenn Sie wollen ein Array, stellt sich heraus Sie 85 00:03:35,950 --> 00:03:38,908 können etwas ziemlich ähnlich zu tun C. Die Syntax ist ein wenig anders. 86 00:03:38,908 --> 00:03:41,000 Aber hier ist ein Array mit dem Namen Dollar-Zahlen mit Vorzeichen. 87 00:03:41,000 --> 00:03:44,261 Und ich, in PHP, quadratisch Klammern, stellt sich heraus. 88 00:03:44,261 --> 00:03:47,260 Und wir werden diese wieder zu sehen in JavaScript-- noch eine andere Sprache. 89 00:03:47,260 --> 00:03:49,968 Ich habe gerade mit eckigen Klammern um eine durch Kommata getrennte Liste haben 90 00:03:49,968 --> 00:03:51,530 von ganzen Zahlen, in diesem Fall. 91 00:03:51,530 --> 00:03:53,010 Aber das gibt mir ein Array. 92 00:03:53,010 --> 00:03:56,270 >> Aber noch leistungsfähiger in PHP, haben wir auch, was in der Regel 93 00:03:56,270 --> 00:03:57,640 genannte assoziative Arrays. 94 00:03:57,640 --> 00:03:59,540 Und viele Sprachen müssen diese als gut. 95 00:03:59,540 --> 00:04:03,810 Die Sache mit C-Arrays ist, dass die Indizes 96 00:04:03,810 --> 00:04:06,940 für ein Array, das, was Sie Verwendung in eckigen Klammern, über die 97 00:04:06,940 --> 00:04:08,600 Sie bewirken, sind das, was sein? 98 00:04:08,600 --> 00:04:10,620 >> ZIELGRUPPE: [unverständlich] 99 00:04:10,620 --> 00:04:14,220 >> Sprecher 1: Sie müssen Zahlen sein oder ganze Zahlen, und zwar von Null auf. 100 00:04:14,220 --> 00:04:17,140 Nun, in PHP, und stellt sich aus, in anderen Sprachen, 101 00:04:17,140 --> 00:04:20,820 können Sie beginnen, haben Indizes, die nicht numerisch sind. 102 00:04:20,820 --> 00:04:23,880 Aber sie sind tatsächlich Wörter oder Sätze, so dass anstatt 103 00:04:23,880 --> 00:04:27,070 versuchen, wo etwas zu erinnern ist, oder in einer Variablen i gespeichert ist, 104 00:04:27,070 --> 00:04:31,720 Sie können tatsächlich ein Wort und sagen: dass-- können Sie ein Wort wie das zu sagen. 105 00:04:31,720 --> 00:04:34,730 >> So Dollarzeichen Zitat ist die Name einer Variablen hier. 106 00:04:34,730 --> 00:04:39,360 Dies ist etwas flippige Syntax das ist, assoziieren zwei Schlüsselwert 107 00:04:39,360 --> 00:04:41,250 Paare für diese Variable. 108 00:04:41,250 --> 00:04:45,490 Insbesondere betrifft diese me geben ein Array, das der Länge 2 ist. 109 00:04:45,490 --> 00:04:47,660 Aber die Indizes nicht 0 und 1. 110 00:04:47,660 --> 00:04:51,250 Die Indizes sind Kurs unquote Symbol und Zitat unquote Preis. 111 00:04:51,250 --> 00:04:55,990 Und die Werte der Indizes, bzw. ist FB für Facebook 112 00:04:55,990 --> 00:05:00,360 und 79,53 $, als ich das letzte überprüft ein Preise für diese. 113 00:05:00,360 --> 00:05:01,210 >> Was bedeutet das? 114 00:05:01,210 --> 00:05:04,136 Nun, es bedeutet, dass anstatt das Schreiben von Code 115 00:05:04,136 --> 00:05:09,612 wie dieser, wo ich etwas zu tun wie Dollar sign-- oder besser gesagt, in C- 116 00:05:09,612 --> 00:05:11,070 Ich würde nicht einmal einen Dollar-Zeichen. 117 00:05:11,070 --> 00:05:13,490 Ich möchte etwas zu tun wie Anführungszeichen und dann 118 00:05:13,490 --> 00:05:18,410 Ich würde Halterung i auf einige zu tun, beliebig numerisch indizierte Wert. 119 00:05:18,410 --> 00:05:21,430 Ab heute in PHP, wenn Sie will zu einem bestimmten Wert zu erhalten, 120 00:05:21,430 --> 00:05:24,742 wir Art haben mehr semantische Ausdruckskraft. 121 00:05:24,742 --> 00:05:27,450 Nur eine andere Art zu sagen, wir können rufen Sie einfach die Dinge, wie sie sind. 122 00:05:27,450 --> 00:05:29,800 >> Und wenn Sie erhalten möchten auf etwas symbol, 123 00:05:29,800 --> 00:05:32,180 jetzt haben Sie buchstäblich zitieren unquote Symbol 124 00:05:32,180 --> 00:05:34,910 in eckigen Klammern anstelle eines bloßen Nummer. 125 00:05:34,910 --> 00:05:36,450 Also ist es eine nette Annehmlichkeit. 126 00:05:36,450 --> 00:05:38,140 Und das ist eine Art ist es für jetzt. 127 00:05:38,140 --> 00:05:40,240 Es gibt Sträuße andere Funktionen in PHP. 128 00:05:40,240 --> 00:05:43,180 Und in der Tat kommt mit PHP die sprichwörtliche Küchenspüle. 129 00:05:43,180 --> 00:05:48,640 Dutzende, Hunderte von Funktionen bieten PHP-- so viele mehr als kam mit C. 130 00:05:48,640 --> 00:05:51,360 >> Und das ist nicht vorgesehen überwältigen, sondern zu helfen, 131 00:05:51,360 --> 00:05:53,900 Sie erkennen, dass wir nicht mehr haben, um Code zu schreiben 132 00:05:53,900 --> 00:05:55,590 das ist eine Art hier unten konzeptionell. 133 00:05:55,590 --> 00:05:58,465 Jetzt können wir einfach anfangen zu nutzen der viel mehr erweiterte Funktionen 134 00:05:58,465 --> 00:05:59,920 dass Sprachen wie PHP haben. 135 00:05:59,920 --> 00:06:02,630 So dass wir nicht zu befürchten bewegliche Sachen herum in Erinnerung. 136 00:06:02,630 --> 00:06:05,338 Wir haben nicht über malloc Sorgen und alle diese niedrigeren Niveau, 137 00:06:05,338 --> 00:06:09,390 leistungsstarke Details, dass Sie ringen mit, wenn sie nicht mit, pset5 kämpfen, 138 00:06:09,390 --> 00:06:13,380 aber Sie können, um zu beginnen bald für selbstverständlich halten. 139 00:06:13,380 --> 00:06:17,770 >> In der Tat, lassen Sie uns einen Super einfaches Programm in PHP, wie folgt. 140 00:06:17,770 --> 00:06:21,550 Ich werde den Kopf in CS50 gehen IDE hier, und was ich tun werde, 141 00:06:21,550 --> 00:06:29,370 ist eine neue Datei erstellen, dass ganz einfach wird sich namens hallo dot PHP werden. 142 00:06:29,370 --> 00:06:31,860 So anstelle von Punkt c, ist es gehen zu nennen dot PHP. 143 00:06:31,860 --> 00:06:34,260 Und dann in dieser Datei, Ich kann mit der Eingabe beginnen. 144 00:06:34,260 --> 00:06:36,960 Aber es stellt sich heraus, dass die eine Sache, ich muss wissen, 145 00:06:36,960 --> 00:06:41,470 ist, dass jeder PHP-Datei im Allgemeinen, muss mit einigen speziellen Syntax zu starten. 146 00:06:41,470 --> 00:06:44,570 Im Geiste gleich HTML, aber wieder, PHP ist eine Programmiersprache, nicht 147 00:06:44,570 --> 00:06:45,590 eine Auszeichnungssprache. 148 00:06:45,590 --> 00:06:48,700 >> So wird jede Datei, und es ist eine Art dumme suchen Ich gebe. 149 00:06:48,700 --> 00:06:50,480 Offene Halterung, Fragezeichen, PHP. 150 00:06:50,480 --> 00:06:53,060 Und das ist nur die Art zu sagen, der Sprache, 151 00:06:53,060 --> 00:06:58,400 hey, Computer kommt hier einige Code in einer Sprache namens PHP geschrieben. 152 00:06:58,400 --> 00:07:01,900 Und dann ganz am Ende der Datei, Sie tun Art von Art von der entgegengesetzten. 153 00:07:01,900 --> 00:07:04,860 Sie müssen nicht noch einmal schreiben PHP, die Sie gerade tun Fragezeichen, Winkel. 154 00:07:04,860 --> 00:07:08,500 Und dann alles, was Sie nach innen setzen dieser beiden Tags, so zu sprechen, 155 00:07:08,500 --> 00:07:11,490 sein wird, oder sein sollte, PHP-Code. 156 00:07:11,490 --> 00:07:13,180 >> Lassen Sie uns also etwas tun, super einfach. 157 00:07:13,180 --> 00:07:19,370 Ich werde weitermachen und tun Druck def, Hallo Welt, umgekehrten Schrägstrich n, zu speichern. 158 00:07:19,370 --> 00:07:27,310 Und jetzt auf meine Aufforderung, ich bin zu gehen tun, stellen hello-- nein, ich werde tun, 159 00:07:27,310 --> 00:07:28,726 dot Slash hallo. 160 00:07:28,726 --> 00:07:31,250 Nein, dot Schrägstrich, hm. 161 00:07:31,250 --> 00:07:32,990 So etwas ist anders. 162 00:07:32,990 --> 00:07:36,920 Und in der Tat ist dies ein wesentlicher Unterschied zwischen PHP und Sprachen wie C C 163 00:07:36,920 --> 00:07:38,730 war ein sogenannter kompilierten Sprache. 164 00:07:38,730 --> 00:07:40,929 Was bedeutete es für C erstellt werden? 165 00:07:40,929 --> 00:07:41,970 Was war die Implikation? 166 00:07:41,970 --> 00:07:42,898 Ja. 167 00:07:42,898 --> 00:07:45,220 >> ZIELGRUPPE: Schrieb er in Maschinencode so könnte es durch den Computer ausgeführt werden. 168 00:07:45,220 --> 00:07:46,011 >> Sprecher 1: Genau. 169 00:07:46,011 --> 00:07:49,075 Wir müssen zuerst konvertieren Sie sie in so genannte Maschinencode, Nullen und Einsen, 170 00:07:49,075 --> 00:07:51,950 bevor es tatsächlich ausführbar sein und durch den Computer verstanden wird. 171 00:07:51,950 --> 00:07:52,840 Mit dem Intel inside. 172 00:07:52,840 --> 00:07:54,530 Von der CPU innerhalb des Computers. 173 00:07:54,530 --> 00:07:58,170 PHP, dagegen ist, was heißt eine interpretierte Sprache, die 174 00:07:58,170 --> 00:08:02,230 bedeutet, dass Sie es nicht kompiliert in Nullen und Einsen, Maschinencode, 175 00:08:02,230 --> 00:08:04,360 Sie stattdessen lassen Sie es als Quellcode. 176 00:08:04,360 --> 00:08:08,130 Und Sie stattdessen geben sie als Eingangs zu einem Programm, ein Dolmetscher 177 00:08:08,130 --> 00:08:11,960 dass jemand anderes geschrieben Vor Jahren, die es versteht, 178 00:08:11,960 --> 00:08:14,310 Zeile für Zeile, Zeichen für Zeichen. 179 00:08:14,310 --> 00:08:16,120 Also mit anderen Worten Menschen da draußen, schrieb 180 00:08:16,120 --> 00:08:19,670 ein Programm, das aussehen wird auf den Code Zeile für Zeile, 181 00:08:19,670 --> 00:08:21,680 und herauszufinden, was der Computer tun soll, 182 00:08:21,680 --> 00:08:25,960 ohne Konvertierung direkt mit Nullen und Einsen. 183 00:08:25,960 --> 00:08:28,370 >> Also, wenn es sieht, eine for-Schleife, diese sogenannte Interpreter 184 00:08:28,370 --> 00:08:30,630 wird wie, in Ordnung, ich sollte sein, etwas zu tun, wieder und wieder und wieder. 185 00:08:30,630 --> 00:08:31,150 Was soll ich machen? 186 00:08:31,150 --> 00:08:32,159 Lassen Sie mich auf die nächste Zeile zu suchen. 187 00:08:32,159 --> 00:08:33,367 Lassen Sie mich auf die nächste Zeile zu suchen. 188 00:08:33,367 --> 00:08:35,350 Und es ist wirklich interpretiert sie Zeile für Zeile. 189 00:08:35,350 --> 00:08:37,220 Also, um es auszuführen, weiß ich nicht zu verwenden machen. 190 00:08:37,220 --> 00:08:39,409 Ich benutze keine Punktstrich in diesem Fall. 191 00:08:39,409 --> 00:08:43,530 Ich stattdessen tun PHP, das ist, der Name eines Programms, a.k.a. 192 00:08:43,530 --> 00:08:46,562 Ein Dolmetscher, das ist, in CS50 IDE vorinstalliert, 193 00:08:46,562 --> 00:08:48,770 und jetzt muss ich einen Pass Befehlszeilenargument, das 194 00:08:48,770 --> 00:08:52,290 ist einfach der Name der Datei, die ich möchte zu interpretieren. 195 00:08:52,290 --> 00:08:54,740 Oder mehr beiläufig, dass ich zu laufen. 196 00:08:54,740 --> 00:08:57,000 Und wenn ich drücken Sie die Eingabetaste, da haben wir es. 197 00:08:57,000 --> 00:08:57,825 Hallo Welt. 198 00:08:57,825 --> 00:08:59,950 Jetzt stellt sich heraus, dass ich gebrauchte Druck def absichtlich 199 00:08:59,950 --> 00:09:01,600 um uns von C zu überbrücken, um PHP. 200 00:09:01,600 --> 00:09:05,150 Die meisten PHP-Programmierer, wie Sie sehen werden, nicht einmal die Mühe mit Druck def. 201 00:09:05,150 --> 00:09:08,290 Sie eine Funktion namens verwenden nur Druck, die C nicht hatten. 202 00:09:08,290 --> 00:09:11,390 Und so, wenn ich nun erneut ausführen, es tatsächlich verhält funktional gleich. 203 00:09:11,390 --> 00:09:13,730 Ich kann nicht mit dem Prozent s und prozentuale i usw. 204 00:09:13,730 --> 00:09:16,250 aber es gibt auch andere Möglichkeiten in PHP, das zu tun. 205 00:09:16,250 --> 00:09:18,100 Aber dies ist nur für sagen, dass syntaktisch, 206 00:09:18,100 --> 00:09:21,850 ausgenommen einige seltsame Dinge Spitze, und einige seltsame Zeichen nach unten 207 00:09:21,850 --> 00:09:25,960 an der Unterseite, die Konzepte der jetzt Programmierung in dieser anderen Sprache, 208 00:09:25,960 --> 00:09:27,860 gehen, um exakt die gleiche sein. 209 00:09:27,860 --> 00:09:30,120 >> In der Tat, machen wir ein anderes Beispiel. 210 00:09:30,120 --> 00:09:32,520 Also werde ich voran gehen und schließen Sie die Datei. 211 00:09:32,520 --> 00:09:37,740 Lassen Sie mich noch einen erstellen, Ich werde Bedingungen 1 dot PHP nennen. 212 00:09:37,740 --> 00:09:40,770 Also kein Null, weil das, was ich tat, war ich sah wieder vor ein paar Wochen, 213 00:09:40,770 --> 00:09:43,490 wir eine Datei namens hatten Bedingungen 1 Punkt C. Und was 214 00:09:43,490 --> 00:09:47,590 Ich tat, war es in meinem umgewandelt Kopf, und hier auf dem Papier, 215 00:09:47,590 --> 00:09:51,290 und bald auf den Verlauf der Website, Zeile für Zeile in PHP. 216 00:09:51,290 --> 00:09:55,520 >> So in der C-Version, haben wir etwas, wie String s wird erhalten String. 217 00:09:55,520 --> 00:09:58,200 Also ist es ein bisschen anders zu der in PHP zu tun. 218 00:09:58,200 --> 00:10:01,390 Stattdessen werde ich einfach zu tun, oder besser gesagt, ich 219 00:10:01,390 --> 00:10:05,870 getan haben könnte int n wird erhalten int, in diesem Beispiel früher. 220 00:10:05,870 --> 00:10:12,600 Anstatt also, dass, ich werde tun, n wird die Leseleitung, würde Ich mag eine ganze Zahl, 221 00:10:12,600 --> 00:10:13,670 Bitte. 222 00:10:13,670 --> 00:10:15,110 Also das ist nur meine Aufforderung. 223 00:10:15,110 --> 00:10:17,260 Und so stellt sich heraus, und Ich würde nur wissen 224 00:10:17,260 --> 00:10:20,480 aus dem Lesen oder gesehen, die Funktion vor, lesen Linien-Funktion in PHP 225 00:10:20,480 --> 00:10:23,810 ein Argument, das eine Eingabeaufforderung für den menschlichen und dessen Zweck im Leben 226 00:10:23,810 --> 00:10:26,220 ist, eine Textzeile gelesen dass er oder sie in Typen. 227 00:10:26,220 --> 00:10:29,160 Und dann speichert er, dass Text in der Variablen n. 228 00:10:29,160 --> 00:10:32,200 >> Und jetzt will ich könnte etwas tun, wie ich schon vor Wochen getan hat, in wie Woche 229 00:10:32,200 --> 00:10:33,290 einer der Klasse. 230 00:10:33,290 --> 00:10:36,600 Wenn n größer als Null ist, dann werde ich 231 00:10:36,600 --> 00:10:42,930 , dass die Syntax wir gerade gesehen haben zu leihen, Druck def, nahm Sie eine positive Zahl, 232 00:10:42,930 --> 00:10:44,360 Backslash n. 233 00:10:44,360 --> 00:10:49,990 Else, wenn n gleich Null ist, bin ich gehen voran gehen und sagen, Druck def, 234 00:10:49,990 --> 00:10:54,090 Sie hob Null Backslash n. 235 00:10:54,090 --> 00:10:56,830 Else, hier sollte der Fall natürlich, Druck def, 236 00:10:56,830 --> 00:10:58,620 Sie nahm eine negative Zahl. 237 00:10:58,620 --> 00:11:00,970 >> Und wir können mit Sicherheit zu implementieren die Logik dieses Ding 238 00:11:00,970 --> 00:11:03,390 in einer Reihe von verschiedenen Wege, aber der Punkt ist hier 239 00:11:03,390 --> 00:11:07,210 ist, dass syntaktisch, kaum etwas ist neu. 240 00:11:07,210 --> 00:11:09,830 Es ist nur die Dollarzeichen und eine neue Funktion und die Leseleitung. 241 00:11:09,830 --> 00:11:12,090 Aber im Grunde, was es Neues jetzt bin ich der Interpretation dieser. 242 00:11:12,090 --> 00:11:13,910 Ich bin übergeben Sie ihr als Eingangs zu einem anderen Programm. 243 00:11:13,910 --> 00:11:16,620 Also, wenn ich dies ausführen, wenn Ich habe keine Fehler machen, 244 00:11:16,620 --> 00:11:20,140 Ich werde PHP ausgeführt wird, der Bedingungen 1 dot PHP, Geben, 245 00:11:20,140 --> 00:11:23,440 Ich werde in der Zahl 50 eingeben, und lassen Sie uns jetzt funktioniert es übernehmen. 246 00:11:23,440 --> 00:11:25,940 Weil die Logik ist gleichen Sachen wie eine Woche. 247 00:11:25,940 --> 00:11:28,020 >> Na gut, so dass es ziemlich berauschend, nicht wahr? 248 00:11:28,020 --> 00:11:30,240 Wir konnten dies in jeder tun Anzahl der Sprachen. 249 00:11:30,240 --> 00:11:33,200 Lass uns etwas viel mächtiger. 250 00:11:33,200 --> 00:11:35,610 Wir beenden Problem stellte fünf. 251 00:11:35,610 --> 00:11:37,370 Also, ich werde weitermachen und tun dies. 252 00:11:37,370 --> 00:11:42,920 Ich gehe, um eine Datei zu erstellen genannt Wörterbuch dot PHP, 253 00:11:42,920 --> 00:11:45,424 und geneigt ist, wie Sie vielleicht zu klettern, sich viele Notizen, 254 00:11:45,424 --> 00:11:47,340 werden die Noten nur helfen Sie, wenn Sie zugelassen sind 255 00:11:47,340 --> 00:11:48,923 zu implementieren Probleme stellte fünf in PHP. 256 00:11:48,923 --> 00:11:52,706 Aber wir werden sehen, wie schnell wir jetzt kann das gleiche Problem zu implementieren. 257 00:11:52,706 --> 00:11:56,830 >> So im Wörterbuch dot PHP, ich werde anzunehmen, dass es bereits 258 00:11:56,830 --> 00:11:58,514 eine Datei in der Welt genannt Speller. 259 00:11:58,514 --> 00:12:01,430 Und in der Tat, ich habe dies im Voraus, und wir werden nicht durch diese Linie zu gehen 260 00:12:01,430 --> 00:12:03,596 durch die Linie, aber wenn Sie neugierig später und wirklich wollen, 261 00:12:03,596 --> 00:12:06,250 in den Sinn um die Umwicklung Unterschiede zwischen c und PHP, 262 00:12:06,250 --> 00:12:09,030 buchstäblich vergleichen Sie diese Datei, Speller aus heutiger Quellcode 263 00:12:09,030 --> 00:12:11,190 dass wir später veröffentlichen heute gegen p-Set 264 00:12:11,190 --> 00:12:15,309 fünf Speller Punkt c, die wir Ihnen, und es ist fast die gleiche Zeile für Zeile. 265 00:12:15,309 --> 00:12:16,600 Es gibt einige weitere Dollar-Zeichen. 266 00:12:16,600 --> 00:12:18,330 Ein paar Funktionen ein bisschen anders. 267 00:12:18,330 --> 00:12:20,038 Aber es ist ein schöner Weg, der Art sehen, wie 268 00:12:20,038 --> 00:12:22,740 Sie eine andere Sprache zu übersetzen. 269 00:12:22,740 --> 00:12:24,812 Und es ist fast identisch Zeile für Zeile. 270 00:12:24,812 --> 00:12:27,770 Aber ich gehe davon aus, dass die vorhanden ist, und was ich hier zu tun 271 00:12:27,770 --> 00:12:31,310 ist zu versuchen, blow your dagegen durch Neuimplementierung 272 00:12:31,310 --> 00:12:36,210 die Gesamtheit der Probleme stellte fünf Wege schneller, als man habe bisher tun. 273 00:12:36,210 --> 00:12:39,330 So zum Beispiel, werde ich zuerst deklarieren Sie eine globale Variable namens Größe, 274 00:12:39,330 --> 00:12:40,444 und stellen Sie es gleich Null ist. 275 00:12:40,444 --> 00:12:41,610 Nun, das ist nicht viel Einsparungen. 276 00:12:41,610 --> 00:12:44,170 Quoten sind Sie implementiert Größe so ziemlich das gleiche, 277 00:12:44,170 --> 00:12:48,440 oder hint hint, wird heute Abend oder morgen, nur mit einer globalen Variablen genannt 278 00:12:48,440 --> 00:12:49,900 Größe, und wenn er gleich Null. 279 00:12:49,900 --> 00:12:52,660 Das ist nicht ein besonders erstaunliche Spoiler. 280 00:12:52,660 --> 00:12:57,180 >> Also, was waren Ihre Datenstrukturen Wahl, die von Ihnen, in getaucht haben 281 00:12:57,180 --> 00:13:02,170 und lesen Sie die Spezifikation, welche Datenstrukturen haben die meisten von Ihnen wurden mit? 282 00:13:02,170 --> 00:13:06,840 Eine Hash-Tabelle oder versuchen Sie, vielleicht Einige Varianten davon. 283 00:13:06,840 --> 00:13:10,490 So Implementierung einer Hash-Tabelle zumindest ist eine Art viele Zeilen Code, 284 00:13:10,490 --> 00:13:10,990 Recht? 285 00:13:10,990 --> 00:13:13,700 Und nicht alle von ihnen könnte Funktions an diesem Punkt in der Woche, 286 00:13:13,700 --> 00:13:14,366 aber das ist in Ordnung. 287 00:13:14,366 --> 00:13:19,300 Da in PHP, wenn ich wollen eine Hash-Tabelle, fertig. 288 00:13:19,300 --> 00:13:20,260 Recht? 289 00:13:20,260 --> 00:13:22,610 So dass variable, dass ich nur offensichtlich deklariert ist 290 00:13:22,610 --> 00:13:26,180 genannt Dollarzeichen-Tabelle, pro die Einführung vor. 291 00:13:26,180 --> 00:13:28,902 >> Aber ich habe wirklich nur wollen, um das Ende des Tages, ein Array. 292 00:13:28,902 --> 00:13:31,610 Aber nicht ein numerisch indiziert Array, weil das ist, wie zwei Woche 293 00:13:31,610 --> 00:13:33,440 stuff, wenn wir über Arrays gesprochen. 294 00:13:33,440 --> 00:13:34,850 Ich will eine Hash-Tabelle. 295 00:13:34,850 --> 00:13:38,070 Aber eine Hash-Tabelle ist wirklich nur eine konkrete Art zu sagen, 296 00:13:38,070 --> 00:13:40,190 Sie wollen ein assoziatives Array. 297 00:13:40,190 --> 00:13:43,270 Sie wollen in der Lage zu sein, Associate Schlüssel mit Werten. 298 00:13:43,270 --> 00:13:44,200 Schlüssel mit Werten. 299 00:13:44,200 --> 00:13:45,640 Was ist ein Wörterbuch, wirklich? 300 00:13:45,640 --> 00:13:47,080 Nun, es ist eine ganze Reihe von Tasten. 301 00:13:47,080 --> 00:13:50,320 Wörter wie Apfel, Birne und Banane, und alle diese englischen Wörter 302 00:13:50,320 --> 00:13:51,490 dass wir Hand Sie. 303 00:13:51,490 --> 00:13:54,820 >> Und die Werte, die Sie effektiv sind Einfügen in Ihr Wörterbuch 304 00:13:54,820 --> 00:13:57,790 sind entweder wahr, oder das Fehlen false. 305 00:13:57,790 --> 00:14:00,540 Mit anderen Worten: Sie einfügen eine ganze Reihe von Schlüssel-Wert-Paare, 306 00:14:00,540 --> 00:14:03,720 Apfel, true, Birne, wahre, Banane, wahr. 307 00:14:03,720 --> 00:14:07,446 So dass, wenn Sie abrufen oder suchen bis die Daten in Ihrem Hash-Tabelle 308 00:14:07,446 --> 00:14:10,070 mit Überprüfungsfunktion, du bist entweder immer wieder eine Antwort, 309 00:14:10,070 --> 00:14:13,260 ja, ich fand es in meinem Komplex Hash-Tabelle, oder nein, es ist nicht da, 310 00:14:13,260 --> 00:14:14,540 so dass Sie false zurück. 311 00:14:14,540 --> 00:14:19,440 >> So, das zu tun, ist alles was ich brauche die Daten Struktur, wie ich vorgeschlagen, vor. 312 00:14:19,440 --> 00:14:22,050 Ich brauche nur zu können um Wörter zu assoziieren 313 00:14:22,050 --> 00:14:25,570 wie, Zitat Zitat Ende, symbol, mit einem Wert wie, wahr. 314 00:14:25,570 --> 00:14:27,090 Es gibt also meine Hash-Tabelle. 315 00:14:27,090 --> 00:14:28,180 Lassen Sie tatsächlich verwenden. 316 00:14:28,180 --> 00:14:30,310 Es gibt also ein paar Funktionen Ich brauche, um zu implementieren. 317 00:14:30,310 --> 00:14:33,300 Ich werde weitermachen und beißen Aus einer Funktion namens Größe. 318 00:14:33,300 --> 00:14:34,390 Es hat keine Argumente. 319 00:14:34,390 --> 00:14:36,660 Ich habe nicht mit Mühe das Wort, Leere, in PHP. 320 00:14:36,660 --> 00:14:38,770 Ich werde einfach Größe zurückzukehren. 321 00:14:38,770 --> 00:14:41,287 >> Und nebenbei, hat PHP Diese minorly lästige Detail, 322 00:14:41,287 --> 00:14:44,620 wo, wenn etwas ist global, müssen Sie sagen, die Funktion, in der Sie verwenden 323 00:14:44,620 --> 00:14:46,220 es, hey, das ist eine globale Variable. 324 00:14:46,220 --> 00:14:49,330 Also, kleinere Dummheit, aber Sie muss es dennoch zu tun. 325 00:14:49,330 --> 00:14:50,920 >> Und was ist mit Last? 326 00:14:50,920 --> 00:14:52,990 Ich werde zu implementieren eine Funktion namens Last 327 00:14:52,990 --> 00:14:56,790 das dauert im Namen von einem Wörterbuch, genau wie in Problem stellte fünf. 328 00:14:56,790 --> 00:14:59,554 Und bevor ich gehen, feststellen, dass ich nicht 329 00:14:59,554 --> 00:15:00,970 wurde die Eingabe ganz die gleichen Dinge. 330 00:15:00,970 --> 00:15:06,060 Was ist offensichtlich anders in PHP zu wie Sie eine Funktion im Vergleich zu C zu deklarieren? 331 00:15:06,060 --> 00:15:06,616 Ja. 332 00:15:06,616 --> 00:15:07,490 ZIELGRUPPE: [unverständlich] 333 00:15:07,490 --> 00:15:08,573 Sprecher 1: Kein Rückgabetyp. 334 00:15:08,573 --> 00:15:12,350 Und in der Tat, das ist der Fall, PHP soweit es schwach typisierte, 335 00:15:12,350 --> 00:15:14,190 ist auch in diesem Sinne ein wenig schlampig. 336 00:15:14,190 --> 00:15:17,680 Sie wissen nicht, wie der Programmierer angeben was dieser Funktion gibt. 337 00:15:17,680 --> 00:15:20,490 Sie müssten eigentlich aussehen auf den Code, um das herauszufinden. 338 00:15:20,490 --> 00:15:22,670 Oder lesen Sie die Kommentare oder der Dokumentation. 339 00:15:22,670 --> 00:15:24,870 So Vor-und Nachteile von diese Art von Entscheidungen. 340 00:15:24,870 --> 00:15:26,750 Aber ich muss sagen, das Schlüsselwort, Funktion. 341 00:15:26,750 --> 00:15:28,360 Und wenn wir erfahren, JavaScript in ein paar Wochen 342 00:15:28,360 --> 00:15:31,026 wir werden das Gleiche zu sehen noch einmal, aber es ist die gleiche Idee. 343 00:15:31,026 --> 00:15:34,220 Der Name der Funktion, ihr Argument oder Argumente, oder deren Fehlen, und jetzt 344 00:15:34,220 --> 00:15:35,630 Hier ist die Implementierung. 345 00:15:35,630 --> 00:15:38,860 >> Also werde ich ein paar Ecken gerade geschnitten dramatische nur für einen Moment zu sein. 346 00:15:38,860 --> 00:15:40,485 Aber ich werde weitermachen und sagen, dass dies. 347 00:15:40,485 --> 00:15:44,890 Dies ist, wie ich verarbeiten kann eine Datei in ein Array. 348 00:15:44,890 --> 00:15:47,580 Es gibt eine Funktion in PHP genannte Datei. 349 00:15:47,580 --> 00:15:49,300 Sie geben es der Name einer Datei. 350 00:15:49,300 --> 00:15:53,950 Es gibt dir wieder ein Array, innen von denen jede Zeile aus der Datei. 351 00:15:53,950 --> 00:15:56,480 Von null, eins, auf bis n minus 1 Linien. 352 00:15:56,480 --> 00:15:57,210 Das ist es, nicht wahr? 353 00:15:57,210 --> 00:15:57,990 Es gibt keinen f Lese. 354 00:15:57,990 --> 00:15:58,826 Es gibt keinen f get s. 355 00:15:58,826 --> 00:15:59,700 Es gibt keinen Prozent s. 356 00:15:59,700 --> 00:16:00,420 Es gibt keine Kopfschmerzen. 357 00:16:00,420 --> 00:16:01,220 Es gibt keinen feof. 358 00:16:01,220 --> 00:16:03,950 All das Zeug, mit dem Sie haben vielleicht gerungen, 359 00:16:03,950 --> 00:16:06,550 mit S. vier und fünf, geht weg. 360 00:16:06,550 --> 00:16:09,450 >> Also habe ich einfach zu lesen diese Zeilen in die Datei, und dann weißt du was? 361 00:16:09,450 --> 00:16:15,510 Wenn ich über diese Worte wiederholen, Was ich tun kann, für jeden Linien als Linie. 362 00:16:15,510 --> 00:16:19,992 Denken Sie daran, dass dies ein bisschen eine clevere Art der Iteration über ein Array-Index 363 00:16:19,992 --> 00:16:25,090 durch den Index, und bei jeder Iteration aufruf die aktuelle Zeile, Dollarzeichen Linie. 364 00:16:25,090 --> 00:16:31,560 Und genau hier, ich werde gehen und sagen, Tisch, Halterung, Linie, bekommt wahr. 365 00:16:31,560 --> 00:16:35,880 >> In anderen Worten, ist dies, wie I einfügen in meine Hash-Tabelle in PHP. 366 00:16:35,880 --> 00:16:38,740 Ich sage Dollarzeichen-Tabelle, die ist mein assoziatives Array, das war 367 00:16:38,740 --> 00:16:40,690 leer pro die Codezeile oben. 368 00:16:40,690 --> 00:16:42,790 Ich habe dann index hinein nicht, unter Verwendung einer Anzahl, 369 00:16:42,790 --> 00:16:45,300 sondern buchstäblich mit dem Schlüsselwort, das mich interessiert. 370 00:16:45,300 --> 00:16:47,730 Vielleicht ist es Apfel- oder Birnen oder Banane oder was auch immer, 371 00:16:47,730 --> 00:16:51,645 sondern speziell ich Indexierung in sie, wie ich vorgeschlagen früher. 372 00:16:51,645 --> 00:16:53,770 Ich den Namen nehmen Sie meine assoziatives Array, und dann habe ich 373 00:16:53,770 --> 00:16:56,450 benutzen Zitat unquote in der eckigen Klammern mit einer Schnur, 374 00:16:56,450 --> 00:16:58,490 anstelle der eigentlichen Nummer. 375 00:16:58,490 --> 00:17:00,250 >> Und so, dass es ist. 376 00:17:00,250 --> 00:17:01,720 Die Ladefunktion ist getan. 377 00:17:01,720 --> 00:17:05,119 Sobald diese Schleife wiederholt, ich habe setzen alles in der Hash-Tabelle. 378 00:17:05,119 --> 00:17:07,810 Jetzt Klein Haftungsausschluss, es gibt eine paar Dinge, die ich tun müssen, um zu beheben. 379 00:17:07,810 --> 00:17:10,030 Und die Version Ich werde online zu stellen werden alle Nuancen haben, 380 00:17:10,030 --> 00:17:12,670 aber es ist meist nur gehen, um etwas zu sein Fehlerprüfung und einige kleinere Verbesserungen. 381 00:17:12,670 --> 00:17:14,044 Aber das ist in der Tat der Kern von ihm. 382 00:17:14,044 --> 00:17:16,750 Wenn ich jetzt zu implementieren die Funktion aufgerufen 383 00:17:16,750 --> 00:17:19,869 prüfen, was eine erwartet Wort als Argument, 384 00:17:19,869 --> 00:17:22,099 wie könnte ich fahren bei tuend jene? 385 00:17:22,099 --> 00:17:30,020 Nun, ich bin einfach nur sagen, wenn Innenseite meiner Tisch, an dem Ort Wort, 386 00:17:30,020 --> 00:17:30,652 wenn gesetzt. 387 00:17:30,652 --> 00:17:32,360 Also, wenn es ist-- wirklich, weißt du was? 388 00:17:32,360 --> 00:17:34,830 Ich werde es in zu tun ein bisschen wie Pseudocode. 389 00:17:34,830 --> 00:17:36,020 Aber die Idee, die gleiche ist. 390 00:17:36,020 --> 00:17:41,640 Wenn das wahr ist gleich, return true. 391 00:17:41,640 --> 00:17:43,890 Gut. 392 00:17:43,890 --> 00:17:46,851 Else-- Sie Art sehen, wo dies going-- false zurückgegeben. 393 00:17:46,851 --> 00:17:47,350 Fertig. 394 00:17:47,350 --> 00:17:49,640 Check durchgeführt wird. 395 00:17:49,640 --> 00:17:50,940 >> Pretty nice, nicht wahr? 396 00:17:50,940 --> 00:17:52,560 Und so was ist das eigentlich hinaus? 397 00:17:52,560 --> 00:17:53,680 Und auch, schneide ich ein paar Ecken. 398 00:17:53,680 --> 00:17:56,020 Sehen Sie in der Online-Version für alle Nuancen. 399 00:17:56,020 --> 00:17:57,103 Aber das ist der Kern von ihm. 400 00:17:57,103 --> 00:17:59,080 Index in Ihre assoziatives Array, auch bekannt als 401 00:17:59,080 --> 00:18:02,910 Hash-Tabelle finden Sie, wenn es ein Wert da, wenn es auf true gesetzt, und wenn ja, 402 00:18:02,910 --> 00:18:03,930 return true. 403 00:18:03,930 --> 00:18:05,819 Deshalb haben wir uns nach unten beschnitten die gesamte Komplexität. 404 00:18:05,819 --> 00:18:07,110 So Art von Geist weht, nicht wahr? 405 00:18:07,110 --> 00:18:09,680 Ich werde nicht die Mühe Finishing mit Entladen, weil in fact-- oh, weißt du was? 406 00:18:09,680 --> 00:18:11,620 Ja, wir beenden sie mit Entladen. 407 00:18:11,620 --> 00:18:18,940 >> Entladen in einer Hash-Tabelle aussehen könnte wie Funktion Entladen, zurückzukehren. 408 00:18:18,940 --> 00:18:19,930 OK also ist das Entladen. 409 00:18:19,930 --> 00:18:21,350 Da gibt es nichts, zu entladen, oder? 410 00:18:21,350 --> 00:18:22,170 Es gibt keinen malloc. 411 00:18:22,170 --> 00:18:24,280 Ich habe nicht explizit fragen, die Betriebssystem für alles. 412 00:18:24,280 --> 00:18:25,571 Ich habe gerade angefangen mit Variablen. 413 00:18:25,571 --> 00:18:30,510 Und so ist auch dies eine Manifestation Merkmale der höheren Sprachen. 414 00:18:30,510 --> 00:18:32,940 Also noch einmal, die meisten dieser Frist wir haben hier zu tun unten 415 00:18:32,940 --> 00:18:34,280 C. mit Super-Low-Pegel. 416 00:18:34,280 --> 00:18:35,980 Sie können den Arbeitsspeicher des Computers zu sehen. 417 00:18:35,980 --> 00:18:38,440 Sie können alles, was Sie berühren, will im RAM des Computers, 418 00:18:38,440 --> 00:18:39,440 zum Besseren oder zum Schlechteren. 419 00:18:39,440 --> 00:18:41,760 >> Hier oben, wir gehen zu geben, diese Macht. 420 00:18:41,760 --> 00:18:44,730 Aber mein Gott, schauen Sie, wie viel weniger Code schrieb ich. 421 00:18:44,730 --> 00:18:47,660 In der Tat, wenn ich nicht sprechen und reden über meine Schreibarbeiten, 422 00:18:47,660 --> 00:18:50,190 wir würden mit getan worden dieses Beispiel vor fünf Minuten. 423 00:18:50,190 --> 00:18:52,150 Also, was ist der Preis dafür bezahlt? 424 00:18:52,150 --> 00:18:54,100 Nun lassen Sie uns einen Blick. 425 00:18:54,100 --> 00:18:55,340 Lass uns einen Blick darauf werfen. 426 00:18:55,340 --> 00:18:59,340 Ich werde weitermachen und laufen CS50. 427 00:18:59,340 --> 00:19:02,160 Lassen Sie mich zunächst in zu gehen heutigen Beispiele, bei denen 428 00:19:02,160 --> 00:19:03,970 Ich habe die Texte Verzeichnis wie zuvor. 429 00:19:03,970 --> 00:19:08,520 Ich werde die Lösung Lauf, sie mit Problem stellte fünf genannt kommt 430 00:19:08,520 --> 00:19:11,190 Speller, der in CS50 Konto ist. 431 00:19:11,190 --> 00:19:14,040 >> Und ich werde es auf etwas laufen große wie der King James Bibel, 432 00:19:14,040 --> 00:19:16,547 einfach so, dass wir wirklich die Mitarbeiter-Lösungen auf den Prüfstand. 433 00:19:16,547 --> 00:19:19,130 Jetzt manchmal das Internet ein wenig langsamer, ein wenig schneller, 434 00:19:19,130 --> 00:19:20,338 könnte eine Weile dauern, um zu blättern. 435 00:19:20,338 --> 00:19:23,730 Aber es dauerte insgesamt 0,56 Sekunden Rechtschreibung und die King James 436 00:19:23,730 --> 00:19:25,150 Bibel mit dem Personal-Lösung. 437 00:19:25,150 --> 00:19:25,620 So ziemlich gut. 438 00:19:25,620 --> 00:19:27,786 Yours könnte viel langsamer sein, und das ist völlig in Ordnung. 439 00:19:27,786 --> 00:19:30,090 Aber es ist richtig hier. 440 00:19:30,090 --> 00:19:32,440 Also das ist das Personal-Lösung. 441 00:19:32,440 --> 00:19:34,785 Wenn ich in und bereinigen die PHP-Version. 442 00:19:34,785 --> 00:19:36,990 Und ich werde ein wenig zu tun wie Backshow Sache. 443 00:19:36,990 --> 00:19:39,720 Wir werden den Code schrieb ich nehmen früher, so ist es vollkommen richtig. 444 00:19:39,720 --> 00:19:42,678 Da der Code, den ich schrieb, ist nicht um vollkommen richtig gerade jetzt. 445 00:19:42,678 --> 00:19:47,310 Aber wenn ich die PHP-Version, was muss ich aufgeben, heute? 446 00:19:47,310 --> 00:19:49,980 Dauerte fünf Minuten, um Umsetzung S. fünf, behaupte ich. 447 00:19:49,980 --> 00:19:51,770 Zu welchem ​​Preis habe ich bezahlt? 448 00:19:51,770 --> 00:19:52,270 Ja. 449 00:19:52,270 --> 00:19:52,937 >> ZIELGRUPPE: Geschwindigkeit. 450 00:19:52,937 --> 00:19:53,645 Sprecher 1: Geschwindigkeit. 451 00:19:53,645 --> 00:19:54,380 Was meinst du? 452 00:19:54,380 --> 00:19:55,230 >> Publikum: Es wird länger dauern. 453 00:19:55,230 --> 00:19:55,660 >> Sprecher 1: In Ordnung. 454 00:19:55,660 --> 00:19:56,160 Mal sehen. 455 00:19:56,160 --> 00:19:59,590 Es wird länger dauern, nicht zu schreiben, aber, um sie auszuführen. 456 00:19:59,590 --> 00:20:00,090 Ja. 457 00:20:00,090 --> 00:20:00,960 Also lassen Sie uns versuchen, diese. 458 00:20:00,960 --> 00:20:05,720 So, hier werde ich voran gehen und zu tun PHP von Speller, und weil die Datei 459 00:20:05,720 --> 00:20:06,360 genannt Speller. 460 00:20:06,360 --> 00:20:07,580 Also ich bin nicht läuft die Wörterbuch, Rückruf, 461 00:20:07,580 --> 00:20:09,204 Ich bin mit dem Programm namens Speller. 462 00:20:09,204 --> 00:20:12,450 Ich werde in der gleichen geben Datei, King James die fünfte. 463 00:20:12,450 --> 00:20:14,377 Es fliegen. 464 00:20:14,377 --> 00:20:17,210 Dies könnte nur Internet-Geschwindigkeit sein, also nicht zu viel in diese lesen. 465 00:20:17,210 --> 00:20:21,680 Aber es fühlt sich mehr sicher. 466 00:20:21,680 --> 00:20:23,280 1,26 Sekunden. 467 00:20:23,280 --> 00:20:25,150 >> Nun, das ist immer noch ziemlich verdammt schnell, nicht wahr? 468 00:20:25,150 --> 00:20:28,140 Und der einzige Grund dafür, dass sich angefühlt mehr wie drei oder vier, oder fünf 469 00:20:28,140 --> 00:20:30,515 Sekunden, das ist nur, weil Das Internet wurde als langsam. 470 00:20:30,515 --> 00:20:33,980 Der Computer verbrachte Zeit betrug 1,26 Sekunden, im Vergleich Ich denke, 0.56. 471 00:20:33,980 --> 00:20:35,880 Also mehr als doppelt so langsam. 472 00:20:35,880 --> 00:20:39,170 Nun, das ist immer noch verdammt schnell, aber es ist eine Manifestation 473 00:20:39,170 --> 00:20:40,860 der in der Tat, dass genaue Preis. 474 00:20:40,860 --> 00:20:43,460 >> Weil wir der Interpretation in den Code Zeile für Zeile, 475 00:20:43,460 --> 00:20:46,740 und das Programm PHP wird das Lesen meiner Code oben nach unten, von links nach rechts, 476 00:20:46,740 --> 00:20:47,940 es muss mehr Denken zu tun. 477 00:20:47,940 --> 00:20:50,430 Es muss Art zu konvertieren es im Inneren von sich selbst 478 00:20:50,430 --> 00:20:53,464 zu dem entsprechenden Maschinen Code im laufenden Betrieb, sozusagen 479 00:20:53,464 --> 00:20:55,380 auch wenn die Mechanik sind ein bisschen anders. 480 00:20:55,380 --> 00:20:59,430 Statt nur der Zuführung zum Intel CPU die rohen Nullen und Einsen 481 00:20:59,430 --> 00:21:00,930 dass es versteht, nativ. 482 00:21:00,930 --> 00:21:04,110 >> So absolut, die Hände nach unten, haben wir ein Preis bezahlt. 483 00:21:04,110 --> 00:21:09,120 Und Code in einer Sprache geschrieben wie PHP neigt dazu, langsamer. 484 00:21:09,120 --> 00:21:10,050 Aber mein Gott. 485 00:21:10,050 --> 00:21:12,740 So, jetzt, wenn ich meine Rechtschreibprüfung Datei, verbringe ich eine extra 0,7 486 00:21:12,740 --> 00:21:17,280 oder so Sekunden vs 20 Stunden umsetzen ein schnellerer Rechtschreibprüfung, nicht wahr? 487 00:21:17,280 --> 00:21:18,397 Es ist eine Art Kompromiss. 488 00:21:18,397 --> 00:21:20,980 Und wenn Sie gerade erst anfangen p stellte fünf, vielleicht nicht mehr als 20 Stunden betragen. 489 00:21:20,980 --> 00:21:22,188 Könnte sein, viel weniger als das. 490 00:21:22,188 --> 00:21:23,600 Aber es ist ein Trade-off, für echt. 491 00:21:23,600 --> 00:21:27,820 Und wenn Sie mit Code arbeiten an wirklich großen Datensätze, oder auch ältere Hardware, 492 00:21:27,820 --> 00:21:32,650 diese Art von Unterschieden kann sicherlich summieren. 493 00:21:32,650 --> 00:21:34,880 >> Haben Sie Fragen bisher? 494 00:21:34,880 --> 00:21:35,617 Ja. 495 00:21:35,617 --> 00:21:36,492 >> ZIELGRUPPE: [unverständlich] 496 00:21:36,492 --> 00:21:38,187 497 00:21:38,187 --> 00:21:39,978 Sprecher 1: Sorry, kann Sie sagen, dass noch einmal? 498 00:21:39,978 --> 00:21:40,853 ZIELGRUPPE: [unverständlich] 499 00:21:40,853 --> 00:21:43,326 500 00:21:43,326 --> 00:21:44,700 Sprecher 1: Du gibst Zeit. 501 00:21:44,700 --> 00:21:45,283 Nun, so yeah. 502 00:21:45,283 --> 00:21:47,322 Sparen Sie Zeit, indem nicht mit, um es zu kompilieren, 503 00:21:47,322 --> 00:21:48,530 wenn das, was Sie fragen. 504 00:21:48,530 --> 00:21:50,710 Und in der Tat, in CS50, die meisten Programme, 505 00:21:50,710 --> 00:21:53,668 auch wenn sie eine Weile dauern, zu schreiben, sie sind relativ kurz. 506 00:21:53,668 --> 00:21:56,860 Einige Dutzend, einige hundert Zeilen Code, und so sind sie zu kompilieren ziemlich schnell. 507 00:21:56,860 --> 00:21:58,470 Aber wenn Sie beginnen Schreiben von größeren Programmen, 508 00:21:58,470 --> 00:22:01,511 wie wenn Sie Microsoft bist, oder du bist Google und das Schreiben wirklich große Programme 509 00:22:01,511 --> 00:22:05,360 in C oder C ++, oder ähnlich zusammen Sprachen, könnten viele Sekunden dauern, 510 00:22:05,360 --> 00:22:08,577 oder sogar Minuten oder länger, um Kompilieren Millionen von Codezeilen. 511 00:22:08,577 --> 00:22:10,660 Und es gibt auch, dass Differenz wird zu addieren. 512 00:22:10,660 --> 00:22:12,840 >> Und in der Tat, wenn wir Übergangs heute, am gleichen Tag 513 00:22:12,840 --> 00:22:15,910 heute, um Web-Programmierung Verwendung von PHP, du bist 514 00:22:15,910 --> 00:22:18,460 gehen, um es einfach so viel zu finden mehr Spaß, Code zu schreiben 515 00:22:18,460 --> 00:22:21,501 wenn Sie nicht über diese dumme zu tun Schritte wie Änderung an Ihrem Terminal 516 00:22:21,501 --> 00:22:24,202 Fenster ein Make hallo, re führen Sie es aus, laden Sie die Fenster. 517 00:22:24,202 --> 00:22:25,910 Einfach so viele dumme mechanische Schritte, 518 00:22:25,910 --> 00:22:28,480 nur im Weg, dies zu tun bekommen der interessanteste, der Spaß der Arbeit. 519 00:22:28,480 --> 00:22:31,450 Und in der Tat werfen wir weg mit PHP. 520 00:22:31,450 --> 00:22:34,960 Und wir interagieren können damit schneller. 521 00:22:34,960 --> 00:22:35,495 Ja. 522 00:22:35,495 --> 00:22:36,370 ZIELGRUPPE: [unverständlich] 523 00:22:36,370 --> 00:22:40,294 524 00:22:40,294 --> 00:22:40,960 Sprecher 1: Sicher. 525 00:22:40,960 --> 00:22:42,876 Kann ich zu klären, was es Mittel zu interpretieren? 526 00:22:42,876 --> 00:22:45,870 Wenn Sie eine Sprache zu kompilieren wie C, geht es nach unten 527 00:22:45,870 --> 00:22:48,140 wie wir, um die Maschine Code, Nullen und Einsen. 528 00:22:48,140 --> 00:22:51,860 Und Intel beschlossen, vor Jahren, dass bestimmte Muster von Nullen und Einsen 529 00:22:51,860 --> 00:22:56,220 stellen Addition oder Subtraktion, oder drucken, oder andere Grundoperationen. 530 00:22:56,220 --> 00:23:00,250 In der Welt von einer interpretierten Sprache wie PHP oder JavaScript oder Python, 531 00:23:00,250 --> 00:23:03,120 oder Ruby oder Bündeln von andere, anstatt jemand 532 00:23:03,120 --> 00:23:05,120 schrieb ein interpreter-- in diesem Fall 533 00:23:05,120 --> 00:23:09,770 ist es auch genannt PHP, identisch mit dem Name des language--, die im Wesentlichen 534 00:23:09,770 --> 00:23:13,840 hat eine große Schleife in es, dass eine Iteration über alle Zeilen des Codes 535 00:23:13,840 --> 00:23:18,170 dass ich es dort als Eingabe, wie hallo dot PHP, oder Wörterbuch dot PHP. 536 00:23:18,170 --> 00:23:21,760 >> Und dann haben Sie ihrer großen denken kann Schleife als eine Menge von Bedingungen. 537 00:23:21,760 --> 00:23:26,340 Und diese Bedingungen sagen, wenn die Menschen ist das Stichwort für die geschrieben, 538 00:23:26,340 --> 00:23:28,470 tun beginnen seine Code wieder und wieder. 539 00:23:28,470 --> 00:23:31,360 Oder wenn der Mensch hat geschrieben die Codezeile, 540 00:23:31,360 --> 00:23:34,880 wenn, nur durchführen, ihre nächste Zeile bedingt. 541 00:23:34,880 --> 00:23:37,740 So ist es wirklich wie zu interpretieren es in einem menschlichen Sinne Linie 542 00:23:37,740 --> 00:23:39,660 durch die Linie, und dass, nur braucht Zeit. 543 00:23:39,660 --> 00:23:41,340 Es dauert Overhead. 544 00:23:41,340 --> 00:23:44,189 Und das ist also eine Preis-- gute question-- wir zahlen. 545 00:23:44,189 --> 00:23:46,480 Lassen Sie uns so tun, eine weitere Demo- Das ist ein wenig dramatischer. 546 00:23:46,480 --> 00:23:51,160 Es gibt, würde ich sagen, ein Baseballstadion diese an eine 90% ige Wahrscheinlichkeit, dass in Ermangelung schrecklich, 547 00:23:51,160 --> 00:23:53,869 aber Sie werden erstaunt sein, mit 10% Wahrscheinlichkeit. 548 00:23:53,869 --> 00:23:55,660 Also jedes Jahr versuchen wir, um dies zu tun, wobei wir 549 00:23:55,660 --> 00:23:59,061 versuchen, ein Programm zu schreiben, das durchgeht Problem auf Null gesetzt, für die Sie haben, 550 00:23:59,061 --> 00:24:02,060 eingereicht Ihre Telefonnummern und eine viele andere demografische Informationen, 551 00:24:02,060 --> 00:24:06,030 und wir programmatisch senden Sie eine Textnachricht. 552 00:24:06,030 --> 00:24:08,540 Und dann jedermanns Handy piept oder vibriert, 553 00:24:08,540 --> 00:24:11,460 und es ist einfach unglaublich, denn gut, schauen, was Computer tun kann. 554 00:24:11,460 --> 00:24:13,840 >> Dies funktioniert nur selten richtig es scheint, zum großen Teil 555 00:24:13,840 --> 00:24:16,800 weil ich in der Regel schwarzen Liste von Google Mail oder einen anderen Dienst 556 00:24:16,800 --> 00:24:19,630 für die tatsächlich versuchen, dies auf der Skala zu tun. 557 00:24:19,630 --> 00:24:24,940 Aber lustige Sache ist auch, da wir nicht jeder haben heute hier, 558 00:24:24,940 --> 00:24:27,690 Spaßtatsache wir das letzte Mal vor zwei Jahren versucht, diese, 559 00:24:27,690 --> 00:24:30,870 Ich glaube, ich schrieb ein Programm, dass in einer Schleife iteriert setzte 560 00:24:30,870 --> 00:24:34,040 über alle Schüler in der Klasse, und jedes von ihnen eine Textnachricht, 561 00:24:34,040 --> 00:24:37,534 und sie sagte etwas wie, warum sind Sie nicht in der Vorlesung? 562 00:24:37,534 --> 00:24:39,170 Liebe, CS50 bot. 563 00:24:39,170 --> 00:24:42,580 >> Sie haben keine Ahnung, wie viele apologetische und Art von schmerzhaften E-Mails 564 00:24:42,580 --> 00:24:46,970 Ich habe als Antwort aus dem empfangenen n minus 100 Leute, die nicht hier waren 565 00:24:46,970 --> 00:24:47,960 dieser Tag. 566 00:24:47,960 --> 00:24:52,116 Und noch lustiger, schändlicher story-- Sie wissen, sagen wir es da draußen. 567 00:24:52,116 --> 00:24:53,740 Es ist schon auf Video ein paar Jahre zurück. 568 00:24:53,740 --> 00:24:56,810 So werden Sie bald sehen mich schreib eine for-Schleife, wobei 569 00:24:56,810 --> 00:25:00,640 es ist sehr einfach, einen Fehler, dass zu schreiben for-Schleife, so dass die erste Zeit 570 00:25:00,640 --> 00:25:02,800 durch die Schlaufe, die Sie senden Sie eine Textnachricht. 571 00:25:02,800 --> 00:25:06,190 >> Das zweite Mal durch die Schleife I sollte eine weitere SMS-Nachricht gesendet haben, 572 00:25:06,190 --> 00:25:08,250 und dann noch einen Text Nachricht und eine weitere. 573 00:25:08,250 --> 00:25:11,490 Aber es stellt sich heraus, ob Sie einen Tippfehler machen bei der Programmierung, manchmal 574 00:25:11,490 --> 00:25:14,460 können Programme, die eine Nachricht zu schreiben Textnachricht, dann zwei SMS-Nachrichten, 575 00:25:14,460 --> 00:25:18,742 dann drei Textnachrichten an alle, die bereits eine SMS-Nachricht empfangen hat. 576 00:25:18,742 --> 00:25:21,450 Und wie Sie wissen, etwas zu tun, zzgl etwas, plus etwas, 577 00:25:21,450 --> 00:25:25,910 zzgl etwas, ist ein großes O der Lose Textnachrichten oder n quadriert, 578 00:25:25,910 --> 00:25:29,830 oder 0,10 $ eine Textnachricht, $ 20.000. 579 00:25:29,830 --> 00:25:33,700 >> Zum Glück habe Ctrl-C schlug vor, dass passiert ist, aber ich verdanke mindestens eine 580 00:25:33,700 --> 00:25:37,550 Ihrer Vorgänger $ 20 für die 200 ein paar seltsame SMS-Nachrichten, dass, 581 00:25:37,550 --> 00:25:40,450 nicht nur ging zu seinem Handy, aber auch, es war wie eine ältere Flip-Telefon 582 00:25:40,450 --> 00:25:43,520 so dass es wie aus schob Speicher jede andere persönliche Text 583 00:25:43,520 --> 00:25:45,930 Nachricht er tatsächlich bekommen. 584 00:25:45,930 --> 00:25:49,250 Also haben wir ein Ziel haben heute, nicht, das zu tun. 585 00:25:49,250 --> 00:25:50,620 Vielleicht schalten Sie den Flugmodus. 586 00:25:50,620 --> 00:25:51,120 Gut. 587 00:25:51,120 --> 00:25:56,590 Lassen Sie uns also in einem gehen Programm hier callled-- 588 00:25:56,590 --> 00:25:59,060 dass ich Text dot PHP nennen. 589 00:25:59,060 --> 00:26:01,074 Und im Voraus, ich habe zwei Dateien hier. 590 00:26:01,074 --> 00:26:06,030 Ich eine Datei für nur Personal hat, das muss alle Informationen der Mitarbeiter, alle Namen 591 00:26:06,030 --> 00:26:07,260 von der Website der natürlich. 592 00:26:07,260 --> 00:26:09,756 Und dann für jetzt ich gerade auf einige gefälschte Nummern 555-1212. 593 00:26:09,756 --> 00:26:11,380 Also das wäre nicht wirklich überall zu gehen. 594 00:26:11,380 --> 00:26:15,140 Aber beachten Sie das Innere dieser CSV-Datei, was wir über kurz gesprochen, bevor 595 00:26:15,140 --> 00:26:16,540 im Zusammenhang mit der Datei IO. 596 00:26:16,540 --> 00:26:18,730 >> Was ist eine CSV-Datei? 597 00:26:18,730 --> 00:26:19,970 Komma getrennte Variablen. 598 00:26:19,970 --> 00:26:24,400 Und das ist ein bisschen wie ein sehr Leichtbau-Datenbank, wenn man so will. 599 00:26:24,400 --> 00:26:28,650 Es ist Art von Art von vier Spalten in dieser Datei, und gezackt, 600 00:26:28,650 --> 00:26:32,400 aber die Kommas im wesentlichen stellen Spalten dar, in der Datei. 601 00:26:32,400 --> 00:26:35,400 In der ersten Spalte ist der TF oder CA Name. 602 00:26:35,400 --> 00:26:37,800 Zweite Spalte ist ihren Nachnamen. 603 00:26:37,800 --> 00:26:39,820 Dritte Spalte ist ihre Telefonnummer. 604 00:26:39,820 --> 00:26:44,760 Und vierte Spalte anscheinend ist-- vierte Spalte ist offenbar, was? 605 00:26:44,760 --> 00:26:45,870 OK, so ist es ihre Träger. 606 00:26:45,870 --> 00:26:47,180 So Verizon oder Sprint, oder was nicht. 607 00:26:47,180 --> 00:26:48,620 Und wenn ich misspoke früheren, CSV. 608 00:26:48,620 --> 00:26:51,800 Comma separated values ​​CSV ist hier. 609 00:26:51,800 --> 00:26:54,260 >> Also, was kann ich tun, mit diesem? 610 00:26:54,260 --> 00:26:56,940 Gut, das ist nur eine große Textdatei, und es ist eine Art lange, nicht wahr? 611 00:26:56,940 --> 00:26:58,690 Wie dies zu gehen sein Art ärgerlich. 612 00:26:58,690 --> 00:27:03,510 Und es stellt sich heraus, obwohl, dass, wenn ich möchte eine Textnachricht an, lassen Sie uns senden 613 00:27:03,510 --> 00:27:05,180 sagen Alex hier. 614 00:27:05,180 --> 00:27:09,690 Lassen Sie mich in meinem Browser gehen und beenden Sie den Vollbildmodus 615 00:27:09,690 --> 00:27:11,660 nur so kann ich hin und her zu wechseln. 616 00:27:11,660 --> 00:27:20,280 Es stellt sich heraus, mal sehen, ob ich in gehen hier und melden Sie sich bei Google Mail, alles in Ordnung. 617 00:27:20,280 --> 00:27:22,950 An diesem Teil Schauen Sie nicht. 618 00:27:22,950 --> 00:27:23,880 Nur bekomme ich, um zu sehen. 619 00:27:23,880 --> 00:27:26,551 620 00:27:26,551 --> 00:27:28,800 natürlich die Livestream kann immer noch sehen, was ich tue. 621 00:27:28,800 --> 00:27:29,360 Gut. 622 00:27:29,360 --> 00:27:31,850 >> So, hier ist nur mit Google Mail John Harvard Konto. 623 00:27:31,850 --> 00:27:34,000 Also, wenn ich eine Nachricht SMS an Alex, 624 00:27:34,000 --> 00:27:35,530 Ich kann natürlich eine Nachricht verfassen. 625 00:27:35,530 --> 00:27:38,410 Und es stellt sich heraus, und ich habe getestet mit Alex, bevor Sie hier, 626 00:27:38,410 --> 00:27:42,260 so können Sie eine bestimmte Domäne anhängen zu nennen, um Telefonnummern der Leute, 627 00:27:42,260 --> 00:27:45,850 da es in der Welt existiert Dinge genannt SMS an eine E-Mail-Gateways. 628 00:27:45,850 --> 00:27:50,000 Das ist eine andere Art zu sagen alles von uns, die Mobiltelefone haben, dass 629 00:27:50,000 --> 00:27:53,200 haben Telefonnummern, natürlich, es wahrscheinlich für Ihre Träger, 630 00:27:53,200 --> 00:27:56,840 eine bestimmte Endung wie zu Vtext.com für Verizon Textnachricht 631 00:27:56,840 --> 00:28:00,320 dot com, die Sie auf Ihrem anhängen persönliche Telefonnummer, und dann 632 00:28:00,320 --> 00:28:03,540 Sie oder Freunden, oder deine Eltern können Text, den Sie an dieser bestimmten Adresse. 633 00:28:03,540 --> 00:28:07,380 >> Und Verizon hat einen Server, eine E-Mail Server, dass nach Erhalt dieser E-Mail, 634 00:28:07,380 --> 00:28:11,180 befasst sich mit der numerischen Teil und dann was auch immer nutzt spezielle Branchen Magie 635 00:28:11,180 --> 00:28:14,540 sie müssen tatsächlich senden Sie es über der Äther, um Ihre bestimmten Zelle 636 00:28:14,540 --> 00:28:15,040 Telefon. 637 00:28:15,040 --> 00:28:18,030 Nun, das ist schön, weil ich nicht wirklich wissen, wie eine Textnachricht senden 638 00:28:18,030 --> 00:28:20,460 oder Code noch schreiben für mein Handy, 639 00:28:20,460 --> 00:28:23,580 und man könnte genau das zu tun, für die ein Abschlussprojekt, aber für jetzt alle 640 00:28:23,580 --> 00:28:24,770 Ich habe, ist mein Laptop hier. 641 00:28:24,770 --> 00:28:29,830 Deshalb möchte ich über diese CSV laufen Datei, Zeile für Zeile, Zeile, Zeile, 642 00:28:29,830 --> 00:28:35,160 greifen jeweils mit Telefonnummern der Mitarbeiter, und deren Träger und programmatisch, 643 00:28:35,160 --> 00:28:39,770 verketten, das ist, schließen Sie das Telefon Nummer mit der entsprechenden Domain-Namen 644 00:28:39,770 --> 00:28:40,820 und dann schicken Sie eine E-Mail. 645 00:28:40,820 --> 00:28:41,940 >> Also das ist eine Menge von Schritten. 646 00:28:41,940 --> 00:28:45,530 Und viel Glück zu tun, dass in C. Es ist ein Alptraum für eine Situation, 647 00:28:45,530 --> 00:28:48,350 um eine Datei zu öffnen, um es zu lesen Linie, Zeile, Zeile, wie Sie 648 00:28:48,350 --> 00:28:51,100 sehen oder können bald zu sehen mit Problem stellte fünf, wenn nicht 649 00:28:51,100 --> 00:28:53,560 Problem Set vier, und dann dynamisch verketten 650 00:28:53,560 --> 00:28:57,020 zwei Strings zusammen, denn in C, zwei Strings zu nehmen und kombinieren sie, 651 00:28:57,020 --> 00:29:00,900 was willst du minimal- müssen Sie wahrscheinlich zu tun? 652 00:29:00,900 --> 00:29:03,020 Sie brauchen, um mehr Speicher zu erklären, oder? 653 00:29:03,020 --> 00:29:04,710 Und fragen, malloc, kann ich mehr Speicher? 654 00:29:04,710 --> 00:29:07,060 So kann ich die Hälfte davon setzen hier, die Hälfte davon hier. 655 00:29:07,060 --> 00:29:08,150 Es ist nur so viele Schritte. 656 00:29:08,150 --> 00:29:10,310 Und von diesem Punkt Sie verloren haben Interesse an der dumme kleine Demo 657 00:29:10,310 --> 00:29:11,851 in dem Sie lassen jeder Telefon Signalton. 658 00:29:11,851 --> 00:29:14,590 Lassen Sie uns diese Art von PHP Stil, wobei wir nur 659 00:29:14,590 --> 00:29:16,210 starten Sie mit mehr von diesem Küchenspüle. 660 00:29:16,210 --> 00:29:18,050 >> Und die Ideen sind grundsätzlich die gleiche, 661 00:29:18,050 --> 00:29:20,710 aber wir müssen nicht zu kümmern viel von diesem niedrigeren Niveau. 662 00:29:20,710 --> 00:29:22,950 Also mal sehen, wie ich könnte gehen über das Tun dies. 663 00:29:22,950 --> 00:29:26,664 Und nur damit, dass ich nicht wiederholen die Fehler der Vergangenheit, 664 00:29:26,664 --> 00:29:28,330 Ich habe ein paar Notizen für mich hier geschrieben. 665 00:29:28,330 --> 00:29:31,070 Und lassen Sie uns sehen, wenn ich uns kann zu Fuß einige der grundlegenden Schritte, 666 00:29:31,070 --> 00:29:33,861 und dann für die Zeit willen wir werden Vielleicht haben einige Ecken am Ende abgeschnitten. 667 00:29:33,861 --> 00:29:38,007 Ich werde weitermachen und tun, offen Halterung PHP, diese Datei zu starten. 668 00:29:38,007 --> 00:29:39,590 Und ich werde weitermachen und tun dies. 669 00:29:39,590 --> 00:29:41,490 Datei-Handle, wie Sie bald sehen werden, tatsächlich 670 00:29:41,490 --> 00:29:44,790 ruft eine Funktion namens f geöffnet. 671 00:29:44,790 --> 00:29:46,280 Und denken Sie daran eine Datei öffnet. 672 00:29:46,280 --> 00:29:48,800 Und das Zitat, Zitat Ende, r bedeutet, was wiederum? 673 00:29:48,800 --> 00:29:49,800 Öffnen Sie es nur für Lese. 674 00:29:49,800 --> 00:29:51,210 Jetzt in p-Set für, haben Sie diese. 675 00:29:51,210 --> 00:29:54,500 Und zu handhaben könnte alles sein, fu, Bar, bas, jede Variablennamen. 676 00:29:54,500 --> 00:29:57,470 Aber in der Regel ein Computer, Wissenschaftler würde eine geöffnete Datei aufrufen, 677 00:29:57,470 --> 00:30:00,962 so dass Sie ein Datei-Handle, etwas, auf sozusagen zu halten. 678 00:30:00,962 --> 00:30:02,670 Ich werde einfach zu tun, einige Fehlerprüfung. 679 00:30:02,670 --> 00:30:07,260 Also, wenn der Handgriff ist falsch, genau wie in C, ich werde etwas tun, 680 00:30:07,260 --> 00:30:09,545 Datei konnte nicht geöffnet, umgekehrten Schrägstrich n. 681 00:30:09,545 --> 00:30:11,420 Und dann habe ich werde einfach nach vorne und Ausgang zu gehen. 682 00:30:11,420 --> 00:30:14,340 Und es stellt sich heraus, in PHP, Ich bin nicht in einer Funktion. 683 00:30:14,340 --> 00:30:16,160 Es gibt keine Hauptfunktion hier. 684 00:30:16,160 --> 00:30:17,450 So dass ich nicht zurückkehren, per se. 685 00:30:17,450 --> 00:30:18,120 I verlassen. 686 00:30:18,120 --> 00:30:19,619 Das im Wesentlichen dasselbe. 687 00:30:19,619 --> 00:30:22,510 Und ich bin verlassen mit einem y wahrscheinlich. 688 00:30:22,510 --> 00:30:24,220 Ein Mittel nur einen Fehler von einer Art. 689 00:30:24,220 --> 00:30:25,580 Es ist nicht Null ist, so ist es ein Fehler ist. 690 00:30:25,580 --> 00:30:30,220 >> Na gut, also, wenn ich hier bin jetzt nach unten in meinem Programm habe ich die Datei geöffnet wird. 691 00:30:30,220 --> 00:30:34,250 Ich werde weitermachen und erklären, ein Array namens Adressen, 692 00:30:34,250 --> 00:30:38,610 und in C müsste ich das wissen, Größe des Arrays im Voraus, nicht wahr? 693 00:30:38,610 --> 00:30:41,910 Oder ich brauchen würde, dies zu erklären, ist ein Zeiger, und verwenden Sie dann malloc. 694 00:30:41,910 --> 00:30:44,720 Und dann jedes Mal, wenn ich lese durch eine andere Reihe in der Datei, 695 00:30:44,720 --> 00:30:46,620 Ich werde müssen malloc mehr Speicher, malloc mehr Speicher. 696 00:30:46,620 --> 00:30:47,703 Das ist ein Schmerz im Nacken. 697 00:30:47,703 --> 00:30:50,950 Und Gott sei Dank, PHP und Ruby, und Python und JavaScript, sie 698 00:30:50,950 --> 00:30:53,880 Ihre Arrays wachsen automatisch für Sie. 699 00:30:53,880 --> 00:30:54,830 No more malloc. 700 00:30:54,830 --> 00:30:56,227 Nicht mehr Speicherverwaltung. 701 00:30:56,227 --> 00:30:57,560 Der Computer übernimmt, dass. 702 00:30:57,560 --> 00:31:00,330 Aber der Preis, den Sie bezahlen. 703 00:31:00,330 --> 00:31:01,350 Es ist ein wenig langsamer. 704 00:31:01,350 --> 00:31:03,190 Und für ein Programm wie dieses wir werden nicht zu bemerken. 705 00:31:03,190 --> 00:31:04,720 Wir werden 100 SMS-Nachrichten senden. 706 00:31:04,720 --> 00:31:06,136 Zum Beispiel werde es nicht fühlen. 707 00:31:06,136 --> 00:31:08,430 IT wirklich beginnt nur Rolle der Sprache Ihrer Wahl 708 00:31:08,430 --> 00:31:11,490 Wenn Ihre Daten oder Ihre Programme bekommen wirklich, wirklich ansehnliche, 709 00:31:11,490 --> 00:31:14,120 wie es der Fall sein, um so mehr, Mit unserer Web-basierten Zeug. 710 00:31:14,120 --> 00:31:15,450 >> Aber jetzt wollen wir vorantreiben. 711 00:31:15,450 --> 00:31:20,120 Während es stellt sich heraus, es gibt eine Funktion in C genannt F CSV. 712 00:31:20,120 --> 00:31:24,570 Datei zu erhalten CSV, das dauert ein Datei-Handle als Argument, 713 00:31:24,570 --> 00:31:28,810 und es geht dann, Reihe, von Zeile für Zeile, um eine Zeile zu lesen in. 714 00:31:28,810 --> 00:31:30,964 So ist es nur liest eine Zeile der Text aus der Datei. 715 00:31:30,964 --> 00:31:34,130 Aber was ist schön zu dieser Funktion es nicht nur geben Sie mir eine Textzeile. 716 00:31:34,130 --> 00:31:37,320 Es sieht für die Kommas, und analysiert die Linie. 717 00:31:37,320 --> 00:31:41,740 Und, um die Linie zu analysieren bedeutet, zu spalten auf bestimmte Werte in diesem Kontext. 718 00:31:41,740 --> 00:31:45,510 >> Mit anderen Worten, Dollarzeichen Reihe ist eine Variable, ist 719 00:31:45,510 --> 00:31:47,010 werde mir ein paar Indizes zu geben. 720 00:31:47,010 --> 00:31:49,635 Das wird das sein, erste Spalte in meiner CSV. 721 00:31:49,635 --> 00:31:52,510 Das wird der zweite sein Spalte, das wird das dritte sein, 722 00:31:52,510 --> 00:31:53,968 und das wird die vierte sein. 723 00:31:53,968 --> 00:31:57,440 Weil Rückruf und Excel die nicht kooperieren wir das letzte Mal tat dies, 724 00:31:57,440 --> 00:32:03,350 aber wenn ich herunterladen Personal dot CSV. 725 00:32:03,350 --> 00:32:04,940 Whoops, nicht umbenannt werden. 726 00:32:04,940 --> 00:32:09,120 Wenn ich Mitarbeiter dot downloaden CSV, und versuchen Sie es zu öffnen, 727 00:32:09,120 --> 00:32:12,510 Ich habe bereits registered-- oh I hat Excel nicht aktualisiert seit dem letzten Mal. 728 00:32:12,510 --> 00:32:15,880 Sie finden, dass in der Personal dot sehen CSV, ich habe vier Spalten. 729 00:32:15,880 --> 00:32:18,720 Also, wenn ich in der Lese erste Reihe zum Abby hier, 730 00:32:18,720 --> 00:32:23,582 Dollar-Zeichen Zeile 0 ist Abby, Dollar-Zeichen Reihe eins ist Lyons, 731 00:32:23,582 --> 00:32:27,740 Dollar-Zeichen Reihe zwei ist ihre Zahl, und dann ihr Telefon Träger. 732 00:32:27,740 --> 00:32:28,410 >> Also das ist alles. 733 00:32:28,410 --> 00:32:30,740 Und das ist schön, weil ich nicht haben, um jetzt herauszufinden, 734 00:32:30,740 --> 00:32:32,800 wobei alle diese Kommas tatsächlich sind. 735 00:32:32,800 --> 00:32:35,300 Also werde ich voran gehen und tun dies, da die Definition, 736 00:32:35,300 --> 00:32:38,960 Ich werde sagen, dass ihr Name ist in Zeile Halterung Null, wie versprochen. 737 00:32:38,960 --> 00:32:41,150 Und ich werde grab-- und wirklich, weißt du was? 738 00:32:41,150 --> 00:32:42,780 Ich werde nicht zu befürchten ihren Namen, in diesem Fall. 739 00:32:42,780 --> 00:32:43,988 Ich werde es einfacher, zu halten. 740 00:32:43,988 --> 00:32:48,610 Ich werde tun, ihre Nummer in Zeile zwei Bügel, denke ich. 741 00:32:48,610 --> 00:32:50,510 Und ihr Träger war wo? 742 00:32:50,510 --> 00:32:53,405 Reihe drei, eins über. 743 00:32:53,405 --> 00:32:54,280 Also nichts Neues. 744 00:32:54,280 --> 00:32:56,770 Es ist nur Null-Indizierung in ein Array. 745 00:32:56,770 --> 00:32:58,760 >> Und jetzt werde ich folgendes tun. 746 00:32:58,760 --> 00:33:03,930 Wenn der Träger gleich entspricht AT & T-- Ich werde einfach einen loop-- haben 747 00:33:03,930 --> 00:33:06,790 Ich möchte eine E-Mail erstellen Adresse, die so aussieht. 748 00:33:06,790 --> 00:33:12,320 Es wird 617-555-1212 sein an, was ist es, text.ATT.net, 749 00:33:12,320 --> 00:33:13,490 ist das, was ich tun möchte. 750 00:33:13,490 --> 00:33:15,260 So, wie ich das tun? 751 00:33:15,260 --> 00:33:16,730 Ich werde folgendes tun. 752 00:33:16,730 --> 00:33:22,460 Ihre Adresse wird ihre Zahl sein, und jetzt lassen Sie mich gehen Sie vor und tun dies. 753 00:33:22,460 --> 00:33:23,760 Dieses ist etwas flippige Syntax. 754 00:33:23,760 --> 00:33:27,250 Ich konnte die prozentuale s Trick zu tun, aber ich kann eigentlich nur tun. 755 00:33:27,250 --> 00:33:29,900 >> Das ist also ein PHP Sache, aber laßt uns überlegen, was ich tue. 756 00:33:29,900 --> 00:33:31,630 Dollar unterzeichnen Adresse auf der linke, nur eine Variable. 757 00:33:31,630 --> 00:33:32,300 Geben Sie mir eine Variable. 758 00:33:32,300 --> 00:33:33,390 Ich habe nicht um den Typ angeben. 759 00:33:33,390 --> 00:33:34,570 PHP wird es herausfinden. 760 00:33:34,570 --> 00:33:36,580 Auf der rechten Seite, was ist der Datentyp 761 00:33:36,580 --> 00:33:38,399 jenes Ganze auf die rechte Seite? 762 00:33:38,399 --> 00:33:40,190 Sieht aus wie eine Schnur, denn es gibt Doppel 763 00:33:40,190 --> 00:33:42,280 zitiert ganz links und ganz rechts. 764 00:33:42,280 --> 00:33:44,210 Jetzt gibt es einige coole neue Syntax hier. 765 00:33:44,210 --> 00:33:47,550 Es gibt die geschweiften Klammern, und der Dollar-Zeichen-Nummer. 766 00:33:47,550 --> 00:33:52,860 Aber nehmen Sie eine Vermutung, was ist, dass Syntax wahrscheinlich erzählen, um PHP für mich tun? 767 00:33:52,860 --> 00:33:53,360 Ja. 768 00:33:53,360 --> 00:33:54,630 Gerade dort legen Sie den Wert. 769 00:33:54,630 --> 00:33:55,530 Also kein Prozent s. 770 00:33:55,530 --> 00:33:58,160 Wir konnten Druck f oder s verwenden Druck f oder so ähnlich, 771 00:33:58,160 --> 00:34:00,070 aber PHP und viele höheren Sprachen, 772 00:34:00,070 --> 00:34:03,070 Sie gehen, um zu sehen, dass man dasselbe tun funktional, vielleicht 773 00:34:03,070 --> 00:34:04,019 sechs verschiedene Arten. 774 00:34:04,019 --> 00:34:06,310 Und so beginnt es zu werden eine Frage der Gestaltung und Stil. 775 00:34:06,310 --> 00:34:09,902 So ist dies nur eine kryptische Weise suchen zu sagen, gib mir eine E-Mail-Adresse, 776 00:34:09,902 --> 00:34:12,110 aber Plug-in der Anzahl in zwischen diesen geschweiften Klammern. 777 00:34:12,110 --> 00:34:15,440 Und die geschweiften Klammern werden nicht am Ende in der letzten Adresse. 778 00:34:15,440 --> 00:34:18,010 >> Jetzt können wir über einige überspringen diese Zeilen für Zeit willen. 779 00:34:18,010 --> 00:34:21,210 Also, wenn ein Träger ist gleich gleich verHorizon-- hoppla, 780 00:34:21,210 --> 00:34:24,989 Verizon-- Ich will etwas tun, sehr ähnlich, wo die Adresse erhält, 781 00:34:24,989 --> 00:34:27,569 Zitat, Zitat Ende, Zahl am text.ATT.net. 782 00:34:27,569 --> 00:34:30,380 783 00:34:30,380 --> 00:34:35,050 Und dann kann ich die gleiche Art von tun was für den Rest der Träger. 784 00:34:35,050 --> 00:34:37,090 Aber ich werde einfach dot, Punkt, Punkt zu tun für jetzt. 785 00:34:37,090 --> 00:34:43,050 Und nun an, dass wir Ich möchte Array hinzuzufügen, drücken Sie. 786 00:34:43,050 --> 00:34:45,969 Ich möchte, um das Add Array, genannt Adressen. 787 00:34:45,969 --> 00:34:50,409 >> Die Adresse, das ist, wie Sie fügen etwas an ein Array in PHP. 788 00:34:50,409 --> 00:34:51,610 Sie brauchen nicht zu malloc zu tun. 789 00:34:51,610 --> 00:34:53,068 Sie müssen nicht, um die Anordnung zu ändern. 790 00:34:53,068 --> 00:34:54,259 Sie gerade sagen, Array, Push. 791 00:34:54,259 --> 00:34:57,300 Was sagen Sie zu push-- was Array möchten Sie wollen etwas auf zu schieben? 792 00:34:57,300 --> 00:34:58,000 Adressen. 793 00:34:58,000 --> 00:34:59,550 Was Sie wollen, um auf Adressen zu schieben? 794 00:34:59,550 --> 00:35:00,350 Adresse. 795 00:35:00,350 --> 00:35:02,430 Und in der Tat, wenn Sie wirklich clever sein wollen, 796 00:35:02,430 --> 00:35:05,610 einige syntaktischer Zucker Hierzu sozusagen 797 00:35:05,610 --> 00:35:10,230 das bedeutet nur, wie können Sie diese in zu tun desto schöner Weg, wäre, dies zu tun. 798 00:35:10,230 --> 00:35:14,060 Das hat auch den Effekt der wachsenden die Adressen-Array nach Größe eine, 799 00:35:14,060 --> 00:35:17,130 und dann plop, dass zusätzliche E-Mail Adresse in sie. 800 00:35:17,130 --> 00:35:17,630 Ja. 801 00:35:17,630 --> 00:35:19,730 >> ZIELGRUPPE: [unverständlich] 802 00:35:19,730 --> 00:35:22,520 >> Sprecher 1: ein Tippfehler auf der sonst if-- oh, Träger. 803 00:35:22,520 --> 00:35:23,070 Das ist ok. 804 00:35:23,070 --> 00:35:26,971 Es wird auch nicht zu mögen mein Versagen Umsetzung im Rahmen dieses Programms 805 00:35:26,971 --> 00:35:27,470 später. 806 00:35:27,470 --> 00:35:28,810 Aber danke für kontrollieren. 807 00:35:28,810 --> 00:35:30,671 Ein weiterer Fehler. 808 00:35:30,671 --> 00:35:31,170 Danke. 809 00:35:31,170 --> 00:35:33,746 Wir wollen, dass dies Vtext.com sein. 810 00:35:33,746 --> 00:35:34,340 Ja. 811 00:35:34,340 --> 00:35:34,839 Gut. 812 00:35:34,839 --> 00:35:36,330 Also, wo führt uns das? 813 00:35:36,330 --> 00:35:38,224 Wir haben den Code zum Öffnen der Datei geschrieben. 814 00:35:38,224 --> 00:35:40,390 Wir haben eine Schleife zu durchlaufen über die Zeilen in der Datei. 815 00:35:40,390 --> 00:35:43,650 Wir haben Code, fügt meine Array, eine zu einem Zeitpunkt, der richtig 816 00:35:43,650 --> 00:35:44,790 formatierte E-Mail-Adresse ein. 817 00:35:44,790 --> 00:35:48,480 Also alles, was wirklich bleibt, ist zu senden eine E-Mail für jede dieser Personen. 818 00:35:48,480 --> 00:35:52,830 >> Also habe ich weitergemacht und machte mich wie folgt. 819 00:35:52,830 --> 00:35:59,580 Was werde ich hier ist-- tun und lassen Sie uns gehen Sie vor und fahren Sie mit einigen eigentlichen Code, 820 00:35:59,580 --> 00:36:00,620 die wie folgt aussieht. 821 00:36:00,620 --> 00:36:02,950 Also hier ist die vorgebackenen Version, die ich schrieb früher. 822 00:36:02,950 --> 00:36:04,700 Und beachten Sie, ich fertig Umsetzung Sprint. 823 00:36:04,700 --> 00:36:06,130 Ich beendete die Umsetzung von T-Mobile. 824 00:36:06,130 --> 00:36:08,020 Ich beendete die Umsetzung Virgin Mobile. 825 00:36:08,020 --> 00:36:09,622 Und ich werde im Voraus entschuldigen. 826 00:36:09,622 --> 00:36:12,080 Es gibt ein paar Träger, einige Schüler in der Klasse haben 827 00:36:12,080 --> 00:36:14,640 dass ich nicht die Mühe Aufzählung in dem Zustand, wenn Sie hier. 828 00:36:14,640 --> 00:36:16,015 Also nicht alle Texte erlischt. 829 00:36:16,015 --> 00:36:17,556 Aber lassen Sie uns sehen, was ich tun muss. 830 00:36:17,556 --> 00:36:19,660 Ich schließen Sie die Datei, nur wie in S. vier. 831 00:36:19,660 --> 00:36:20,835 >> Und dies ist eine neue Syntax. 832 00:36:20,835 --> 00:36:22,710 Und wir werden ein wenig zu sehen Bit dieses im Laufe der Zeit, 833 00:36:22,710 --> 00:36:24,450 vor allem mit S. sieben und acht. 834 00:36:24,450 --> 00:36:28,140 Aber das ist Syntax zum Erstellen eine spezielle Art von Struktur. 835 00:36:28,140 --> 00:36:31,490 Es stellt sich heraus gibt es eine Bibliothek, kommt mit PHP, die so genannte PHP-Mailer. 836 00:36:31,490 --> 00:36:33,840 Sein Ziel im Leben ist, programmgesteuert E-Mails senden. 837 00:36:33,840 --> 00:36:36,840 Es ist Code jemand anderes schrieb, macht es einfacher für uns, E-Mails zu senden, 838 00:36:36,840 --> 00:36:39,131 so haben wir nicht zu halten hin und her, um Google Mail, 839 00:36:39,131 --> 00:36:41,151 und Einfügen in der Menschen E-Mail-Adressen. 840 00:36:41,151 --> 00:36:44,150 Es gibt eine ganze Reihe von Linien hier dass ehrlich, ich nur irgendwie kopiert 841 00:36:44,150 --> 00:36:45,660 und aus der Dokumentation eingefügt. 842 00:36:45,660 --> 00:36:47,409 Und in der Tat, wenn Sie neugierig, verließ ich alle 843 00:36:47,409 --> 00:36:50,550 der URLs der Dokumentation in dem Code, den wir später veröffentlichen. 844 00:36:50,550 --> 00:36:52,360 Und beachten Sie, dass unter die Dinge, die ich tue, 845 00:36:52,360 --> 00:36:55,710 ist, ich sage diese Bibliothek, Verwendung von Google Mail-Server, oder? 846 00:36:55,710 --> 00:36:59,360 SMTP sprachen wir kurz über, wenn wir waren an der Yale darum, einfache Mail 847 00:36:59,360 --> 00:37:00,110 Übertragungsprotokoll. 848 00:37:00,110 --> 00:37:02,920 Es ist das Protokoll, Server verwendet werden, um E-Mail, 849 00:37:02,920 --> 00:37:05,150 und that's-- Gmail hat einer von denen. 850 00:37:05,150 --> 00:37:07,290 Ein Port ist dies die TCP-Portnummer. 851 00:37:07,290 --> 00:37:09,630 Es ist in Ordnung, wenn Sie noch nicht gesehen habe 587. 852 00:37:09,630 --> 00:37:11,420 Genau wissen, dass aus der Dokumentation. 853 00:37:11,420 --> 00:37:12,250 Hier ist mein Benutzernamen ein. 854 00:37:12,250 --> 00:37:13,670 Ich werde das CF50 Bot verwenden. 855 00:37:13,670 --> 00:37:16,690 Und in einem Moment, ich bin gerade dabei, geben eigentliche Passwort des Bots. 856 00:37:16,690 --> 00:37:18,690 Und dann hier unten, bemerken, was bleibt. 857 00:37:18,690 --> 00:37:22,840 >> Ich meine von der Adresse bei CS50.net Bot werden. 858 00:37:22,840 --> 00:37:26,240 Ich denke, ich werde nicht das Senden bedauere ein SMS an 800 Menschen, die 859 00:37:26,240 --> 00:37:30,590 sagt, vermisse dich, Liebe CS50 bot, vielleicht für diejenigen, die heute nicht kommen konnten. 860 00:37:30,590 --> 00:37:33,160 Und dann in die Leitung 76, was soll ich tun? 861 00:37:33,160 --> 00:37:39,010 Diese Art von aussehen wie C. Also für i gleich 0 ist, n equals-- jetzt zählen ist neu. 862 00:37:39,010 --> 00:37:42,077 Es stellt sich heraus, dass, wenn Sie erhalten möchten die Anzahl der Dinge, die in einem Array, 863 00:37:42,077 --> 00:37:43,660 Sie müssen nicht, um es nicht mehr erinnern. 864 00:37:43,660 --> 00:37:45,370 Sie können fragen Sie einfach ein Funktion namens Graf, 865 00:37:45,370 --> 00:37:48,320 und es wird Ihnen sagen, wie viele Adressen sind in diesem Array. 866 00:37:48,320 --> 00:37:53,210 >> Und dann werde ich hinzufügen, die Adresse, an die E-Mail. 867 00:37:53,210 --> 00:37:55,090 Und ich weiß das aus Verwendung der Dokumentation. 868 00:37:55,090 --> 00:37:56,900 Es ist ein Add-Adresse Funktion. 869 00:37:56,900 --> 00:37:58,980 Und jetzt gibt es bemerken, ist ein Stück der Syntax. 870 00:37:58,980 --> 00:38:01,470 Wir haben das schon mal gesehen in C im Geiste. 871 00:38:01,470 --> 00:38:04,100 Sie können denken, der Dollar-Zeichen Mail als eine Variable, die sie ist. 872 00:38:04,100 --> 00:38:08,100 Aber es ist eine struct Innenseite die nicht nur Immobilien, 873 00:38:08,100 --> 00:38:09,400 Variablen, wenn man so will. 874 00:38:09,400 --> 00:38:13,480 Aber es stellt sich heraus, dass in PHP, die ist eine objektorientierte Programmiersprache 875 00:38:13,480 --> 00:38:16,520 Sprache wie Java, wenn Sie nahm APCS. 876 00:38:16,520 --> 00:38:21,420 >> Dollar-Zeichen-Mail, wenn Sie wollen zu-- es hat auch Funktionen innerhalb von ihr, 877 00:38:21,420 --> 00:38:22,380 oder Methoden. 878 00:38:22,380 --> 00:38:24,720 Also das ist zu sagen, dass spezielle PHP-Mailer 879 00:38:24,720 --> 00:38:29,280 Bibliothek, wenn ich eine Variable davon bekam, wenn ich will, um einen Funktionsaufruf, 880 00:38:29,280 --> 00:38:31,559 kommt mit dieser Bibliothek, für heutige Zwecke, 881 00:38:31,559 --> 00:38:33,100 nur wissen, dass Sie den Pfeil-Notation verwenden. 882 00:38:33,100 --> 00:38:34,150 Es gibt keinen Punkt-Notation. 883 00:38:34,150 --> 00:38:35,220 Es ist nur der Pfeil. 884 00:38:35,220 --> 00:38:36,380 Aber das ist nicht ein Zeiger. 885 00:38:36,380 --> 00:38:38,680 Es ist nur von der C-Syntax entlehnt. 886 00:38:38,680 --> 00:38:43,620 So rufen hinzufügen Adresse Innenseite dieser Bibliothek Objekt oder eine Variable. 887 00:38:43,620 --> 00:38:44,440 >> Gut. 888 00:38:44,440 --> 00:38:45,570 Das ist die magische Linie. 889 00:38:45,570 --> 00:38:46,740 So habe ich eine E-Mail zu senden. 890 00:38:46,740 --> 00:38:50,040 Das entspricht der Öffnung Gmail, tippen Sie es aus, und das Schlagen zu senden. 891 00:38:50,040 --> 00:38:54,870 Aber es wird statt Nachricht senden E-Mail an diese Adresse, mit diesem Körper, 892 00:38:54,870 --> 00:38:57,120 aus der CS50 bot. 893 00:38:57,120 --> 00:38:58,710 Und jetzt Schlüssel Linie. 894 00:38:58,710 --> 00:39:03,130 Diese Linie wurde in abwesend wie 2011 wenn ich denke, dass ich das letzte mal versucht diese. 895 00:39:03,130 --> 00:39:05,640 Diese Linie gibt, natürlich, löscht die Adressen. 896 00:39:05,640 --> 00:39:07,920 So logisch, wenn ich die Adresse nicht zu löschen 897 00:39:07,920 --> 00:39:11,740 nach jeder Iteration, wobei die erste E-Mail oder SMS-Nachricht geht an Alice, 898 00:39:11,740 --> 00:39:14,320 die zweite geht an Alice und Bob die dritte 899 00:39:14,320 --> 00:39:17,870 geht an Alice und Bob und Charlie, daher der sehr teurer Fehler 900 00:39:17,870 --> 00:39:18,760 Ich habe in diesem Jahr. 901 00:39:18,760 --> 00:39:21,080 >> Also mal sehen. 902 00:39:21,080 --> 00:39:24,200 Gibt es noch Fragen bevor wir alle einen Text senden Ihnen 903 00:39:24,200 --> 00:39:28,210 Meldung mit 10 Prozent Wahrscheinlichkeit? 904 00:39:28,210 --> 00:39:28,940 Irgendwelche Fragen? 905 00:39:28,940 --> 00:39:30,330 Gut. 906 00:39:30,330 --> 00:39:36,100 Lassen Sie mich gehen in hier und Wechsel das Passwort, was funktionieren sollte, 907 00:39:36,100 --> 00:39:37,780 wird wahrscheinlich von Google Mail auf die schwarze Liste zu bekommen. 908 00:39:37,780 --> 00:39:39,821 So dass sie möglicherweise nicht alle gehen aus, da sie wahrscheinlich 909 00:39:39,821 --> 00:39:42,960 mögen uns nicht das Senden von E-Mails 800 in einer for-Schleife alle auf einmal. 910 00:39:42,960 --> 00:39:45,140 Da das nicht insbesondere menschlichen Verhaltens. 911 00:39:45,140 --> 00:39:47,460 >> Oh, ich werde eine andere Sache zu ändern. 912 00:39:47,460 --> 00:39:50,850 An der Spitze, werde ich sent-- Ändern Sie die Datei, um Studenten dot CSV. 913 00:39:50,850 --> 00:39:55,420 Und ich werde nicht zu öffnen, aber das ist eine identische CSV-Datei mit nicht 100 Mitarbeiter, 914 00:39:55,420 --> 00:39:58,970 aber 800 Schüler, nur Harvard, Yale, weil 915 00:39:58,970 --> 00:40:00,207 weist Oktober Vertiefung in dieser Woche. 916 00:40:00,207 --> 00:40:03,290 Und es scheint wie eine Art Ruck Sache zu tun, um alle von ihnen, warum Text 917 00:40:03,290 --> 00:40:04,750 sie sind nicht in der Klasse in den Urlaub. 918 00:40:04,750 --> 00:40:05,250 Das ist ok. 919 00:40:05,250 --> 00:40:08,310 Nur Harvard-Studenten heute innerhalb dieser Datei. 920 00:40:08,310 --> 00:40:12,320 Und nun zurück gehen lassen zu meinem Terminal-Fenster. 921 00:40:12,320 --> 00:40:13,710 Ich bin ein bisschen nervös. 922 00:40:13,710 --> 00:40:22,000 >> OK so jetzt werde ich in der go Verzeichnis und PHP Text dot PHP. 923 00:40:22,000 --> 00:40:24,950 Wie wäre es mit einem mutigen Freiwilligen? 924 00:40:24,950 --> 00:40:26,690 Also ich will das nicht auf mich. 925 00:40:26,690 --> 00:40:28,410 OK, komm herauf. 926 00:40:28,410 --> 00:40:29,162 Wie heißen Sie? 927 00:40:29,162 --> 00:40:29,662 MAYA: Maya. 928 00:40:29,662 --> 00:40:30,328 Sprecher 1: Maya. 929 00:40:30,328 --> 00:40:31,610 Kommen Sie auf, Maya. 930 00:40:31,610 --> 00:40:34,120 Gut. 931 00:40:34,120 --> 00:40:35,389 Mal sehen, ob das funktioniert. 932 00:40:35,389 --> 00:40:38,430 Ich habe meine eigene E-Mail-Adresse in das file-- meine eigene Telefonnummer in der Datei, 933 00:40:38,430 --> 00:40:40,110 so dass hoffentlich werde ich eins zu bekommen als auch. 934 00:40:40,110 --> 00:40:40,819 Nett, dich zu treffen. 935 00:40:40,819 --> 00:40:41,443 MAYA: Ebenso. 936 00:40:41,443 --> 00:40:44,510 Sprecher 1: Also alles, was Sie tun müssen ist, Enter drücken, um 800 SMS-Nachrichten senden, 937 00:40:44,510 --> 00:40:45,466 wenn ich es nicht vermasseln. 938 00:40:45,466 --> 00:40:51,106 939 00:40:51,106 --> 00:40:51,606 Nett. 940 00:40:51,606 --> 00:40:55,556 941 00:40:55,556 --> 00:40:58,430 Könnte eine Weile dauern, statistisch, bis wir zu einer E-Mail zu erhalten address-- 942 00:40:58,430 --> 00:41:00,573 eine SMS-Nachricht, die ist in den Raum jetzt. 943 00:41:00,573 --> 00:41:03,880 944 00:41:03,880 --> 00:41:05,390 Lassen Sie uns zu verweilen und zu sehen. 945 00:41:05,390 --> 00:41:06,940 >> ZIELGRUPPE: [PFEIFEN] 946 00:41:06,940 --> 00:41:08,270 >> Sprecher 1: Oh, ja. 947 00:41:08,270 --> 00:41:09,230 >> ZIELGRUPPE: Oh, gotcha. 948 00:41:09,230 --> 00:41:16,720 949 00:41:16,720 --> 00:41:19,180 >> Sprecher 1: Für Schleifen sind-- diese ist nicht wegen der PHP langsam. 950 00:41:19,180 --> 00:41:21,810 Dies ist langsam, weil Google Mail wird Drosselung uns und nicht 951 00:41:21,810 --> 00:41:25,170 lassen uns zu senden mehr als wie eine E-Mail pro Sekunde. 952 00:41:25,170 --> 00:41:26,300 Alles, was? 953 00:41:26,300 --> 00:41:29,990 Das war eine harte Sache für mich, um zu testen, Haus mit nur ich und mein ein Telefon, so. 954 00:41:29,990 --> 00:41:37,630 955 00:41:37,630 --> 00:41:41,111 Ist das hoffentlich von der Bot? 956 00:41:41,111 --> 00:41:41,610 Ja? 957 00:41:41,610 --> 00:41:42,110 Nein? 958 00:41:42,110 --> 00:41:44,760 959 00:41:44,760 --> 00:41:46,620 Sag ja. 960 00:41:46,620 --> 00:41:47,479 Nein? 961 00:41:47,479 --> 00:41:49,374 Es ist von einem Freund? 962 00:41:49,374 --> 00:41:49,874 Umständlich. 963 00:41:49,874 --> 00:41:50,374 OK. 964 00:41:50,374 --> 00:41:56,580 965 00:41:56,580 --> 00:42:00,090 Ziemlich sicher, dass es zwar arbeiten. 966 00:42:00,090 --> 00:42:00,910 UH Oh. 967 00:42:00,910 --> 00:42:03,190 Sie black-- oh, warten Sie eine Minute. 968 00:42:03,190 --> 00:42:04,280 Oh, weißt du was? 969 00:42:04,280 --> 00:42:06,100 Einen Moment bitte. 970 00:42:06,100 --> 00:42:07,802 Nur Maya und I-- Mia, war es? 971 00:42:07,802 --> 00:42:08,301 MAYA: Maya. 972 00:42:08,301 --> 00:42:12,110 Sprecher 1: Maya, sind los wissen, was ich hier falsch gemacht haben. 973 00:42:12,110 --> 00:42:14,890 Oh, warten Sie eine Minute. 974 00:42:14,890 --> 00:42:23,320 Ich denke, dass ich gerade geschickt 100 Textnachrichten an 555-1212. 975 00:42:23,320 --> 00:42:24,346 Stehen zu. 976 00:42:24,346 --> 00:42:28,080 977 00:42:28,080 --> 00:42:29,270 Ich kann jedes Jahr nicht gewinnen. 978 00:42:29,270 --> 00:42:30,180 OK. 979 00:42:30,180 --> 00:42:30,680 Maya? 980 00:42:30,680 --> 00:42:33,530 981 00:42:33,530 --> 00:42:36,219 Update, das in der Postproduktion. 982 00:42:36,219 --> 00:42:36,718 Dammit! 983 00:42:36,718 --> 00:42:39,430 984 00:42:39,430 --> 00:42:40,390 Nach der von der Adresse. 985 00:42:40,390 --> 00:42:41,301 OK, stehen. 986 00:42:41,301 --> 00:42:41,800 Es tut uns leid. 987 00:42:41,800 --> 00:42:44,550 988 00:42:44,550 --> 00:42:47,080 Es ist jedes Jahr schmerzhaft. 989 00:42:47,080 --> 00:42:48,640 OK, wird gesucht. 990 00:42:48,640 --> 00:42:50,530 Das ist gut. 991 00:42:50,530 --> 00:42:54,010 Ich bin statt, dies zu tun. 992 00:42:54,010 --> 00:42:55,470 Print-Adresse. 993 00:42:55,470 --> 00:42:56,030 OK, stehen. 994 00:42:56,030 --> 00:43:01,340 Print-Adressen, Halterung i. 995 00:43:01,340 --> 00:43:02,710 Ja, das gefällt mir. 996 00:43:02,710 --> 00:43:10,220 Dollar sign-- OK werde ich erklären, was ich dabei in einem Moment, nachdem ich diese ausführen. 997 00:43:10,220 --> 00:43:11,670 Jedes Jahr. 998 00:43:11,670 --> 00:43:13,125 OK, hier gehen wir. 999 00:43:13,125 --> 00:43:15,750 Ich habe just-- und ich möchte nicht, an alle, die Telefonnummer zu zeigen, 1000 00:43:15,750 --> 00:43:17,740 aber Maya kann bestätigen, mit einem Kopfnicken, 1001 00:43:17,740 --> 00:43:20,800 , dass sie sieht, jeder ist Telefonnummer in der Klasse 1002 00:43:20,800 --> 00:43:26,750 dass ich gehe, um in zu kopieren ein Programm namens Google Mail. 1003 00:43:26,750 --> 00:43:30,860 Und wenn in Gmail, was wollen wir sagen? 1004 00:43:30,860 --> 00:43:32,137 Vermisse dich. 1005 00:43:32,137 --> 00:43:33,220 Liebe-- das ist nicht von mir. 1006 00:43:33,220 --> 00:43:35,230 Ich habe nicht einmal getroffen zu senden ist leer. 1007 00:43:35,230 --> 00:43:39,450 Lassen Sie uns also gehen Sie voran und tun Dies, wenn ich heranzoomen. 1008 00:43:39,450 --> 00:43:40,300 OK. 1009 00:43:40,300 --> 00:43:42,480 Also bin ich mit einem Programm namens Google Mail jetzt. 1010 00:43:42,480 --> 00:43:44,490 Wenn Maya, würden Sie gerne klicken Sie auf die Schaltfläche Senden, 1011 00:43:44,490 --> 00:43:46,970 wir simulieren, was das Code sollte getan haben. 1012 00:43:46,970 --> 00:43:54,630 1013 00:43:54,630 --> 00:43:55,254 >> Alles, was? 1014 00:43:55,254 --> 00:43:56,062 >> [BEEPS] 1015 00:43:56,062 --> 00:43:56,870 >> ZIELGRUPPE: Yep. 1016 00:43:56,870 --> 00:43:58,030 >> Sprecher 1: Ja? 1017 00:43:58,030 --> 00:43:59,210 Salvation? 1018 00:43:59,210 --> 00:44:00,427 >> ZIELGRUPPE: Yep. 1019 00:44:00,427 --> 00:44:01,260 Sprecher 1: Fräulein Sie. 1020 00:44:01,260 --> 00:44:02,718 Und ich werde zu senden, den Rest erledigen. 1021 00:44:02,718 --> 00:44:06,060 Ich schickte die Hälfte, weil ich nicht glaube, Gmail ließ diejenigen, durch zu gehen. 1022 00:44:06,060 --> 00:44:12,410 Also denken Sie daran, heute ist der Tag dass Sie gelernt, dass ich Google Mail verwenden. 1023 00:44:12,410 --> 00:44:14,977 1024 00:44:14,977 --> 00:44:15,810 Das war erschreckend. 1025 00:44:15,810 --> 00:44:17,140 Ein großer Beifall auf Maya. 1026 00:44:17,140 --> 00:44:18,980 Danke. 1027 00:44:18,980 --> 00:44:21,280 In Ordnung, so. 1028 00:44:21,280 --> 00:44:22,210 was 1029 00:44:22,210 --> 00:44:23,140 >> [BEEPS] 1030 00:44:23,140 --> 00:44:25,010 1031 00:44:25,010 --> 00:44:26,580 >> Wir haben ein paar Töne, ja? 1032 00:44:26,580 --> 00:44:27,080 Gut. 1033 00:44:27,080 --> 00:44:30,590 Jetzt werde ich zu 700 wirklich unglücklich E-Mails von Klassenkameraden zurück. 1034 00:44:30,590 --> 00:44:32,400 So zumindest sehen wir weiter wenn das war es wert. 1035 00:44:32,400 --> 00:44:33,300 Also, was ist schiefgelaufen? 1036 00:44:33,300 --> 00:44:35,300 Ich werde herausfinden, was ging falsch nach der Tat, 1037 00:44:35,300 --> 00:44:38,340 sondern nur schauen, wie einfach es war, dass in PHP zu tun. 1038 00:44:38,340 --> 00:44:44,598 Also, was können wir eigentlich jetzt das zu tun haben wir diese Ausdruckskraft PHP. 1039 00:44:44,598 --> 00:44:45,970 Das was-- das war schrecklich. 1040 00:44:45,970 --> 00:44:46,480 Gut. 1041 00:44:46,480 --> 00:44:48,430 Also das war, was sollte gegangen. 1042 00:44:48,430 --> 00:44:52,770 Dies wurde mir die Prüfung an diesem Morgen auf meinem Telefon, tatsächlichen Screenshot von meinem Handy. 1043 00:44:52,770 --> 00:44:56,180 >> Aber jetzt betrachten, warum lassen wir tatsächlich Einführung 1044 00:44:56,180 --> 00:44:57,840 all dieses Zeug in den ersten Platz. 1045 00:44:57,840 --> 00:45:01,625 Also das Ziel ist nicht, schreiben Sie diese Programme, 1046 00:45:01,625 --> 00:45:03,250 werden in der Befehlszeile geschrieben, nicht wahr? 1047 00:45:03,250 --> 00:45:05,000 So schrieb ich eine einfache hallo Programm schrieb ich 1048 00:45:05,000 --> 00:45:09,155 ein kleines Programm, conditionals tut, und verwendet eine Leseleitung und so weiter. 1049 00:45:09,155 --> 00:45:11,530 Und in der Theorie, ich schrieb ein Programm, das ausgesandt 1050 00:45:11,530 --> 00:45:14,290 800 SMS-Nachrichten, geben oder nehmen 800. 1051 00:45:14,290 --> 00:45:16,830 Und das Programm war alles noch laufen in der Befehlszeile. 1052 00:45:16,830 --> 00:45:18,538 Und das ist natürlich nicht die Bahn, oder? 1053 00:45:18,538 --> 00:45:22,160 Das Ziel ist nun, zu verwenden zu beginnen was ich behaupten, ist ein einfacher zu bedienen 1054 00:45:22,160 --> 00:45:24,720 Sprache, wage zu behaupten, eine mächtige Sprache in Bezug auf 1055 00:45:24,720 --> 00:45:27,104 der Features, kommen mit ihm zu starten 1056 00:45:27,104 --> 00:45:29,850 Schreiben von Code, der Web-Seiten generiert. 1057 00:45:29,850 --> 00:45:33,248 >> Also letztes Mal und in der vergangenen Woche, sprachen wir über HTTP und HTML. 1058 00:45:33,248 --> 00:45:36,350 Und was ist schön zu HTML ist, dass es nur reiner Text. 1059 00:45:36,350 --> 00:45:38,220 Und Text ist sicher etwas, dass Sie 1060 00:45:38,220 --> 00:45:42,040 zu drucken, indem sie buchstäblich den Aufruf der Druck f-Funktion oder die Druckfunktion. 1061 00:45:42,040 --> 00:45:46,160 Und in der Tat, das ist, was PHP ist jetzt gehen, damit wir zu tun. 1062 00:45:46,160 --> 00:45:48,610 So unter den Beispielen, die wir haben in der heutigen Quellcode, 1063 00:45:48,610 --> 00:45:51,610 zusätzlich zu einigen der Code daß ich da oben vor einem Augenblick, 1064 00:45:51,610 --> 00:45:55,440 Wir haben Programme wie dieses zum Beispiel. 1065 00:45:55,440 --> 00:45:58,760 Froshims oder Freshman Universitätssportarten, war eigentlich 1066 00:45:58,760 --> 00:46:01,500 eine der ersten extracurriculars Ich habe mich mit der vor Jahren beteiligt. 1067 00:46:01,500 --> 00:46:03,750 Und mein Mitbewohner und ich, mit einige andere Kinder auf dem Campus, 1068 00:46:03,750 --> 00:46:05,280 verwendet, um die froshims Programm auszuführen. 1069 00:46:05,280 --> 00:46:07,420 Ich bekomme jetzt meine SMS-Nachrichten. 1070 00:46:07,420 --> 00:46:14,030 >> Jetzt, so dass wir, wieder in den Tag, so dass diese 1996 war oder so gab es eine Internet, 1071 00:46:14,030 --> 00:46:17,395 aber es war kein process-- es keine Website für froshims. 1072 00:46:17,395 --> 00:46:20,270 Und so, wenn Sie, um sich für wollte Fußball oder Volleyball spielen oder was auch immer, 1073 00:46:20,270 --> 00:46:22,240 Sie füllen würde dieses Ding genannt ein Stück Papier, 1074 00:46:22,240 --> 00:46:25,060 und Sie würden in Harvard zu gehen Hof, und Sie können es gleiten würde 1075 00:46:25,060 --> 00:46:29,230 in den Briefschlitz des Proctor, der war in Wigglesworth, einem der Schlafsäle. 1076 00:46:29,230 --> 00:46:31,270 Und das waren Sie registrierte. 1077 00:46:31,270 --> 00:46:33,570 Und er oder sie dann wäre komponieren eine E-Mail an Sie 1078 00:46:33,570 --> 00:46:36,514 Hand, ähnlich wie ich habe gerade hier mit Maya, 1079 00:46:36,514 --> 00:46:38,930 und dann würden Sie bestätigt werden als, gewesen registriert. 1080 00:46:38,930 --> 00:46:40,840 >> Das war also wie niedrige hängenden Früchte, so zu sprechen. 1081 00:46:40,840 --> 00:46:42,930 Es war ziemlich blöd, wir waren mit Papier für diese. 1082 00:46:42,930 --> 00:46:45,024 Ich wollte, dass wir zu können um nur auf einer Seite zu gehen, 1083 00:46:45,024 --> 00:46:47,440 oder müssen die Studenten im ersten Jahr gehen auf eine Website, registrieren Sie sich für den Sport, 1084 00:46:47,440 --> 00:46:50,398 und einfach zu automatisieren eine Menge von diesem Zeug indem sie ihre Namen und E-Mails 1085 00:46:50,398 --> 00:46:51,850 usw. in eine Datenbank. 1086 00:46:51,850 --> 00:46:56,510 Und in der Tat ist die erste Version der Website, mit Super hässlich HTML, 1087 00:46:56,510 --> 00:46:58,195 könnte etwa so ausgesehen haben. 1088 00:46:58,195 --> 00:47:01,070 Es war eigentlich ironischerweise mehr peinliche Suche als dieser zurück 1089 00:47:01,070 --> 00:47:01,460 dann. 1090 00:47:01,460 --> 00:47:02,890 Aber ich habe eine Programmiersprache. 1091 00:47:02,890 --> 00:47:06,060 Nicht PHP, sondern nannte Perl, Das ist eine ältere Sprache, 1092 00:47:06,060 --> 00:47:07,251 aber im Geiste sehr ähnlich. 1093 00:47:07,251 --> 00:47:09,000 Und ich komplett lehrte es mich. 1094 00:47:09,000 --> 00:47:12,208 Und es dauerte eine Weile, um es herauszufinden, viele Fragen von Freunden. 1095 00:47:12,208 --> 00:47:14,080 Aber die Ideen gibt waren genau die gleichen. 1096 00:47:14,080 --> 00:47:18,050 Denn das, was PHP war wirklich entworfen für die ist nicht die Befehlszeile Zeug 1097 00:47:18,050 --> 00:47:20,450 wir gerade spielte mit, sondern für Web-Programmierung. 1098 00:47:20,450 --> 00:47:24,960 >> Es ist wirklich in seiner Funktion gebunden , um die Bahn folgt eingestellt. 1099 00:47:24,960 --> 00:47:26,370 Dies ist froshims. 1100 00:47:26,370 --> 00:47:28,720 Und wenn ich wollte, registrieren Sie sich in dieser Form, 1101 00:47:28,720 --> 00:47:30,930 das ist ziemlich hässlich, gewiß, aber lassen Sie mich gehen Sie vor 1102 00:47:30,930 --> 00:47:34,440 und seien Sie ein weniger bequem Studenten, und was auch immer Sport für Matthews, 1103 00:47:34,440 --> 00:47:35,630 klicken Sie auf Registrieren. 1104 00:47:35,630 --> 00:47:39,780 Was ich will, um in der Lage zu tun ist, werden Vorlage von Informationen aus einem Formular, 1105 00:47:39,780 --> 00:47:42,400 nicht auf die Google-Server wie wir haben das letzte Mal, komplett 1106 00:47:42,400 --> 00:47:47,100 betrügen, indem sie ihre Back-End, I möchte meine eigenen Backend-Code zu implementieren. 1107 00:47:47,100 --> 00:47:51,410 Was bedeutet, Schreib PHP Code, der eine URL lebt 1108 00:47:51,410 --> 00:47:54,180 dass die Formulardaten können vorgelegt werden. 1109 00:47:54,180 --> 00:47:57,510 >> Und dann Ihren Code, in PHP auf einem Server geschrieben, 1110 00:47:57,510 --> 00:47:59,400 kann dann auf die Benutzereingaben reagieren. 1111 00:47:59,400 --> 00:48:03,287 Wie sein Name oder Komfortniveau, oder einem Wohnheim, und dann tun Sie etwas mit ihm. 1112 00:48:03,287 --> 00:48:05,120 In diesem Fall, ich habe gerade dummer druckte es aus 1113 00:48:05,120 --> 00:48:06,750 als Text, das ist nicht alles, was hübsch. 1114 00:48:06,750 --> 00:48:09,590 Aber man konnte sicher vorstellen, wenn Sie HTML-Kenntnisse, 1115 00:48:09,590 --> 00:48:13,010 und Sie werden bald wissen, wie zu generieren HTML mit Druck f und drucken, 1116 00:48:13,010 --> 00:48:16,500 und ähnlichen Funktionen, können Sie sicher erzeugen ein hübscher Web-Seite, die sagt: 1117 00:48:16,500 --> 00:48:17,929 hey David, Sie sind jetzt angemeldet. 1118 00:48:17,929 --> 00:48:20,220 Sie sind ein weniger komfortabel Student aus Matthews, nicht wahr? 1119 00:48:20,220 --> 00:48:23,880 >> Sie können nur mit einem ganzen Bündel von% ses, oder die geschweiften Klammern und Dollar-Zeichen 1120 00:48:23,880 --> 00:48:27,750 Notation habe ich vor einem Augenblick, um erzeugen Text, der benutzerfreundlicher ist 1121 00:48:27,750 --> 00:48:28,567 als das. 1122 00:48:28,567 --> 00:48:30,150 Werfen wir also einen Blick auf diese eine Datei. 1123 00:48:30,150 --> 00:48:34,666 Froshim Nullpunkt PHP sieht wie folgt aus. 1124 00:48:34,666 --> 00:48:37,860 1125 00:48:37,860 --> 00:48:43,500 Als ich neu zu laden CS50 IDE, froshim Null sieht wie folgt aus. 1126 00:48:43,500 --> 00:48:45,700 Dies ist froshim Nullpunkt PHP. 1127 00:48:45,700 --> 00:48:47,730 Und was halten Sie von dieser Datei auf? 1128 00:48:47,730 --> 00:48:49,506 >> ZIELGRUPPE: [unverständlich] 1129 00:48:49,506 --> 00:48:50,922 Sprecher 1: Sorry, etwas lauter? 1130 00:48:50,922 --> 00:48:53,250 ZIELGRUPPE: [unverständlich] Es ist alles in HTML. 1131 00:48:53,250 --> 00:48:57,130 Und in der Tat ist es, weil Was ist interessant über PHP 1132 00:48:57,130 --> 00:48:58,880 ist, dass es konstruiert wurde zu sein, für eine bessere 1133 00:48:58,880 --> 00:49:02,110 oder zum Schlechten, vermischt mit HTML-Code. 1134 00:49:02,110 --> 00:49:05,850 Und in der Tat, auch wenn dies Datei froshim Nullpunkt PHP, 1135 00:49:05,850 --> 00:49:11,470 hat eine PHP Kommentar am Anfang von ihm, es ist alles nur HTML. 1136 00:49:11,470 --> 00:49:17,655 Aber im Gegensatz dazu, wenn ich öffnen, lassen Sie uns sagen wir, registrieren Nullpunkt PHP, die 1137 00:49:17,655 --> 00:49:19,550 nur hat einen großen Kommentar am Anfang. 1138 00:49:19,550 --> 00:49:26,500 Das sieht auch fast vollständig wie HTML, mit der Ausnahme, für was? 1139 00:49:26,500 --> 00:49:29,350 Linie, was, 21 sieht ein wenig seltsam. 1140 00:49:29,350 --> 00:49:32,739 >> Aber bemerken Ich Eingabe PHP Modus mit offener Halterung Fragezeichen PHP. 1141 00:49:32,739 --> 00:49:33,780 Dann habe ich ein paar Sachen habe. 1142 00:49:33,780 --> 00:49:36,724 Und dann am Ende dieser Leitung Ich habe fast, Fragezeichen PHP. 1143 00:49:36,724 --> 00:49:38,390 Und das ist das, was ich durch meine vermischten. 1144 00:49:38,390 --> 00:49:41,910 Sie können HTML zu schreiben, die Sie gerade möchte der Server auszuspucken. 1145 00:49:41,910 --> 00:49:45,090 Aber wenn Sie etwas tun wollen Dynamik teilweise durch die Seite, 1146 00:49:45,090 --> 00:49:47,699 wie setzen Sie meinen Namen oder Wohnheim oder Komfortniveau, 1147 00:49:47,699 --> 00:49:49,490 Ich kann eine Funktion zu verwenden wie Print R, das ist 1148 00:49:49,490 --> 00:49:52,492 drucken rekursive, das bedeutet nur, Drucken Sie diese Variable, formatieren 1149 00:49:52,492 --> 00:49:53,200 wie auch immer du willst. 1150 00:49:53,200 --> 00:49:55,880 Es ist wirklich nicht für menschliche Zwecke, es ist einfach 1151 00:49:55,880 --> 00:49:58,290 zum Debuggen oder diagnostische Zwecke. 1152 00:49:58,290 --> 00:49:59,460 Also das ist, wie ich das getan habe. 1153 00:49:59,460 --> 00:50:06,100 >> Wenn ich statt zu gehen froshims zwei dot PHP, feststellen, dass die Wirkung dieser Form 1154 00:50:06,100 --> 00:50:09,680 wird nicht als das eingetragene Nullpunkt PHP old-- die vorherige tatsächlich war. 1155 00:50:09,680 --> 00:50:11,222 Aber es ist registriert zwei dot PHP. 1156 00:50:11,222 --> 00:50:13,680 Also schauen wir uns an, wie diese eine verhält sich ein wenig anders. 1157 00:50:13,680 --> 00:50:15,140 Wenn ich in die Version zwei. 1158 00:50:15,140 --> 00:50:20,430 Wenn Sie hier, wenn ich mich registrieren, wie David, weniger komfortabel, aus einem Wohnheim des Mathews, 1159 00:50:20,430 --> 00:50:21,480 Neu registrieren. 1160 00:50:21,480 --> 00:50:23,770 Also dieser Zeit gesagt, Sie sind eingetragene, nicht wirklich. 1161 00:50:23,770 --> 00:50:25,370 Mal sehen, was ich hier habe. 1162 00:50:25,370 --> 00:50:29,760 Wenn ich mir Register zwei dot PHP hat diese etwas mehr PHP-Code. 1163 00:50:29,760 --> 00:50:35,410 Es ist ein wenig sauberer, auch wenn es noch wickelt ein wenig lang auf dieser Linie. 1164 00:50:35,410 --> 00:50:36,260 Beachten Sie hier. 1165 00:50:36,260 --> 00:50:40,300 Drucke ich meine HTML-Tag, mein Kopf-Tag, meine Titel-Tag, der Kopf, der Körper. 1166 00:50:40,300 --> 00:50:45,410 >> Und dann fange ich an zu sagen, Dinge wie PHP-Modus geben. 1167 00:50:45,410 --> 00:50:48,540 Und so, dass Tag, offene Bügel PHP-- Fragezeichen PHP sagt: 1168 00:50:48,540 --> 00:50:53,460 hey, Server, execute-- interpretieren die folgende Sachen wie PHP 1169 00:50:53,460 --> 00:50:55,030 bis Sie das Ende-Tag. 1170 00:50:55,030 --> 00:50:58,590 Und auch wenn Sie vielleicht nicht wissen, jeder andere PHP, als Sie bisher gesehen haben, 1171 00:50:58,590 --> 00:51:01,290 Sie Art von lesen es ist ziemlich intuitiv. 1172 00:51:01,290 --> 00:51:10,670 Wenn der Name leer ist oder Komfort leer ist, oder einem Wohnheim ist leer, was soll ich tun? 1173 00:51:10,670 --> 00:51:12,830 Was brauche ich, um den Benutzer zu sagen? 1174 00:51:12,830 --> 00:51:15,330 Sie müssen Ihren Namen, Komfort und Schlafsaal, und so weiter. 1175 00:51:15,330 --> 00:51:17,750 Else, ich sage du bist registriert, auch nicht wirklich. 1176 00:51:17,750 --> 00:51:19,190 >> Und das sage ich nicht wirklich weil es keine Datenbank. 1177 00:51:19,190 --> 00:51:20,200 Ich bin nichts mit den Daten zu tun. 1178 00:51:20,200 --> 00:51:22,408 Ich bin einfach nur wegzuwerfen zu Demonstrationszwecken. 1179 00:51:22,408 --> 00:51:24,320 Jetzt bin Art von skimped über die Leitung 22. 1180 00:51:24,320 --> 00:51:26,400 Es gibt mehrere Syntax da, aber Dollarzeichen 1181 00:51:26,400 --> 00:51:28,320 streichen Beitrag ist irgendwie interessant. 1182 00:51:28,320 --> 00:51:30,300 Und das ist, was ist schön zu PHP. 1183 00:51:30,300 --> 00:51:35,610 In PHP, haben Sie, was genannt werden ein paar Super globalen Variablen. 1184 00:51:35,610 --> 00:51:38,430 Sie sind Art von noch mehr wichtiger als globale Variablen. 1185 00:51:38,430 --> 00:51:41,370 Und diese, alle aktivierten als solche werden mit PHP. 1186 00:51:41,370 --> 00:51:44,550 Also, wenn Sie einen Server haben, das hat eine Web-Server installiert, wie Apache, 1187 00:51:44,550 --> 00:51:49,390 und Sie haben die Sprache zu installieren Unterstützung für PHP, ganz plötzlich sie 1188 00:51:49,390 --> 00:51:52,250 beginnen mit diesen Super- globale Variablen in Ihrem Code. 1189 00:51:52,250 --> 00:51:54,330 >> Und was ist schön zu PHP ist, dass, wenn Sie nur 1190 00:51:54,330 --> 00:51:57,540 Schreiben einer Datei, die in Punkt endet PHP, legte es auf einem Web-Server, 1191 00:51:57,540 --> 00:52:01,260 und dann können Sie eine Form zu unterbreiten über diese Klage-Tag und einer Form-Tag, 1192 00:52:01,260 --> 00:52:05,110 dass Maßnahmen Attribut in der Form-Tag, PHP und das Web 1193 00:52:05,110 --> 00:52:09,360 komplett herausfindet, wie zu greifen alle diese Schlüsselwertepaare aus 1194 00:52:09,360 --> 00:52:11,633 der URL wie Frage Zeichen q gleich Katzen, 1195 00:52:11,633 --> 00:52:14,782 es herauszufinden, wie man q und Katzen. 1196 00:52:14,782 --> 00:52:17,710 Wenn Sie ein Foto einreichen, oder einen Benutzernamen, oder ein Passwort, um wie Facebook, 1197 00:52:17,710 --> 00:52:21,360 PHP wird herausfinden, für Sie wobei all diese Daten ist. 1198 00:52:21,360 --> 00:52:23,821 Und es wird nur die Hand Sie ein assoziatives Array 1199 00:52:23,821 --> 00:52:27,560 genannt Dollarzeichen Unterstrich Post, oder Dollar-Zeichen zu unterstreichen zu bekommen, 1200 00:52:27,560 --> 00:52:30,590 je nachdem, ob Sie mit GET oder POST Einreichungen. 1201 00:52:30,590 --> 00:52:32,950 Und es wird nur die Hand Sie ein super globale Variable, 1202 00:52:32,950 --> 00:52:37,254 so dass, wenn Sie auf den Namen bekommen dass der Benutzer über die Web eingereicht 1203 00:52:37,254 --> 00:52:41,894 Form, die Sie buchstäblich nur sagen, den Namen der Super globale Variable, zitat, 1204 00:52:41,894 --> 00:52:43,380 unquote, Namen. 1205 00:52:43,380 --> 00:52:46,144 Und Zitat, unquote Komfort, und Zitat, unquote Wohnheim. 1206 00:52:46,144 --> 00:52:48,810 Und wir werden in der Lage sein zu tun Dies und noch viel mehr mit PHP. 1207 00:52:48,810 --> 00:52:50,540 Und obwohl dies ein Wirbelwind Blick darauf, 1208 00:52:50,540 --> 00:52:51,980 wir tauchen viel mehr nächste Woche. 1209 00:52:51,980 --> 00:52:54,247 Wir werden eine Datenbank einzuführen so dass Sie wirklich sind 1210 00:52:54,247 --> 00:52:56,816 geht die Umsetzung zu starten Ihre eigene E-Handel based-- 1211 00:52:56,816 --> 00:52:59,150 wie eine Website in der nur eine Woche Zeit. 1212 00:52:59,150 --> 00:53:02,750 Also werden wir Sie das nächste Mal zu sehen, und hoffen, dass Sie die Textnachrichten einsehen. 1213 00:53:02,750 --> 00:53:05,450 Tschüs. 1214 00:53:05,450 --> 00:53:06,950 >> [Musikwiedergabe] 1215 00:53:06,950 --> 00:53:11,450 1216 00:53:11,450 --> 00:53:12,950 >> [DOOR OPENING] 1217 00:53:12,950 --> 00:53:14,475 >> Sprecher 2: Hey. 1218 00:53:14,475 --> 00:53:15,350 SPEAKER 3: Was ist los? 1219 00:53:15,350 --> 00:53:17,750 Sprecher 2: Was machst du? 1220 00:53:17,750 --> 00:53:19,850 SPEAKER 3: Arbeiten an einem Problem Set. 1221 00:53:19,850 --> 00:53:21,050 Sprecher 2: Nice. 1222 00:53:21,050 --> 00:53:22,550 High Five. 1223 00:53:22,550 --> 00:53:23,150 >> [HIGH FIVE] 1224 00:53:23,150 --> 00:53:25,584 >> Was sind-- äh, was machst du denn hier? 1225 00:53:25,584 --> 00:53:26,750 SPEAKER 3: Just hanging out. 1226 00:53:26,750 --> 00:53:28,134 Wir kommen gerade aus dem Fitness-Studio zurück. 1227 00:53:28,134 --> 00:53:30,050 Ich konnte nicht umhin, bemerken, wenn wir Hoch fived, 1228 00:53:30,050 --> 00:53:32,450 dass Sie ziemlich raue Hände. 1229 00:53:32,450 --> 00:53:33,950 Gehst du ins Fitnessstudio? 1230 00:53:33,950 --> 00:53:35,150 >> Sprecher 2: No. 1231 00:53:35,150 --> 00:53:36,650 Nein. 1232 00:53:36,650 --> 00:53:38,450 >> SPEAKER 3: Dude, du siehst ziemlich groß. 1233 00:53:38,450 --> 00:53:45,950 Welches ist schlecht, weil jeder weiß, 8-Ball ist der große Mann auf dem Campus. 1234 00:53:45,950 --> 00:53:48,050 High Five. 1235 00:53:48,050 --> 00:53:49,550 >> Sprecher 2: Äh, nein. 1236 00:53:49,550 --> 00:53:50,450 Nein, ich glaube, ich bin gut. 1237 00:53:50,450 --> 00:53:52,300 Ich glaube, ich bin gut. 1238 00:53:52,300 --> 00:53:54,097