[Powered by Google Translate] [PHP Web Development] [Tommy MacWilliam] [Dette er CS50.] [CS50.TV] I denne video, vil vi lære at bruge PHP for webudvikling. PHP er et scriptsprog, der kan bruges til at implementere hjemmesider på en webserver. En webserver er hovedsageligt en maskine dedikeret til at levere indhold der kan tilgås via internettet. Når du navigerer til en webside som Facebook.com / home.php koden i fil kaldet home.php der bor på en Facebook-webserver et eller andet sted vil blive udført på den pågældende server. Denne kode vil sandsynligvis generere nogle output som igen vil blive sendt fra serveren til din webbrowser. Vi vil bruge CS50 apparat som en webserver. Din maskine vil sandsynligvis ikke være nær så kraftig som maskinerne i en Facebook datacenter, men du har ikke noget problem at bruge det til webudvikling. Når vi navigere til en webadresse som http://localhost/hello.php vi konfigurere apparatet via et program kaldet Apache HTTP-serveren at søge efter en fil kaldet hello.php inde i hjemmet / jharvard / vhosts / localhosts / html som standard. Hvis filen eksisterer så Apache vil bruge PHP tolk at udføre PHP kode i hello.php. Hvis denne fil ikke findes, så Apache vil kaste et ikke fundet fejl eller en 404 fejl, som du sikkert har set, mens du browser på internettet. Lad os tage et kig på hello.php. Vi kan se her, at hello.php genererer et signal linje af produktionen. Når vi kørte hello.php på kommandolinjen via php hello.php at produktionen blev trykt til terminalen. Nu, når vi adgang til denne fil via en URL i webbrowseren sin produktion vil blive sendt til webbrowseren, så på vej til den URL, http://localhost/hello.php, vi kan se output i vores web browser. Lad os prøve at tilføje en anden printf til vores hej verden program. Okay, lad os gå tilbage til webbrowseren og se, hvad vi har. Interessant. Snarere end at udskrive en anden linje på sin egen linje, som du ville have set i terminalen, det ligner det fik smushed på samme linje som den anden printf, så du skal måske nye linjer ikke arbejde i PHP. Ikke helt. Husk, at HTML typisk bruges til at oprette websider der kan vises af webbrowsere. Ikke alene er den streng, hej fra php ikke gyldig HTML, men minder om, at vi ikke kan bruge \ n tegn i HTML at skabe et linjeskift. I stedet for blot at udsende en streng lad os output gyldig HTML. Ved hjælp af stk tags hver af vores printf opkald vil blive vist på sin egen linje, så nu når vi besøger URL peger på valid.php http://localhost/valid.php ser vi det output, som vi leder efter. Hvis vi nu se kilden til denne side Vi kan se, at vi nu kigger på gyldig HTML, som vi har skabt fra PHP. Sætte alle vores HTML inde printf opkald er naturligvis kommer til at blive virkelig irriterende. Heldigvis kan vi nemt blande HTML og PHP i det samme. php fil. Husk, at alle vores PHP kode skal vedlægges indenfor . Alt, hvad der ikke er lukket inden for disse afgrænsere vil simpelthen blive sendt som output til browseren snarere end at blive udført. Det betyder, at vi kan gøre noget som dette. Vi kan simpelthen skrive HTML inde i vores. Php fil og derefter indsætte PHP blokke, hvor vi vil gerne have noget php kode, der skal udføres. Her definerer vi nogle variabler i toppen af ​​filen, og senere vi printe dem ud inde i vores HTML. Nu, hvis vi besøger denne webadresse, http://localhost/mixed.php vi kan se vores evalueret PHP inde i vores HTML. Lad os nu tage et kig på, hvordan vi kan overføre data blandt vores forskellige PHP-sider. Snarere end at sige kan vi blot sige . Lad os nu tage et kig på, hvordan vi kan overføre data blandt vores forskellige PHP-sider. En måde, vi kan gøre det er at indkode oplysninger i webadressen på en side. Når du browser på internettet, du måske har bemærket, at nogle webadresser indeholde en? efterfulgt af en streng, der indeholder ampersands og lighedstegn. Denne del af URL'en er kendt som søgestrengen, og dette giver dig mulighed for effektivt at passere argumenter til din PHP script. Strengen forespørgsel består af centrale værdi par, ligesom en hash tabel. Et lighedstegn adskiller en nøgle og dens tilsvarende værdi mens-tegn adskille par. En URL-adresse, der ligner http://localhost/get.php?foo=bar&baz=qux har 2 centrale værdi par i søgestrengen. Nøglen foo kort til den værdi, bar, og nøglen baz kort til værdien QUX. Vi kan nemt få adgang til disse centrale værdipar hjælp af en speciel variabel i PHP, $ _GET. $ _GET Er et associativt array der udfyldes automatisk med forespørgsel strengdata. Det betyder, at i betragtning af denne webadresse $ _GET ["foo"] vil være lig med strengen bar. Lad os tage et kig på get.php at se $ _GET i aktion. Her bruger vi en funktion kaldet var_dump, som når det gives en matrix eller anden variabel vil printe det ud for os. Nu, hvis vi simpelthen adgang http://localhost/get.php så vil vi se en tom matrix, fordi vi ikke har givet en query string. Hvis vi giver en query string via http://localhost/get.php?foo=bar&baz=qux så kan vi se, at $ _GET variabel vil indeholde søgestrengen vigtigste værdi par. Men hvad nu, hvis vi ikke ønsker at sætte vores data i webadressen på en side? Ved store mængder af data, kan dette resultere i nogle ret grimme URL'er der kommer til at gøre vores skinnende website ser halt. Vi kan i stedet sætte søgestrengen i kroppen af HTTP-anmodninger snarere end anmodningen URL. Så kan vi bruge PHP er $ _POST variabel at få adgang til de centrale værdi par. En måde at gøre dette på er via en HTML-formular. Her har vi en simpel HTML-formular. Bemærk her, at den metode, egenskab ved denne formular er post. Det fortæller browseren at sætte formularens vigtigste værdi par i kroppen af ​​anmodningen i stedet for URL. Hvis vi skulle bruge værdien får for denne attribut så formularens vigtigste værdi par i stedet ville gå ind i søgestrengen, så vi kunne få adgang til dem via $ _GET igen. Handlingen egenskab af formen fortæller browseren, hvor man kan sende data. Her vores 2 input elementer har navn attributter. Værdien af ​​navnet attributter vil tjene som nøgler til vores data, og værdierne af teksten input vil blive værdier af disse nøgler. Lad os nu tage et kig på post.php, den fil, denne formular er at underkaste sig. Ligesom vi gjorde før, vi blot at vise indholdet af $ _POST variabel. Lad os gå til formularen med http://localhost/form.php. Nu når vi indsender formularen kan vi se, at data fra form.php videregives til post.php uden at tilføje en query string i URL. Nu har vi set 2 forskellige måder at videregive data mellem PHP-sider, få og sende. I vores eksempel, vi brugte 2 forskellige typer af HTTP-anmodninger. Som man kunne forvente, var en get anmodning bruges, når vi befolkede $ _GET Fra webadressen, og en post anmodning blev brugt når vi befolkede $ _POST. I at designe dit web apps, det er en god tommelfingerregel at bruge får anmodninger når din app vil kun læse data, og post anmoder når din app vil skrive data. For eksempel vil en søgning læse data fra din app, så en get anmodning giver mening. På den anden side, vil din app skrive data via noget som en tilmeldingsblanket, så et indlæg anmodning ville give mere mening, og det er en oversigt over nogle af de teknikker, vi vil bruge i CS50 at oprette hjemmesider med PHP. Mit navn er Tommy, og det er CS50. [CS50.TV]