DOUG LLOYD: Also in unserem Video-on-PHP-Syntax, wir sprachen viel darüber, wie PHP können in der Befehlszeile verwendet werden Programme in einer Art und Weise ausgeführt, dass wir sind ziemlich vertraut mit aus C Aber wie ich auch erwähnt, in diesem Video, PHP wurde ursprünglich entwickelt implementieren Web-Programmierung, Websites. Und so in diesem Video sind wir gehen, um darüber, wie wir sprechen Verwendung von PHP in der Web-Entwicklung Kontext. Wir wissen schon, von unsere Video-on-HTML, dass Websites integriert sind aus einer Reihe von HTML-Tags dass semantisch definieren die Struktur einer Webseite. Aber Websites, die sind mit reinem HTML gebaut leiden unter einer sehr, sehr ernste Einschränkung. Und um diese Einschränkung zu veranschaulichen, Betrachten wir das folgende. So, jetzt möchte ich eine Web-Seite zu bauen dass immer dann, wenn der Benutzer besucht sie, es gibt mir die aktuellen Zeit in Cambridge, Mass., Anzeige es auf die neueste Minute. Wenn ich machte dieses Recht jetzt, Ich könnte so etwas wie dies zu sagen. Aktuelle Zeit in Cambridge-- so habe ich HTML-Tags, Kopf-Tags, Titel-Tags, Körper tags-- die aktuelle Zeit in Cambridge ist 14.08 Uhr, Ausdrucken Militärzeit. Was passiert, wenn es ist jetzt 02.09 Uhr, 14.09 Uhr? Bisher gut mit HTML, ich habe zu gehen und ändern Sie ihn auf 14.09. Und dann eine Minute später Ich muss es wieder ändern. Und dann eine Minute später Ich muss es wieder ändern. Und wie Sie sich vorstellen können, ist, dass wahrscheinlich der schlimmste Job überhaupt. Sie sind der Webmaster für eine Web-Seite, und jede Minute, 24 Stunden am Tag, Sie die aktuelle Zeit aktualisieren müssen manuellen Öffnen time.html und Ändern nur, dass Code-Snippet, um das sagen, aktuelle Zeit in Stunden und Minuten. Das ist wahrscheinlich nicht sehr guter Umgang mit unseren Ressourcen, Mensch und Rechen. Websites, die alle HTML sind sind völlig statisch. Die einzige Möglichkeit, zu aktualisieren können Inhalte, wie wir gerade gesehen haben, ist für diejenigen, Quelle manuell öffnen Dateien, bearbeiten und speichern. Und dann, wenn der Benutzer aktualisiert die Seite, oder besucht die Seite zum ersten Zeit, werden sie die neuesten Inhalte zu erhalten. Aber nur, weil wir es manuell bearbeitet. Wenn wir beginnen, einige PHP dort zu mischen, unseren Code bekommen kann viel flexibler. Und wir können einen Weg für unsere Seiten haben dynamisch zu sein, oder zu aktualisieren, selbst, ohne unsere armen erfordern Webmaster im vorherigen Beispiel um manuell aktualisieren Dinge. Sie können sie automatisch zu tun. Wir haben nicht zu intervenieren. Wir können etwas Schlaf zu bekommen. Das ist wahrscheinlich eine gute Sache, wenn Sie tun eine Menge von Web-Programmierung. So in CS50 IDE, laufen wir ein Web-Server Apache genannt. Es ist eine sehr häufig verwendete, Open-Source-Web-Server-System. Dieses System hat den Kapazität zu interpretieren PHP, die gehen, sinnvoll, wenn zu sein Sie beliebige PHP-Programmierung zu tun. Und in CS50 IDE, einen Befehl müssen wir Dieses sehr einfach zu tun, um sicherzustellen, apache50 starten. Und dann, dass Schrägstrich Pfad, Schrägstrich an, Schrägstrich dir, das ist nur eine wirklich gemeinsame Wege anzeigt, was Sie hier festgelegt haben ist ein Pfad zu einer bestimmten Verzeichnis, das Sie wollen die Wurzel sein Website oder die Root-Seite, oder den Ordner, aus dem Sie Ihre Web-Server wird gestartet, um Dateien zu prüfen und zu dienen sie bis zum Kunden, die sie verlangen. Lassen Sie uns also über Pop bis CS50 IDE, nur um zeigen Ihnen, wirklich schnell, wie das funktioniert. Also hier in CS50 IDE, ich bin in einer Verzeichnis namens Week Null Neun. Und ich habe two-- Ich habe ausgeführt ein LS-Befehl gerade oben, um Ihnen zu zeigen, dass ich zwei Verzeichnisse in hier, PHP, dem der Satz von Dateien, die ich früher in ist die PHP-Syntax-Video, und dann PHP-Web, dem der Satz von Dateien ist, dass ich möchte in diesem Video zu verwenden. Und ich möchte anfangen ein Web-Server-Instanz mit dem Inhalt der PHP-Web-Ordner da die Dateien werden bis serviert. Also, was soll ich nur tun? Ich werde apache50 Raum geben beginnen, Raum PHP, Web-Bindestrich. Das ist der Pfad zum Verzeichnis von wo ich gerade bin. Dann traf ich ein. Es geht um eine zu tun wenig Sachen hier. Und dann, es wird sagen: Apache wurde erfolgreich gestartet. Ihre Website ist ab sofort verfügbar und at-- dann gibt es die URL für die Website. Also, was soll ich nur tun? Ich werde schnell kopieren diese. Und ich werde up-- zu öffnen und Ich werde verkleinern etwas hier-- Ich werde eröffnen ein neuer Tab in Chrome. Und ich werde diese URL zu besuchen. Ich werde drücken Sie Enter. Es wird geladen. Und ich werde wieder zu verkleinern. Und wir hier sehen ist die Inhalt meiner PHP-Web-Verzeichnis. So, jetzt, was ist im Grunde passiert ist hier, meine Instanz CS50 IDE dient diese Dateien zu jeder, der sie anfordert. Und im Laufe Dieses Video, werden wir von sortieren einen Blick auf ein Bündel von diesen verschiedene Dateien im Kontext. Um zu testen, dass Ihre Apache Server funktioniert, die in der Regel geht der Fall in CS50 IDE ist, aber wenn Sie dies im Allgemeinen zu tun, und Sie den Aufbau Ihrer eigenen Web starten Server, es gibt eine wirklich häufigste Art von Analog, "Hallo Welt", die in der Regel ist PHP-Web-Entwicklung verwendet. Es ist, eine Datei bestehend aus gerade diesem code-- ein PHP-Trennzeichen mit PHP Info-Set, Klammern, Semikolon dazwischen. Welches ist im Grunde eine Sonder PHP-Funktion, die Ihnen sagt Welche Version von PHP ausgeführt werden. So in CS50 IDE habe ich die Datei zur Verfügung nur um Ihnen zu zeigen, was das aussehen würde. So sehe ich auf meinen Zeige von meinem PHP-Instanz. Meine Apache-Instanz läuft der Inhalt der PHP-Web. Und ich habe eine Datei hier info.php genannt. Ich werde Sie darauf, zu verkleinern. Dies ist, was du gehst um zu sehen, ziemlich viel. Dies ist nur sagen mir, dass meinem Apache-Server funktioniert. Und dies ist offensichtlich das PHP-Version aus, die ich laufen. Das ist mein Analog-zu "Hallo Welt." Ich weiß also, die Dinge sind in Betrieb. So sind wir gut zu gehen. Wir können von hier gehen. Also lassen Sie uns erneut, dass Zeit Beispiel waren wir im Gespräch mit unseren armen Webmaster , die um die Seite ständig zu aktualisieren hatten. Dies könnte eine Lösung für, wie sein Ich würde die Dinge umsetzen so dass der Webmaster nicht haben zu halten Aktualisierung der Zeit. Es wäre nur eine Art geschieht automatisch. Die unten unten, die HTML, ist es ziemlich ähnlich, mit einer Ausnahme. Aber hier habe ich einige PHP an der Spitze stand. Ich habe, offenbar, nannte diese Funktion date_default_timezone_set. Und wir reden nicht über alle diese Funktionen in CS50, weil PHP ist wahrscheinlich Zehntausende. Das könnte ein bisschen wie ein sein übertrieben, aber es könnte nicht sein. Es ist eine Menge von Funktionen eingebaut habe. Und so ist dies eine Funktion offenbar setzt meine Zeitzone wie US / Eastern, das ist die Zeitzone, die ich derzeit bei der Herstellung dieses Video. Dann habe ich einen Anruf zu machen, Funktion mit dem Namen, Datum. Und es scheint, ich bin die Speicherung der HIS der so genannten, Zeit. Also, was ist denn hier los? Nun, im Grunde, was ist passiert ist, ich mache einen Anruf bis zu einem gewissen Server, der gehen wird sagen Sie mir, was die Zeit noch ist. Und ich Umwandlung in ein Format, Stunden, Minuten, Sekunden. Und der Grund, seine Hauptstadt ist dieses H wird mich 24 Stunden Zeit 12 zu geben, nicht Stunde Zeit, die Kleinbuchstaben h wäre. Und ich bin einfach nur zu speichern, dass in einer Variable namens, Zeit. So dass der zweite Zeile PHP Dort wird der Aufruf der Funktion, Bisher ist nur immer einige String, der ist werde mir den Tag zu geben, und die Zeit und ein paar andere Informationen. Und das erste Argument gibt, dass HIS, Nur Extrahieren der wichtigste Teil dass ich kümmern uns für dieses Beispiel, Das ist die Stunde, Minute und Sekunde. Das ist also der alles, was vor sich geht. Also habe ich zu speichern, dass in einer Variablen $ Zeit. Und dann hinunter auf die ganz unten da, ich haben, dass eine Abkürzung für Ausdrucken der aktuellen Zeit. Also ich werde einfach zu drucken was die aktuelle Zeit. Werfen wir also einen Blick auf diese in CS50 IDE und sehen, wie wir jetzt sind Spar, dass Webmaster eine Menge Ärger. In Ordnung, so hier bin ich wieder zurück auf das Root-Verzeichnis meine Apache-Instanz. Und ich habe eine Datei hier genannt time.php. Ich werde einfach auf, dass klicken. Und ich werde nach oben, denn wir in ziemlich weit herausgezoomt. Die aktuelle Uhrzeit ist 14.20.34. So mache ich es Stunden, Minuten und Sekunden. Und ich kann das erfrischen Seite und neue Zeit. --41. Ich werde die Seite zu aktualisieren und neue Zeit, 44, 46, 47. Also, ich bin eindeutig nicht etwas zu ändern mir. Ich bin hier die Seite zu aktualisieren. So kann ich nicht wieder dort zu bearbeiten. Und ich verspreche Ihnen, ich nicht keine Verbündeten die Bearbeitung der Datei sind in meinem Namen an der Seite. Ich bin einfach nur mit, dass PHP-Funktion, Zeit, um die Zeit für mich zu generieren automatisch. So dass selbst wenn ich schlafe, und meine Web-Server läuft, der Benutzer, der Besuche, die Seite ist noch gehen, um die aktuelle Uhrzeit genau das bekommen. Also das ist ziemlich gut. Ich habe meine Website dynamischer gemacht mit nicht zu viel PHP-Code. Es war nur zwei Zeilen Code und dann ein bisschen von einer print-Anweisung. Und schon habe ich ein viel dynamischer Website als die ersten Beispiel haben wir gesehen am Anfang des Videos. Also, erinnern von der Video-on-PHP-Syntax dass, wenn der PHP-Interpreter läuft unser Programm, alles ignoriert das ist nicht das Innere des PHP-Trennzeichen, Spucken Sie es aus. In diesem Beispiel, was die Sache dass es spuckt war HTML. Und das bedeutet, kann ich jetzt setzen HTML und PHP zusammen. Da der Interpreter nur ignorieren Sie die HTML und buchstäblich auszugeben. Das ist gut, nicht wahr? Weil vermutlich am Ende des Tages, Ich würde meine Website zu mögen HTML aufgebaut sein. So dass jeder Web-Browser interpretieren kann , oder zu verstehen, die HTML auf der Seite und machen es als etwas, das wir kann tatsächlich als Menschen zu verstehen. Und ich kann nur mit PHP für die Teile von meiner Seite die verlangen, Dynamik, die mich erfordern die Dinge, die ständig zu aktualisieren. Die statische Information können die gleichen bleiben. OK, so ist das in Ordnung. Aber warum sollte ich das tun? Warum sollte ich HTML und PHP mischen? Ich habe gerade zu drucken konnten alle HTML, mit der PHP-Druckfunktion. Warum bin ich nicht zu tun, dass? Denken Sie darüber für eine Sekunde. Warum, wenn ich nur drucken konnte out-- I könnte Zeilen PHP, die einfach sagen haben, Druck HTML-Tag, Druckkopf. Warum bin ich nicht zu tun, dass? Warum bin ich das Mischen des PHP und HTML? Nun, wenn Sie denken, darüber für eine Sekunde. PHP hat der Dolmetscher zu interpretieren, was es sieht. Und so ist es zu haben, um eine Codezeile auszuführen. Drucken Sie HTML. Drucken Sie offenen Kopf-Tag. Drucken Sie offene Titel-Tag. Es wird zu haben, auszuführen und zu interpretieren, dass jeder einzelne Schritt des Weges. Warum nicht einfach lassen Sie die Dolmetscher nur beschönigen Dinge, die es nicht versteht, und tun es automatisch? Es wird mir eine Menge Zeit zu sparen zu meinem HTML und meine PHP zusammen mischen. Und damit ist, warum wir es nicht tun einfach nur offene PHP Trennzeichen und dann gerade aus der gesamten drucken Inhalt unserer Seite als ein riesiger PHP rufen Sie an die Funktion, Drucken und anschließend close PHP Trennzeichen und wir sind fertig. Also das ist, warum wir mischen sie zusammen. Bisher haben wir nicht zu viel ersichtlich ein Unterschied zu allgemeinen PHP-Syntax. Es ist ziemlich einfach. Wir haben bereits gesehen, die Fragezeichen, gleich. Wir sahen ein paar neue Funktionsaufrufe, aber nichts wirklich Besonderes los. Lassen Sie uns vielleicht Dinge machen ein wenig schicker. Was, wenn wir Informationen weitergeben wollen zwischen verschiedenen PHP-Dateien, so dass vielleicht kann der Benutzer Informationen vorlegen zu mir. Und dann, ich könnte etwas tun, damit auf einer anderen Seite. So hat die Unterstützung für PHP so genannte Super-Welt Variablen, die ziemlich genial klingt. Sie sind wirklich einfach Riesen assoziativen Arrays dass zur Verwirklichung dieses Funktionalität der Weitergabe Informationen zwischen den PHP-Dateien, beruhen auf unseren Web-Server vorhanden sind. Die erste dieser Super Globals heißt $ _GET. Und es ist wahrscheinlich die einfachsten zu verstehen. Was passiert mit $ _GET? Nun, im Grunde ist der Benutzer gehen, um zusätzliche Informationen geben am Ende der URLs. Und was sie geben, unter der Annahme, es auf eine bestimmte Weise formatiert genannt Query-String, der gerade ist eine Reihe von Schlüssel-Wert-Paare getrennt von Et-Zeichen. Diese Schlüssel-Wert-Paare werden in einem $ _GET assoziatives Array gespeichert. Und aus unserem Video-on- PHP-Syntax, wir wissen, wie man mit der Arbeit assoziative Arrays bereits. So, hier ist ein Beispiel dafür, einige PHP, wo vielleicht bin ich Extrahieren aller Schlüsselwertpaare dass der das in der URL des Benutzers. So habe ich meine Öffnen PHP Trennzeichen. Ich habe eine foreach-Schleife. Ich bin über den Super-Iteration Globale Array namens $ _GET. Und ich möchte in der Lage, zu beziehen sowohl für die Schlüssel und Wert. Und ich bin einfach nur auszudrucken heraus, die jeweils auf scheinbar seinen eigenen Absatz-Tag hier. Ich Ausdrucken einige HTML und Interpolieren der Werte der Schlüssel und Wert dieser Aussage. Werfen wir also einen Blick auf, wie diese tatsächlich auf unserem IDE arbeiten. Und vielleicht hilft veranschaulichen ein bisschen von dem, was zu bekommen ist eigentlich tun. Also bin ich wieder hier in meinem Web-Root. Und ich werde in ein heran wenig, um Ihnen zu zeigen, dass ich eine Datei mit dem Namen, get1.php. Lassen Sie uns also auf get1.php klicken. Und ich bin keine Inhalte nicht zu sehen. Das ist seltsam, nicht wahr? Nun, nicht wirklich wirklich. Weil ich nicht liefern alles in der URL. Ich werde get1.php, aber ich brachte keine Schlüsselwertpaare liefern als Teil meiner Query-String. So fügen wir eine Abfragezeichenfolge und sehen, was diese Datei zu tun. Um eine Query-String Sie beginnen geben Sie einfach Fragezeichen. Dann werde ich vielleicht sagen, name = Doug & year = 2015. Und dann werde ich drücken Sie Enter. Nun beachtet, was passiert. Ich bin immer noch in get1.php. Aber jetzt habe ich zugeführt Schlüssel-Wert-Paare, und ich bin Drucken Sie sie auf eigene Faust paragraph-- Namen, Doug-- Jahr 2015. Das ist genau der Code, den wir gerade sah auf dem Objektträger vor einem Augenblick. Und wenn ich vielleicht hinzufügen, ein weiterer Schlüssel-Wert-Paar, & class = CS50. Jetzt habe ich eine weitere Schlüsselwert Paar, das ausgedruckt ist wenn ich die URL erneut zu überdenken. Nun ist dies vielleicht auch nicht schrecklich gut formatiert. So habe ich eine andere Version von get.php. Es ist get2.php. Der Unterschied in dieser man ich CSS-Datei, und es formatiert Dinge ein wenig mehr schön für mich. Es ist vielleicht nicht die meisten schöne CSS in der Welt. Aber es ist nur ein weiterer Weg, es zu tun. So kann ich immer noch Zugang zu erhalten auf meine Variablen mit $ _GET. Und in diesem Fall, ich bin nur irgendwie so dass die CSS ein wenig mehr Phantasie. Und wenn wir über Pop bis hin zu meine IDE für eine zweite, Ich werde dich in meinem PHP-Web zeigen Verzeichnis hier get2.php. Wir werden es hier eröffnen, einige HTML. Anscheinend bin ich, dass die Verknüpfung CSS-Datei ich rede. Ich öffne eine Tabelle Tag. Und dann ist hier meine foreach-Schleife. Hier ist das, was ich zeigte auf der Folie vor. Der einzige Unterschied ist, I haben diese Schlüssel und Wert CSS Styling, das ich bin, es zu Anwendung. Aber das ist alles, was ich tue, ist, ich bin Iteration über $ _GET, um alle zu erhalten der Schlüsselwert-Paaren. Und ich bin dem Drucken aus, wie die Tabelle. Und es scheint, ich bin der Formatierung der Schlüssel in einer Art und Weise, mit der