1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [PHP Webbutveckling] 2 00:00:03,000 --> 00:00:05,000 [Tommy MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [Det här är CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> I denna video får vi lära oss om hur du använder PHP för webbutveckling. 5 00:00:11,000 --> 00:00:14,000 PHP är ett skriptspråk som kan användas för att implementera 6 00:00:14,000 --> 00:00:17,000 webbplatser på en webbserver. 7 00:00:17,000 --> 00:00:21,000 En webbserver är i grunden en maskin dedikerade till att erbjuda innehåll 8 00:00:21,000 --> 00:00:24,000 som kan nås via internet. 9 00:00:24,000 --> 00:00:30,000 När du navigerar till en webbsida som Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 koden i filen som heter home.php som lever på Facebook webbserver någonstans 11 00:00:35,000 --> 00:00:38,000 kommer att utföras på den servern. 12 00:00:38,000 --> 00:00:41,000 Denna kod kommer sannolikt att generera en del utgång 13 00:00:41,000 --> 00:00:43,000 vilket i sin tur kommer att sändas från servern 14 00:00:43,000 --> 00:00:45,000 till din webbläsare. 15 00:00:45,000 --> 00:00:49,000 Vi kommer att använda den CS50 apparaten som en webbserver. 16 00:00:49,000 --> 00:00:51,000 Maskinen förmodligen inte kommer att vara nästan lika kraftfull som maskinerna 17 00:00:51,000 --> 00:00:57,000 i en Facebook-datacenter, men du har inga problem att använda den för webbutveckling. 18 00:00:57,000 --> 00:01:05,000 >> När vi navigerar till en webbadress som http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 vi konfigurerar apparaten via ett program som heter Apache HTTP-server 20 00:01:10,000 --> 00:01:19,000 för att leta efter en fil som heter hello.php inne i hemmet / jharvard / vhosts / localhosts / html som standard. 21 00:01:19,000 --> 00:01:23,000 Om den filen finns sedan Apache kommer att använda PHP tolken 22 00:01:23,000 --> 00:01:27,000 att köra PHP-kod i hello.php. 23 00:01:27,000 --> 00:01:31,000 Om den filen inte existerar då Apache kommer att kasta en inte hittat felet 24 00:01:31,000 --> 00:01:36,000 eller en 404 fel, vilket du förmodligen har sett när du surfar på webben. 25 00:01:36,000 --> 00:01:40,000 >> Låt oss ta en titt på hello.php. 26 00:01:40,000 --> 00:01:45,000 Vi kan se här att hello.php genererar en signalledning av produktionen. 27 00:01:45,000 --> 00:01:51,000 När vi körde hello.php på kommandoraden via php hello.php 28 00:01:51,000 --> 00:01:54,000 att produktionen trycktes till terminalen. 29 00:01:54,000 --> 00:01:58,000 Nu, när vi kommer till den här filen via en webbadress i webbläsaren 30 00:01:58,000 --> 00:02:01,000 dess produktion kommer att skickas till webbläsaren, 31 00:02:01,000 --> 00:02:09,000 så på väg till URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 Vi kan se resultatet i vår webbläsare. 33 00:02:12,000 --> 00:02:17,000 >> Låt oss försöka lägga till en annan printf till vårt hello world-program. 34 00:02:17,000 --> 00:02:23,000 Okej, låt oss gå tillbaka till webbläsaren och se vad vi har. 35 00:02:23,000 --> 00:02:25,000 Intressant. 36 00:02:25,000 --> 00:02:28,000 I stället för att skriva ut en annan linje på en egen rad, som du skulle ha sett 37 00:02:28,000 --> 00:02:32,000 i terminalen, det ser ut som det blev smushed på samma linje 38 00:02:32,000 --> 00:02:36,000 som den andra printf, gör så kanske nya linjer som inte fungerar i PHP. 39 00:02:36,000 --> 00:02:38,000 Inte riktigt. 40 00:02:38,000 --> 00:02:41,000 Kom ihåg att HTML används vanligtvis för att skapa webbsidor 41 00:02:41,000 --> 00:02:44,000 som kan visas av webbläsare. 42 00:02:44,000 --> 00:02:49,000 Inte bara är den sträng hej från php inte giltig HTML, 43 00:02:49,000 --> 00:02:53,000 men minns att vi inte kan använda \ n tecken i HTML 44 00:02:53,000 --> 00:02:55,000 att skapa en radbrytning. 45 00:02:55,000 --> 00:03:01,000 Istället för att bara mata ut en sträng låter utgång giltig HTML. 46 00:03:01,000 --> 00:03:04,000 Genom att använda stycketaggar var och en av våra printf samtal 47 00:03:04,000 --> 00:03:07,000 kommer att visas på en egen rad, 48 00:03:07,000 --> 00:03:11,000 så nu när vi besöker den URL som pekar 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 Vi ser den utgång som vi letar efter. 51 00:03:19,000 --> 00:03:22,000 >> Nu, om vi se källan till den här sidan 52 00:03:22,000 --> 00:03:25,000 Vi kan se att vi nu tittar på giltig HTML, 53 00:03:25,000 --> 00:03:28,000 som vi skapat från PHP. 54 00:03:28,000 --> 00:03:31,000 Att sätta alla våra HTML inne printf samtal 55 00:03:31,000 --> 00:03:34,000 är naturligtvis kommer att bli riktigt irriterande. 56 00:03:34,000 --> 00:03:38,000 Lyckligtvis kan vi enkelt blanda HTML och PHP 57 00:03:38,000 --> 00:03:41,000 i samma. php fil. 58 00:03:41,000 --> 00:03:47,000 Kom ihåg att alla våra PHP-kod måste vara innesluten i 00:03:49,000 och>. 60 00:03:49,000 --> 00:03:52,000 Allt som inte är innesluten i dessa avgränsare 61 00:03:52,000 --> 00:03:55,000 kommer helt enkelt att skickas som utsignal till webbläsaren 62 00:03:55,000 --> 00:03:57,000 i stället för att verkställas. 63 00:03:57,000 --> 00:04:01,000 Det innebär att vi kan göra något sånt här. 64 00:04:01,000 --> 00:04:05,000 Vi kan helt enkelt skriva HTML inne i vår. Php-fil 65 00:04:05,000 --> 00:04:11,000 och sedan in PHP-block där vi vill ha lite PHP-kod som ska köras. 66 00:04:11,000 --> 00:04:15,000 Här definierar vi några variabler högst upp i filen, 67 00:04:15,000 --> 00:04:19,000 och senare vi skriva ut dem inne i vår HTML. 68 00:04:19,000 --> 00:04:27,000 Nu om vi besöker denna URL, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 vi kan se vår utvärderade PHP inne i vår HTML. 70 00:04:33,000 --> 00:04:36,000 >> Nu ska vi ta en titt på hur vi kan skicka data 71 00:04:36,000 --> 00:04:39,000 bland våra olika PHP-sidor. 72 00:04:39,000 --> 00:04:51,000 I stället för att säga 73 00:04:51,000 --> 00:04:58,000 Vi kan helt enkelt säga 00:05:01,000 och>. 75 00:05:01,000 --> 00:05:03,000 Låt oss nu ta en titt på hur vi kan skicka data 76 00:05:03,000 --> 00:05:06,000 bland våra olika PHP-sidor. 77 00:05:06,000 --> 00:05:11,000 Ett sätt vi kan göra det är att koda information in webbadressen till en sida. 78 00:05:11,000 --> 00:05:14,000 När du surfar på webben, kanske du har märkt att vissa webbadresser 79 00:05:14,000 --> 00:05:20,000 innehålla en? följt av en sträng som innehåller et-tecken och likhetstecken. 80 00:05:20,000 --> 00:05:23,000 Denna del av webbadressen är känd som frågesträngen, 81 00:05:23,000 --> 00:05:29,000 och detta gör det möjligt att effektivt skicka argument till din PHP-skript. 82 00:05:29,000 --> 00:05:34,000 Frågesträngen består av nyckel värde par, precis som en hash-tabell. 83 00:05:34,000 --> 00:05:38,000 Ett likhetstecken separerar en nyckel och dess motsvarande värde 84 00:05:38,000 --> 00:05:41,000 medan et-tecken separera par. 85 00:05:41,000 --> 00:06:05,000 En webbadress som ser ut som http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 har 2 centrala värde-par i frågesträngen. 87 00:06:09,000 --> 00:06:12,000 Nyckeln foo kartor till värdefältet, 88 00:06:12,000 --> 00:06:16,000 och nyckeln Baz-kartor till värdet qux. 89 00:06:16,000 --> 00:06:23,000 Vi kan enkelt komma åt dessa nyckelpar värde med hjälp av en speciell variabel i PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Är en associativ array 92 00:06:32,000 --> 00:06:36,000 som fylls i automatiskt med frågesträngdata. 93 00:06:36,000 --> 00:06:46,000 Det innebär att med tanke på denna webbadress $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 kommer att vara lika med den sträng bar. 95 00:06:49,000 --> 00:06:56,000 >> Låt oss ta en titt på get.php att se $ _GET i aktion. 96 00:06:56,000 --> 00:07:00,000 Här vi använder en funktion som kallas var_dump, 97 00:07:00,000 --> 00:07:03,000 som när det ges en array eller annan variabel 98 00:07:03,000 --> 00:07:05,000 kommer att skriva ut den för oss. 99 00:07:05,000 --> 00:07:12,000 Nu om vi bara åt http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 sedan får vi se en tom array, eftersom vi inte har gett en frågesträng. 101 00:07:17,000 --> 00:07:29,000 Om vi ​​ger en frågesträng via http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 då kan vi se att $ _GET variabel kommer att innehålla 103 00:07:34,000 --> 00:07:37,000 Frågesträngen viktigaste värdepar. 104 00:07:37,000 --> 00:07:42,000 Men vad händer om vi inte vill sätta våra data inne i webbadressen till en sida? 105 00:07:42,000 --> 00:07:46,000 För stora mängder data, kan detta leda till några ganska fula webbadresser 106 00:07:46,000 --> 00:07:49,000 som kommer att göra vår blanka hemsida ser lamt. 107 00:07:49,000 --> 00:07:52,000 Vi kan istället sätta frågesträngen i kroppen 108 00:07:52,000 --> 00:07:57,000 av HTTP-förfrågningar snarare än begäran URL. 109 00:07:57,000 --> 00:08:02,000 Då kan vi använda PHP: s $ _POST variabeln 110 00:08:02,000 --> 00:08:05,000 för att komma åt nyckelpar värde. 111 00:08:05,000 --> 00:08:10,000 Ett sätt att göra detta är via ett HTML-formulär. 112 00:08:10,000 --> 00:08:13,000 Här har vi en enkel HTML-formulär. 113 00:08:13,000 --> 00:08:17,000 Observera här att metoden attributet för denna form är inlägget. 114 00:08:17,000 --> 00:08:21,000 Detta talar om för webbläsaren att sätta formulärets nyckelpar värde 115 00:08:21,000 --> 00:08:25,000 in i kroppen av begäran i stället för URL-adressen. 116 00:08:25,000 --> 00:08:28,000 >> Om vi ​​skulle använda värdet får för detta attribut 117 00:08:28,000 --> 00:08:32,000 då formulärets nyckelpar värde skulle i stället gå in i frågesträngen, 118 00:08:32,000 --> 00:08:36,000 så vi kunde komma åt dem via $ _GET igen. 119 00:08:36,000 --> 00:08:42,000 Handlingen attribut i formuläret talar om för webbläsaren var att skicka data. 120 00:08:42,000 --> 00:08:46,000 Här våra 2 ingångselement har namnattribut. 121 00:08:46,000 --> 00:08:51,000 Värdet av namnattribut kommer att fungera som nycklar till våra data, 122 00:08:51,000 --> 00:08:56,000 och värdena på text ingångar blir värdena för dessa nycklar. 123 00:08:56,000 --> 00:08:59,000 Nu ska vi ta en titt på post.php, 124 00:08:59,000 --> 00:09:03,000 filen att detta formulär lämna in till. 125 00:09:03,000 --> 00:09:10,000 Precis som vi gjorde innan, vi bara visa innehållet i $ _POST variabeln. 126 00:09:10,000 --> 00:09:18,000 >> Låt oss gå till formuläret med http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Nu när vi skicka formuläret kan vi se att data från form.php 128 00:09:23,000 --> 00:09:30,000 skickas till post.php utan att lägga till ett frågesträng till URL. 129 00:09:30,000 --> 00:09:35,000 Nu har vi sett två olika sätt att överföra data mellan PHP-sidor, 130 00:09:35,000 --> 00:09:37,000 få och posta. 131 00:09:37,000 --> 00:09:41,000 I vårt exempel har vi använt två olika typer av HTTP-förfrågningar. 132 00:09:41,000 --> 00:09:45,000 Som du kanske tror, ​​var en begäran vänja när vi befolkade 133 00:09:45,000 --> 00:09:51,000 $ _GET Från URL och ett inlägg begäran användes 134 00:09:51,000 --> 00:09:55,000 när vi befolkade $ _POST. 135 00:09:55,000 --> 00:09:59,000 Vid utformningen av din webbprogram är det en bra tumregel att använda får förfrågningar 136 00:09:59,000 --> 00:10:03,000 när din app bara att läsa data, och efter önskemål 137 00:10:03,000 --> 00:10:05,000 när din app kommer att skriva data. 138 00:10:05,000 --> 00:10:09,000 Till exempel kommer en sökfråga läsa data från din app, 139 00:10:09,000 --> 00:10:12,000 så en begäran få vettigt. 140 00:10:12,000 --> 00:10:17,000 Å andra sidan, kommer din app skriver data via något som liknar ett registreringsformulär, 141 00:10:17,000 --> 00:10:22,000 så ett inlägg begäran vore bättre, och det är en översikt av några av de tekniker 142 00:10:22,000 --> 00:10:26,000 Vi kommer att använda i CS50 för att skapa webbplatser med PHP. 143 00:10:26,000 --> 00:10:30,000 >> Mitt namn är Tommy, och detta är CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]