[Powered by Google Translate] [PHP Web Development] [Tommy MacWilliam] [To je CS50.] [CS50.TV] V tomto videu se budeme učit o použití PHP pro vývoj webových aplikací. PHP je skriptovací jazyk, který může být použit k provedení webové stránky na webovém serveru. Webový server je v podstatě stroj zaměřuje na poskytování obsahu které mohou být přístupné přes internet. Když přejdete na webovou stránku, jako je Facebook.com / home.php kód v souboru s názvem home.php která žije na webovém serveru Facebook někde budou provedeny na tomto serveru. Tento kód bude pravděpodobně vytvářet nějaký výstup které se následně odeslané ze serveru se ve Vašem webovém prohlížeči. Budeme používat CS50 zařízení jako webový server. Váš přístroj pravděpodobně nebude zdaleka tak silný jako stroje v Facebook datovém centru, ale budete mít žádný problém používat jej pro vývoj webových aplikací. Když budeme navigovat na adresu URL jako http://localhost/hello.php jsme se konfigurovat zařízení prostřednictvím aplikace zvané server Apache HTTP hledat soubor s názvem hello.php uvnitř home / jharvard / vhosts / localhosts / html ve výchozím nastavení. Pokud existuje tento soubor pak bude Apache používat interpret PHP spustit PHP kód v hello.php. Pokud tento soubor neexistuje, Apache se hodit nebyla nalezena chyba nebo 404 chyb, které jste pravděpodobně viděli při procházení webu. Pojďme se podívat na hello.php. Vidíme zde, že hello.php generuje signál řádek výstupu. Když jsme běželi hello.php na příkazovém řádku pomocí php hello.php že výstup byl vytištěn na terminálu. Teď, když jsme se přístup k tomuto souboru přes URL ve webovém prohlížeči jeho výstup bude zaslána na webovém prohlížeči, tak míří do URL, http://localhost/hello.php, můžeme vidět výstup v našem webovém prohlížeči. Zkusme přidávat další printf naší hello world program. Dobře, pojďme se vrátit na webovém prohlížeči, a vidět to, co máme. Zajímavé. Spíše než tisk další řádek na samostatném řádku, jako byste viděli v terminálu, vypadá to, že dostal smushed na stejném řádku jako ostatní printf, tak možná nové linky nefungují v PHP. Ne tak docela. Pamatujte si, že HTML se obvykle používá k vytváření webových stránek které lze zobrazit pomocí webových prohlížečů. Nejen, že je řetězec ahoj z PHP není platný HTML, ale připomenout, že nemůžeme používat \ n znak v HTML vytvořit zalomení řádku. Místo toho, aby prostě výstupu výstupní řetězec Pojďme platný HTML. Při použití odstavce tagy každý z našich printf volání bude zobrazen na samostatném řádku, takže teď, když jsme se navštívit URL ukazující na valid.php http://localhost/valid.php vidíme výstup, který jsme hledali. Teď, když se podíváme na zdrojový kód této stránky můžeme vidět, že jsme se při pohledu na platný HTML, který jsme vytvořili z PHP. Uvedení všech našich HTML uvnitř printf volání se samozřejmě dostane opravdu otravné. Naštěstí můžeme snadno míchat HTML a PHP ve stejném souboru. php. Pamatujte si, že všechny naše PHP kód musí být vložen do . Cokoliv, co není uzavřen v těchto oddělovačů bude jednoduše odeslat jako výstup do prohlížeče spíše než být popraven. To znamená, že můžeme udělat něco takového. Můžeme jednoduše napsat HTML uvnitř našeho souboru. Php a pak vložit PHP bloky všude tam, kde bychom chtěli nějaký php kód, který bude vykonán. Zde se definovat několik proměnných v horní části souboru, a později jsme je vytisknout v naší HTML. Nyní, když jsme se navštívit tuto adresu URL, http://localhost/mixed.php můžeme vidět naše hodnoceny PHP uvnitř našeho HTML. Nyní se pojďme podívat na to, jak můžeme předat data mezi našimi různými PHP stránek. Spíše než říkat můžeme jednoduše říci: . Pojďme se nyní podívat na to, jak můžeme předat data mezi našimi různými PHP stránek. Jeden způsob, jak můžeme udělat, je zakódování informace do URL stránky. Při procházení webu, možná jste si všimli, že některé adresy URL obsahovat? následuje řetězec obsahující tyto znaky a rovnítka. Tato část URL je znám jako řetězec dotazu, a to vám umožní efektivně předat argumenty PHP skriptu. Řetězec dotazu se skládá z klíče a hodnoty, stejně jako tabulky hash. Znaménko rovná se odděluje klíč a odpovídající hodnotu zatímco ampersandy oddělit páry. URL, která vypadá jako http://localhost/get.php?foo=bar&baz=qux má 2 páry klíč hodnota v řetězci dotazu. Klíčem foo mapuje na hodnotu baru, a klíč Baz mapuje na hodnotu qux. Můžeme snadno přístup k těmto páry klíčových hodnot pomocí speciální proměnné v PHP, $ _GET. $ _GET Je asociativní pole který je automaticky naplněn dotazu řetězec data. To znamená, že vzhledem k této URL $ _GET ["foo"] se bude rovnat řetězec baru. Pojďme se podívat na get.php vidět $ _GET v akci. Zde jsme použili funkci nazvanou var_dump, , které, pokud je podáván pole nebo jiné proměnné bude tisknout to pro nás. Nyní, když jsme prostě přístup http://localhost/get.php pak uvidíme, prázdné pole, protože jsme to za předpokladu, řetězec dotazu. Pokud se nám to poskytnout řetězec dotazu prostřednictvím http://localhost/get.php?foo=bar&baz=qux pak můžeme vidět, že proměnná $ _GET bude obsahovat dvojice klíč hodnota řetězce dotazu je. Ale co když nechceme, aby naše data uvnitř URL stránky? Pro velké množství dat, může to mít za následek některé docela ošklivé adresy URL které se chystáte, aby se naše lesklé webové stránky vypadat lame. Můžeme místo toho dát řetězec dotazu do těla z HTTP požadavků, spíše než URL žádost je. Pak můžeme použít $ _POST proměnné PHP přístup k páry klíč hodnota. Jeden způsob, jak to udělat, je pomocí formuláře HTML. Zde máme jednoduchý HTML formulář. Všimněte si, že atribut způsob tohoto formuláře je příspěvek. To říká prohlížeči, aby dal páry klíčových hodnot ve formuláři do těla požadavku, spíše než na adresu URL. Pokud bychom měli použít hodnota se pro tento atribut pak dvojice klíč hodnota ve formuláři by místo toho jít do řetězce dotazu, takže jsme je mohli přistupovat přes $ _GET znovu. Atribut akce formuláře říká prohlížeči, kde pro odesílání dat. Zde naše dva vstupní prvky mají atributy jméno. Hodnota atributů název bude sloužit jako klíče do našich dat, a hodnoty textových vstupů budou hodnoty těchto klíčů. Nyní se pojďme podívat na post.php, soubor, že tato forma je předkládá. Stejně jako jsme to udělali předtím, my jsme prostě zobrazovat obsah proměnné $ _POST. Pojďme přejít na formuláři s http://localhost/form.php. Teď, když jsme se předložit formulář můžeme vidět, že data z form.php je předán post.php bez přidání řetězec dotazu na adresu URL. Nyní jsme viděli dva různé způsoby předávání dat mezi stránkami PHP, získat a zveřejnit. V našich příkladech jsme použili dva různé typy požadavků HTTP. Jak se dalo očekávat, požadavek GET byl použit, když jsme osídlené Byla použita $ _GET z URL, a žádost o příspěvek když jsme obydlený $ _POST. Při navrhování své webové aplikace je to dobré pravidlo použít požadavky GET pokud vaše aplikace bude pouze pro čtení dat, a požaduje příspěvek pokud vaše aplikace bude zapisovat data. Například vyhledávací dotaz číst data z vaší aplikace, takže požadavek GET smysl. Na druhou stranu, bude vaše aplikace zapisovat data přes něco jako registrační formulář, o to požádají, pošta by dávalo větší smysl, a to je přehled některých z technik budeme používat v CS50 vytvořit webové stránky pomocí PHP. Jmenuji se Tommy, a to je CS50. [CS50.TV]