1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [PHP Web Development] 2 00:00:03,000 --> 00:00:05,000 [Tommy MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [Dette er CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> I denne video, vil vi lære at bruge PHP for webudvikling. 5 00:00:11,000 --> 00:00:14,000 PHP er et scriptsprog, der kan bruges til at implementere 6 00:00:14,000 --> 00:00:17,000 hjemmesider på en webserver. 7 00:00:17,000 --> 00:00:21,000 En webserver er hovedsageligt en maskine dedikeret til at levere indhold 8 00:00:21,000 --> 00:00:24,000 der kan tilgås via internettet. 9 00:00:24,000 --> 00:00:30,000 Når du navigerer til en webside som Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 koden i fil kaldet home.php der bor på en Facebook-webserver et eller andet sted 11 00:00:35,000 --> 00:00:38,000 vil blive udført på den pågældende server. 12 00:00:38,000 --> 00:00:41,000 Denne kode vil sandsynligvis generere nogle output 13 00:00:41,000 --> 00:00:43,000 som igen vil blive sendt fra serveren 14 00:00:43,000 --> 00:00:45,000 til din webbrowser. 15 00:00:45,000 --> 00:00:49,000 Vi vil bruge CS50 apparat som en webserver. 16 00:00:49,000 --> 00:00:51,000 Din maskine vil sandsynligvis ikke være nær så kraftig som maskinerne 17 00:00:51,000 --> 00:00:57,000 i en Facebook datacenter, men du har ikke noget problem at bruge det til webudvikling. 18 00:00:57,000 --> 00:01:05,000 >> Når vi navigere til en webadresse som http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 vi konfigurere apparatet via et program kaldet Apache HTTP-serveren 20 00:01:10,000 --> 00:01:19,000 at søge efter en fil kaldet hello.php inde i hjemmet / jharvard / vhosts / localhosts / html som standard. 21 00:01:19,000 --> 00:01:23,000 Hvis filen eksisterer så Apache vil bruge PHP tolk 22 00:01:23,000 --> 00:01:27,000 at udføre PHP kode i hello.php. 23 00:01:27,000 --> 00:01:31,000 Hvis denne fil ikke findes, så Apache vil kaste et ikke fundet fejl 24 00:01:31,000 --> 00:01:36,000 eller en 404 fejl, som du sikkert har set, mens du browser på internettet. 25 00:01:36,000 --> 00:01:40,000 >> Lad os tage et kig på hello.php. 26 00:01:40,000 --> 00:01:45,000 Vi kan se her, at hello.php genererer et signal linje af produktionen. 27 00:01:45,000 --> 00:01:51,000 Når vi kørte hello.php på kommandolinjen via php hello.php 28 00:01:51,000 --> 00:01:54,000 at produktionen blev trykt til terminalen. 29 00:01:54,000 --> 00:01:58,000 Nu, når vi adgang til denne fil via en URL i webbrowseren 30 00:01:58,000 --> 00:02:01,000 sin produktion vil blive sendt til webbrowseren, 31 00:02:01,000 --> 00:02:09,000 så på vej til den URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 vi kan se output i vores web browser. 33 00:02:12,000 --> 00:02:17,000 >> Lad os prøve at tilføje en anden printf til vores hej verden program. 34 00:02:17,000 --> 00:02:23,000 Okay, lad os gå tilbage til webbrowseren og se, hvad vi har. 35 00:02:23,000 --> 00:02:25,000 Interessant. 36 00:02:25,000 --> 00:02:28,000 Snarere end at udskrive en anden linje på sin egen linje, som du ville have set 37 00:02:28,000 --> 00:02:32,000 i terminalen, det ligner det fik smushed på samme linje 38 00:02:32,000 --> 00:02:36,000 som den anden printf, så du skal måske nye linjer ikke arbejde i PHP. 39 00:02:36,000 --> 00:02:38,000 Ikke helt. 40 00:02:38,000 --> 00:02:41,000 Husk, at HTML typisk bruges til at oprette websider 41 00:02:41,000 --> 00:02:44,000 der kan vises af webbrowsere. 42 00:02:44,000 --> 00:02:49,000 Ikke alene er den streng, hej fra php ikke gyldig HTML, 43 00:02:49,000 --> 00:02:53,000 men minder om, at vi ikke kan bruge \ n tegn i HTML 44 00:02:53,000 --> 00:02:55,000 at skabe et linjeskift. 45 00:02:55,000 --> 00:03:01,000 I stedet for blot at udsende en streng lad os output gyldig HTML. 46 00:03:01,000 --> 00:03:04,000 Ved hjælp af stk tags hver af vores printf opkald 47 00:03:04,000 --> 00:03:07,000 vil blive vist på sin egen linje, 48 00:03:07,000 --> 00:03:11,000 så nu når vi besøger URL peger på valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 ser vi det output, som vi leder efter. 51 00:03:19,000 --> 00:03:22,000 >> Hvis vi nu se kilden til denne side 52 00:03:22,000 --> 00:03:25,000 Vi kan se, at vi nu kigger på gyldig HTML, 53 00:03:25,000 --> 00:03:28,000 som vi har skabt fra PHP. 54 00:03:28,000 --> 00:03:31,000 Sætte alle vores HTML inde printf opkald 55 00:03:31,000 --> 00:03:34,000 er naturligvis kommer til at blive virkelig irriterende. 56 00:03:34,000 --> 00:03:38,000 Heldigvis kan vi nemt blande HTML og PHP 57 00:03:38,000 --> 00:03:41,000 i det samme. php fil. 58 00:03:41,000 --> 00:03:47,000 Husk, at alle vores PHP kode skal vedlægges indenfor 00:03:49,000 og>. 60 00:03:49,000 --> 00:03:52,000 Alt, hvad der ikke er lukket inden for disse afgrænsere 61 00:03:52,000 --> 00:03:55,000 vil simpelthen blive sendt som output til browseren 62 00:03:55,000 --> 00:03:57,000 snarere end at blive udført. 63 00:03:57,000 --> 00:04:01,000 Det betyder, at vi kan gøre noget som dette. 64 00:04:01,000 --> 00:04:05,000 Vi kan simpelthen skrive HTML inde i vores. Php fil 65 00:04:05,000 --> 00:04:11,000 og derefter indsætte PHP blokke, hvor vi vil gerne have noget php kode, der skal udføres. 66 00:04:11,000 --> 00:04:15,000 Her definerer vi nogle variabler i toppen af ​​filen, 67 00:04:15,000 --> 00:04:19,000 og senere vi printe dem ud inde i vores HTML. 68 00:04:19,000 --> 00:04:27,000 Nu, hvis vi besøger denne webadresse, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 vi kan se vores evalueret PHP inde i vores HTML. 70 00:04:33,000 --> 00:04:36,000 >> Lad os nu tage et kig på, hvordan vi kan overføre data 71 00:04:36,000 --> 00:04:39,000 blandt vores forskellige PHP-sider. 72 00:04:39,000 --> 00:04:51,000 Snarere end at sige 73 00:04:51,000 --> 00:04:58,000 kan vi blot sige 00:05:01,000 og>. 75 00:05:01,000 --> 00:05:03,000 Lad os nu tage et kig på, hvordan vi kan overføre data 76 00:05:03,000 --> 00:05:06,000 blandt vores forskellige PHP-sider. 77 00:05:06,000 --> 00:05:11,000 En måde, vi kan gøre det er at indkode oplysninger i webadressen på en side. 78 00:05:11,000 --> 00:05:14,000 Når du browser på internettet, du måske har bemærket, at nogle webadresser 79 00:05:14,000 --> 00:05:20,000 indeholde en? efterfulgt af en streng, der indeholder ampersands og lighedstegn. 80 00:05:20,000 --> 00:05:23,000 Denne del af URL'en er kendt som søgestrengen, 81 00:05:23,000 --> 00:05:29,000 og dette giver dig mulighed for effektivt at passere argumenter til din PHP script. 82 00:05:29,000 --> 00:05:34,000 Strengen forespørgsel består af centrale værdi par, ligesom en hash tabel. 83 00:05:34,000 --> 00:05:38,000 Et lighedstegn adskiller en nøgle og dens tilsvarende værdi 84 00:05:38,000 --> 00:05:41,000 mens-tegn adskille par. 85 00:05:41,000 --> 00:06:05,000 En URL-adresse, der ligner http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 har 2 centrale værdi par i søgestrengen. 87 00:06:09,000 --> 00:06:12,000 Nøglen foo kort til den værdi, bar, 88 00:06:12,000 --> 00:06:16,000 og nøglen baz kort til værdien QUX. 89 00:06:16,000 --> 00:06:23,000 Vi kan nemt få adgang til disse centrale værdipar hjælp af en speciel variabel i PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Er et associativt array 92 00:06:32,000 --> 00:06:36,000 der udfyldes automatisk med forespørgsel strengdata. 93 00:06:36,000 --> 00:06:46,000 Det betyder, at i betragtning af denne webadresse $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 vil være lig med strengen bar. 95 00:06:49,000 --> 00:06:56,000 >> Lad os tage et kig på get.php at se $ _GET i aktion. 96 00:06:56,000 --> 00:07:00,000 Her bruger vi en funktion kaldet var_dump, 97 00:07:00,000 --> 00:07:03,000 som når det gives en matrix eller anden variabel 98 00:07:03,000 --> 00:07:05,000 vil printe det ud for os. 99 00:07:05,000 --> 00:07:12,000 Nu, hvis vi simpelthen adgang http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 så vil vi se en tom matrix, fordi vi ikke har givet en query string. 101 00:07:17,000 --> 00:07:29,000 Hvis vi giver en query string via http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 så kan vi se, at $ _GET variabel vil indeholde 103 00:07:34,000 --> 00:07:37,000 søgestrengen vigtigste værdi par. 104 00:07:37,000 --> 00:07:42,000 Men hvad nu, hvis vi ikke ønsker at sætte vores data i webadressen på en side? 105 00:07:42,000 --> 00:07:46,000 Ved store mængder af data, kan dette resultere i nogle ret grimme URL'er 106 00:07:46,000 --> 00:07:49,000 der kommer til at gøre vores skinnende website ser halt. 107 00:07:49,000 --> 00:07:52,000 Vi kan i stedet sætte søgestrengen i kroppen 108 00:07:52,000 --> 00:07:57,000 af HTTP-anmodninger snarere end anmodningen URL. 109 00:07:57,000 --> 00:08:02,000 Så kan vi bruge PHP er $ _POST variabel 110 00:08:02,000 --> 00:08:05,000 at få adgang til de centrale værdi par. 111 00:08:05,000 --> 00:08:10,000 En måde at gøre dette på er via en HTML-formular. 112 00:08:10,000 --> 00:08:13,000 Her har vi en simpel HTML-formular. 113 00:08:13,000 --> 00:08:17,000 Bemærk her, at den metode, egenskab ved denne formular er post. 114 00:08:17,000 --> 00:08:21,000 Det fortæller browseren at sætte formularens vigtigste værdi par 115 00:08:21,000 --> 00:08:25,000 i kroppen af ​​anmodningen i stedet for URL. 116 00:08:25,000 --> 00:08:28,000 >> Hvis vi skulle bruge værdien får for denne attribut 117 00:08:28,000 --> 00:08:32,000 så formularens vigtigste værdi par i stedet ville gå ind i søgestrengen, 118 00:08:32,000 --> 00:08:36,000 så vi kunne få adgang til dem via $ _GET igen. 119 00:08:36,000 --> 00:08:42,000 Handlingen egenskab af formen fortæller browseren, hvor man kan sende data. 120 00:08:42,000 --> 00:08:46,000 Her vores 2 input elementer har navn attributter. 121 00:08:46,000 --> 00:08:51,000 Værdien af ​​navnet attributter vil tjene som nøgler til vores data, 122 00:08:51,000 --> 00:08:56,000 og værdierne af teksten input vil blive værdier af disse nøgler. 123 00:08:56,000 --> 00:08:59,000 Lad os nu tage et kig på post.php, 124 00:08:59,000 --> 00:09:03,000 den fil, denne formular er at underkaste sig. 125 00:09:03,000 --> 00:09:10,000 Ligesom vi gjorde før, vi blot at vise indholdet af $ _POST variabel. 126 00:09:10,000 --> 00:09:18,000 >> Lad os gå til formularen med http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Nu når vi indsender formularen kan vi se, at data fra form.php 128 00:09:23,000 --> 00:09:30,000 videregives til post.php uden at tilføje en query string i URL. 129 00:09:30,000 --> 00:09:35,000 Nu har vi set 2 forskellige måder at videregive data mellem PHP-sider, 130 00:09:35,000 --> 00:09:37,000 få og sende. 131 00:09:37,000 --> 00:09:41,000 I vores eksempel, vi brugte 2 forskellige typer af HTTP-anmodninger. 132 00:09:41,000 --> 00:09:45,000 Som man kunne forvente, var en get anmodning bruges, når vi befolkede 133 00:09:45,000 --> 00:09:51,000 $ _GET Fra webadressen, og en post anmodning blev brugt 134 00:09:51,000 --> 00:09:55,000 når vi befolkede $ _POST. 135 00:09:55,000 --> 00:09:59,000 I at designe dit web apps, det er en god tommelfingerregel at bruge får anmodninger 136 00:09:59,000 --> 00:10:03,000 når din app vil kun læse data, og post anmoder 137 00:10:03,000 --> 00:10:05,000 når din app vil skrive data. 138 00:10:05,000 --> 00:10:09,000 For eksempel vil en søgning læse data fra din app, 139 00:10:09,000 --> 00:10:12,000 så en get anmodning giver mening. 140 00:10:12,000 --> 00:10:17,000 På den anden side, vil din app skrive data via noget som en tilmeldingsblanket, 141 00:10:17,000 --> 00:10:22,000 så et indlæg anmodning ville give mere mening, og det er en oversigt over nogle af de teknikker, 142 00:10:22,000 --> 00:10:26,000 vi vil bruge i CS50 at oprette hjemmesider med PHP. 143 00:10:26,000 --> 00:10:30,000 >> Mit navn er Tommy, og det er CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]