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 [To je CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> V tomto videu sa budeme učiť o použití PHP pre vývoj webových aplikácií. 5 00:00:11,000 --> 00:00:14,000 PHP je skriptovací jazyk, ktorý môže byť použitý na vykonanie 6 00:00:14,000 --> 00:00:17,000 webové stránky na webovom serveri. 7 00:00:17,000 --> 00:00:21,000 Webový server je v podstate stroj zameriava na poskytovanie obsahu 8 00:00:21,000 --> 00:00:24,000 ktoré môžu byť prístupné cez internet. 9 00:00:24,000 --> 00:00:30,000 Keď prejdete na webovú stránku, ako je Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 kód v súbore s názvom home.php ktorá žije na webovom serveri Facebook niekde 11 00:00:35,000 --> 00:00:38,000 budú vykonané na tomto serveri. 12 00:00:38,000 --> 00:00:41,000 Tento kód bude pravdepodobne vytvárať nejaký výstup 13 00:00:41,000 --> 00:00:43,000 ktoré sa následne odoslané zo servera 14 00:00:43,000 --> 00:00:45,000 sa vo Vašom webovom prehliadači. 15 00:00:45,000 --> 00:00:49,000 Budeme používať CS50 zariadenia ako webový server. 16 00:00:49,000 --> 00:00:51,000 Váš prístroj pravdepodobne nebude zďaleka tak silný ako stroje 17 00:00:51,000 --> 00:00:57,000 v Facebook dátovom centre, ale budete mať žiadny problém používať ho pre vývoj webových aplikácií. 18 00:00:57,000 --> 00:01:05,000 >> Keď budeme navigovať na adresu URL ako http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 sme sa konfigurovať zariadenie prostredníctvom aplikácie zvané server Apache HTTP 20 00:01:10,000 --> 00:01:19,000 hľadať súbor s názvom hello.php vnútri home / jharvard / vhosts / localhosts / html v predvolenom nastavení. 21 00:01:19,000 --> 00:01:23,000 Ak existuje tento súbor potom bude Apache používať interpret PHP 22 00:01:23,000 --> 00:01:27,000 spustiť PHP kód v hello.php. 23 00:01:27,000 --> 00:01:31,000 Ak tento súbor neexistuje, Apache sa hodiť nebola nájdená chyba 24 00:01:31,000 --> 00:01:36,000 alebo 404 chýb, ktoré ste pravdepodobne videli pri prehliadaní webu. 25 00:01:36,000 --> 00:01:40,000 >> Poďme sa pozrieť na hello.php. 26 00:01:40,000 --> 00:01:45,000 Vidíme tu, že hello.php generuje signál riadok výstupu. 27 00:01:45,000 --> 00:01:51,000 Keď sme bežali hello.php na príkazovom riadku pomocou php hello.php 28 00:01:51,000 --> 00:01:54,000 že výstup bol vytlačený na termináli. 29 00:01:54,000 --> 00:01:58,000 Teraz, keď sme sa prístup k tomuto súboru cez URL vo webovom prehliadači 30 00:01:58,000 --> 00:02:01,000 jeho výstup bude zaslaná na webovom prehliadači, 31 00:02:01,000 --> 00:02:09,000 tak mieri do URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 môžeme vidieť výstup v našom webovom prehliadači. 33 00:02:12,000 --> 00:02:17,000 >> Skúsme pridávať ďalšie printf našej hello world program. 34 00:02:17,000 --> 00:02:23,000 Dobre, poďme sa vrátiť na webovom prehliadači, a vidieť to, čo máme. 35 00:02:23,000 --> 00:02:25,000 Zaujímavé. 36 00:02:25,000 --> 00:02:28,000 Skôr než tlač ďalší riadok na samostatnom riadku, ako by ste videli 37 00:02:28,000 --> 00:02:32,000 v termináli, vyzerá to, že dostal smushed na rovnakom riadku 38 00:02:32,000 --> 00:02:36,000 ako ostatné printf, tak možno nové linky nefungujú v PHP. 39 00:02:36,000 --> 00:02:38,000 Nie tak celkom. 40 00:02:38,000 --> 00:02:41,000 Pamätajte si, že HTML sa zvyčajne používa na vytváranie webových stránok 41 00:02:41,000 --> 00:02:44,000 ktoré možno zobraziť pomocou webových prehliadačov. 42 00:02:44,000 --> 00:02:49,000 Nielen, že je reťazec ahoj z PHP nie je platný HTML, 43 00:02:49,000 --> 00:02:53,000 ale pripomenúť, že nemôžeme používať \ n znak v HTML 44 00:02:53,000 --> 00:02:55,000 vytvoriť zalomenie riadku. 45 00:02:55,000 --> 00:03:01,000 Namiesto toho, aby jednoducho výstupu výstupný reťazec Poďme platný HTML. 46 00:03:01,000 --> 00:03:04,000 Pri použití odseku tagy každý z našich printf volaní 47 00:03:04,000 --> 00:03:07,000 bude zobrazený na samostatnom riadku, 48 00:03:07,000 --> 00:03:11,000 takže teraz, keď sme sa navštíviť URL ukazujúce na valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 vidíme výstup, ktorý sme hľadali. 51 00:03:19,000 --> 00:03:22,000 >> Teraz, keď sa pozrieme na zdrojový kód tejto stránky 52 00:03:22,000 --> 00:03:25,000 môžeme vidieť, že sme sa pri pohľade na platný HTML, 53 00:03:25,000 --> 00:03:28,000 ktorý sme vytvorili z PHP. 54 00:03:28,000 --> 00:03:31,000 Uvedenie všetkých našich HTML vnútri printf volaní 55 00:03:31,000 --> 00:03:34,000 sa samozrejme dostane naozaj otravné. 56 00:03:34,000 --> 00:03:38,000 Našťastie môžeme ľahko miešať HTML a PHP 57 00:03:38,000 --> 00:03:41,000 v rovnakom súbore. php. 58 00:03:41,000 --> 00:03:47,000 Pamätajte si, že všetky naše PHP kód musí byť vložený do 00:03:49,000 a>. 60 00:03:49,000 --> 00:03:52,000 Čokoľvek, čo nie je uzavretý v týchto oddeľovačov 61 00:03:52,000 --> 00:03:55,000 bude jednoducho odoslať ako výstup do prehliadača 62 00:03:55,000 --> 00:03:57,000 skôr než byť popravený. 63 00:03:57,000 --> 00:04:01,000 To znamená, že môžeme urobiť niečo také. 64 00:04:01,000 --> 00:04:05,000 Môžeme jednoducho napísať HTML vnútri nášho súboru. Php 65 00:04:05,000 --> 00:04:11,000 a potom vložiť PHP bloky všade tam, kde by sme chceli nejaký php kód, ktorý bude vykonaný. 66 00:04:11,000 --> 00:04:15,000 Tu sa definovať niekoľko premenných v hornej časti súboru, 67 00:04:15,000 --> 00:04:19,000 a neskôr sme ich vytlačiť v našej HTML. 68 00:04:19,000 --> 00:04:27,000 Teraz, keď sme sa navštíviť túto adresu URL, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 môžeme vidieť naše hodnotené PHP vnútri nášho HTML. 70 00:04:33,000 --> 00:04:36,000 >> Teraz sa poďme pozrieť na to, ako môžeme odovzdať dáta 71 00:04:36,000 --> 00:04:39,000 medzi našimi rôznymi PHP stránok. 72 00:04:39,000 --> 00:04:51,000 Skôr než hovoriť 73 00:04:51,000 --> 00:04:58,000 môžeme jednoducho povedať: 00:05:01,000 a>. 75 00:05:01,000 --> 00:05:03,000 Poďme sa teraz pozrieť na to, ako môžeme odovzdať dáta 76 00:05:03,000 --> 00:05:06,000 medzi našimi rôznymi PHP stránok. 77 00:05:06,000 --> 00:05:11,000 Jeden spôsob, ako môžeme urobiť, je zakódovanie informácie do URL stránky. 78 00:05:11,000 --> 00:05:14,000 Pri prehliadaní webu, možno ste si všimli, že niektoré adresy URL 79 00:05:14,000 --> 00:05:20,000 obsahovať? nasleduje reťazec obsahujúci tieto znaky a znaky rovná. 80 00:05:20,000 --> 00:05:23,000 Táto časť URL je známy ako reťazec dotazu, 81 00:05:23,000 --> 00:05:29,000 a to vám umožní efektívne odovzdať argumenty PHP skriptu. 82 00:05:29,000 --> 00:05:34,000 Reťazec dotazu sa skladá z kľúča a hodnoty, rovnako ako tabuľky hash. 83 00:05:34,000 --> 00:05:38,000 Znamienko rovná sa oddeľuje kľúč a zodpovedajúcu hodnotu 84 00:05:38,000 --> 00:05:41,000 zatiaľ čo ampersand oddeliť pary. 85 00:05:41,000 --> 00:06:05,000 URL, ktorá vyzerá ako http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 má 2 páry kľúč hodnota v reťazci dotazu. 87 00:06:09,000 --> 00:06:12,000 Kľúčom foo mapuje na hodnotu bare, 88 00:06:12,000 --> 00:06:16,000 a kľúč Baz mapuje na hodnotu qux. 89 00:06:16,000 --> 00:06:23,000 Môžeme ľahko prístup k týmto páry kľúčových hodnôt pomocou špeciálne premenné v PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Je asociatívne pole 92 00:06:32,000 --> 00:06:36,000 ktorý je automaticky naplnený dotazu reťazec dáta. 93 00:06:36,000 --> 00:06:46,000 To znamená, že vzhľadom k tejto URL $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 sa bude rovnať reťazec baru. 95 00:06:49,000 --> 00:06:56,000 >> Poďme sa pozrieť na get.php vidieť $ _GET v akcii. 96 00:06:56,000 --> 00:07:00,000 Tu sme použili funkciu nazvanú var_dump, 97 00:07:00,000 --> 00:07:03,000 , Ktoré, ak je podávaný pole alebo iné premenné 98 00:07:03,000 --> 00:07:05,000 bude tlačiť to pre nás. 99 00:07:05,000 --> 00:07:12,000 Teraz, keď sme jednoducho prístup http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 potom uvidíme, prázdne pole, pretože sme to za predpokladu, reťazec dotazu. 101 00:07:17,000 --> 00:07:29,000 Ak sa nám to poskytnúť reťazec dotazu prostredníctvom http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 potom môžeme vidieť, že premenná $ _GET bude obsahovať 103 00:07:34,000 --> 00:07:37,000 dvojica kľúč hodnota reťazca dotazu je. 104 00:07:37,000 --> 00:07:42,000 Ale čo keď nechceme, aby naše dáta vnútri URL stránky? 105 00:07:42,000 --> 00:07:46,000 Pre veľké množstvo dát, môže to mať za následok niektoré docela škaredé adresy URL 106 00:07:46,000 --> 00:07:49,000 ktoré sa chystáte, aby sa naše lesklé webové stránky vyzerať lame. 107 00:07:49,000 --> 00:07:52,000 Môžeme namiesto toho dať reťazec dotazu do tela 108 00:07:52,000 --> 00:07:57,000 z HTTP požiadaviek, skôr než URL žiadosť je. 109 00:07:57,000 --> 00:08:02,000 Potom môžeme použiť $ _POST premenné PHP 110 00:08:02,000 --> 00:08:05,000 prístup k pary kľúč hodnota. 111 00:08:05,000 --> 00:08:10,000 Jeden spôsob, ako to urobiť, je pomocou formulára HTML. 112 00:08:10,000 --> 00:08:13,000 Tu máme jednoduchý HTML formulár. 113 00:08:13,000 --> 00:08:17,000 Všimnite si, že atribút spôsob tohto formulára je príspevok. 114 00:08:17,000 --> 00:08:21,000 To hovorí prehliadači, aby dal páry kľúčových hodnôt vo formulári 115 00:08:21,000 --> 00:08:25,000 do tela požiadavke, skôr než na adresu URL. 116 00:08:25,000 --> 00:08:28,000 >> Ak by sme mali použiť hodnota sa pre tento atribút 117 00:08:28,000 --> 00:08:32,000 potom dvojica kľúč hodnota vo formulári by namiesto toho ísť do reťazca dotazu, 118 00:08:32,000 --> 00:08:36,000 takže sme ich mohli pristupovať cez $ _GET znova. 119 00:08:36,000 --> 00:08:42,000 Atribút akcie formuláre hovorí prehliadači, kde pre odosielanie dát. 120 00:08:42,000 --> 00:08:46,000 Tu naše dva vstupné prvky majú atribúty meno. 121 00:08:46,000 --> 00:08:51,000 Hodnota atribútov názov bude slúžiť ako kľúče do našich dát, 122 00:08:51,000 --> 00:08:56,000 a hodnoty textových vstupov budú hodnoty týchto kľúčov. 123 00:08:56,000 --> 00:08:59,000 Teraz sa poďme pozrieť na post.php, 124 00:08:59,000 --> 00:09:03,000 súbor, že táto forma je predkladá. 125 00:09:03,000 --> 00:09:10,000 Rovnako ako sme to urobili predtým, my sme jednoducho zobrazovať obsah premennej $ _POST. 126 00:09:10,000 --> 00:09:18,000 >> Poďme prejsť na formulári s http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Teraz, keď sme sa predložiť formulár môžeme vidieť, že dáta z form.php 128 00:09:23,000 --> 00:09:30,000 je odovzdaný post.php bez pridania reťazec dotazu na adresu URL. 129 00:09:30,000 --> 00:09:35,000 Teraz sme videli dva rôzne spôsoby odovzdávania dát medzi stránkami PHP, 130 00:09:35,000 --> 00:09:37,000 získať a zverejniť. 131 00:09:37,000 --> 00:09:41,000 V našich príkladoch sme použili dva rôzne typy požiadaviek HTTP. 132 00:09:41,000 --> 00:09:45,000 Ako sa dalo očakávať, požiadavka GET bol použitý, keď sme osídlené 133 00:09:45,000 --> 00:09:51,000 Bola použitá $ _GET z URL, a žiadosť o príspevok 134 00:09:51,000 --> 00:09:55,000 keď sme obývaný $ _POST. 135 00:09:55,000 --> 00:09:59,000 Pri navrhovaní svojej webovej aplikácie je to dobré pravidlo použiť požiadavky GET 136 00:09:59,000 --> 00:10:03,000 ak vaša aplikácia bude iba pre čítanie dát, a požaduje príspevok 137 00:10:03,000 --> 00:10:05,000 ak vaša aplikácia bude zapisovať dáta. 138 00:10:05,000 --> 00:10:09,000 Napríklad vyhľadávací dotaz čítať dáta z vašej aplikácie, 139 00:10:09,000 --> 00:10:12,000 takže požiadavka GET zmysel. 140 00:10:12,000 --> 00:10:17,000 Na druhú stranu, bude vaša aplikácia zapisovať dáta cez niečo ako registračný formulár, 141 00:10:17,000 --> 00:10:22,000 o to požiadajú, pošta by dávalo väčší zmysel, a to je prehľad niektorých z techník 142 00:10:22,000 --> 00:10:26,000 budeme používať v CS50 vytvoriť webové stránky pomocou PHP. 143 00:10:26,000 --> 00:10:30,000 >> Volám sa Tommy, a to je CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]