Doug LLOYD: Taigi mūsų Vaizdo PHP sintaksė, mes kalbėjome daug apie tai, kaip PHP gali būti naudojamas komandų eilutėje paleisti programas tokiu būdu, kad mes gana gerai susipažinęs su iš C. Bet kaip aš taip pat paminėjo, tame video, PHP iš pradžių buvo sukurtas įgyvendinti Web programavimas, interneto svetainėse. Ir taip šiame video mes ketiname kalbėti apie tai, kaip mes naudoti PHP interneto plėtros kontekste. Mes žinome, jau nuo Mūsų vaizdo HTML, kad tinklapis yra pastatytas iš visų HTML žymes rinkinys kad semantiškai apibrėžti iš tinklalapio struktūra. Bet svetainių, kurios yra pastatytas su gryno HTML kenčia nuo labai, labai rimtas apribojimas. Ir iliustruoti šį apribojimą, Apžvelkime šiuos. Taigi, dabar aš noriu sukurti tinklalapį kad, kai vartotojas apsilanko IT, tai suteikia man srovę laikas, Cambridge, Mass., ją rodyti iki naujausios minutę. Jeigu aš buvo padaryti šią teisę dabar Galėčiau pasakyti kažką panašaus į tai. Dabartinis laikas Cambridge-- todėl turiu HTML žymes, galvos žodžius, pavadinimas žymės, kūno tags-- srovę Laikas Kembridžo yra 14:08, spausdinti karinę laiką. Kas atsitiks, jei tai dabar 02:09, 14:09? Na iki šiol, su HTML, turiu eiti ir pakeisti jį į 14:09. Ir tada vieną minutę vėliau, Turiu pakeisti jį dar kartą. Ir tada vieną minutę vėliau, Turiu pakeisti jį dar kartą. Ir kaip jūs galite įsivaizduoti, kad tai tikriausiai blogiausias darbas bet kada. Jūs esate tinklalapiui redaktorius, ir kiekvieną minutę, 24 valandas per parą, Jums reikia atnaujinti esamą laiką rankiniu būdu atidaryti time.html ir keičiant tik, kad kodo fragmentą pasakyti Dabartinis laikas valandomis ir minutėmis. Tai tikriausiai nėra labai gerai panaudoti savo išteklius, žmogiškųjų ir skaičiavimo. Tinklalapiai, kurie visi yra HTML yra visiškai statiška. Vienintelis būdas galite atnaujinti turinys, kaip mes ką tik matėme, yra rankiniu būdu atidaryti tuos šaltinį failai, juos redaguoti ir išsaugoti juos. Ir tada, kai vartotojas atgaivina puslapį, arba apsilanko puslapyje pirmas laikas, jie bus gauti naujausią turinį. Bet tik todėl, kad mes rankiniu būdu jį redagavo. Jei pradėsime maišyti šiek tiek PHP ten, Mūsų kodas gali gauti daug lankstesnis. Ir mes galime turėti mūsų puslapiuose būdas būti dinamiška, ar atnaujinti patys, nereikalaujant mūsų vargšams administratoriui ankstesniame pavyzdyje būti rankiniu būdu atnaujinti dalykus. Jie gali tai padaryti automatiškai. Neturime leisti įstoti į bylą. Mes galime pamiegoti. Kuris yra turbūt geras dalykas, jei darai web programavimas daug. Taigi CS50 IDE, vedame Web serveris vadinamas "Apache. Tai labai dažnai naudojamas, atviro kodo žiniatinklio serverio sistema. Ši sistema yra gebėjimas interpretuoti PHP, kuri bus naudinga, jei norite padaryti bet PHP programavimo. Ir CS50 IDE, mes turime komandą kad tai labai lengva padaryti, apache50 pradėti. Ir tada, kad velniop kelias, velniop, velniop rež, tai tik tikrai paplitęs būdas nurodant, ką jūs čia nurodyta yra kelias į ypač katalogas kad jūs nori būti šaknis Svetainės arba šaknis puslapis arba aplanką, iš kurio jūsų žiniatinklio serverio pradės nagrinėti bylas ir tarnauti juos klientams, kurie jas prašo. Taigi leiskite pop perkelti į CS50 IDE, tik parodyti jums, tikrai greitai, kaip tai veikia. Taigi čia CS50 IDE, aš A katalogas vadinamas Savaitė nulis devyni. Ir aš turiu two-- Turiu įvykdytos LS komanda tiesiog pirmiau parodyti jums, kad aš turiu du katalogai čia, PHP kuris yra failų rinkinys, kad aš naudojamas PHP sintaksė vaizdo, tada PHP-interneto, kuri yra failų rinkinys, kad aš norėtų naudoti šį vaizdo įrašą. Ir aš norėčiau pradėti interneto serverio egzempliorius su PHP Web aplanko turinį kaip failai įteikus iki. Taigi, ką aš ketinu daryti? Aš ketina įvesti apache50 erdvę pradėti, erdvė PHP, brūkšnys interneto. Štai į katalogą kelias iš kur aš šiuo metu esu. Tada aš paspauskite Enter. Ji ketina padaryti šiek tiek daiktų čia. Ir tada jis ketina pasakyti, Apache pradėjo sėkmingai. Jūsų svetainė dabar yra at-- ir tada ten už svetainės URL. Taigi, ką aš ketinu daryti? Aš ruošiuosi greitai nukopijuoti tai. Ir aš ruošiuosi atidaryti up-- ir Aš nutolinti truputį here-- Aš ruošiuosi atverti naujas skirtukas "Chrome". Ir aš ruošiuosi aplankyti šį URL. Aš ruošiuosi paspauskite Enter. Tai vyksta įkelti. Ir aš nutolinti dar kartą. Ir matome, čia yra Mano turinys PHP Web Directory. Taigi, dabar, kas iš esmės vyksta Čia yra mano pavyzdys CS50 IDE tarnauja iki šių failų Bet kas, kas juos prašo. Ir virš žinoma Šis vaizdo įrašas, mes rūšiuoti pažvelgti iš jų krūva išvaizdą įvairius failus kontekstą. Norėdami išbandyti, kad jūsų Apache serveris veikia, kuris paprastai vyksta būti atvejis CS50 IDE, bet jei jums tai padaryti apskritai, ir pradėdami kurti savo web Serveriai, ten tikrai bendra tarsi analoginių prie, "hello world", tai yra dažniausiai naudojama PHP Web Development. Kuris yra turėti failą sudaro tik šios code-- PHP atskirkite rinkinys su PHP info, skliaustai, kabliataškiu tarp. Kuris iš esmės yra ypatinga PHP funkcijos, kad jums pasakys, kokia versija PHP dirbate. Taigi CS50 IDE, turiu kad failas prieinama tik parodyti jums, ką šis atrodys. Taigi aš žiūriu mano indeksą iš mano PHP pavyzdžiui. Mano Apache atvejis veikia PHP-Web turinys. Ir aš turiu failas čia vadinamas info.php. Aš ruošiuosi jį spustelėkite, nutolinti. Tai yra tai, ką jūs ketinate pamatyti, gana daug. Tai tik pasakojo, kad mano Apache serveris veikia. Ir tai yra, matyt, PHP versija, kad Bėgu. Tai yra mano analoginis "hello world". Taigi aš žinau, viskas yra veikti. Taigi mes gerai eiti. Mes galime pradėti nuo čia. Taigi leiskite peržiūrėti, kad laikas pavyzdys buvome kalbame apie mūsų prastos webmaster kurie turėjo atnaujinti puslapį nuolat. Tai gali būti dėl, kaip nustatyti Norėčiau įgyvendinti dalykus taip, kad administratoriui nebuvo turi išlaikyti atnaujinimo laiką. Tai tiesiog tarsi atsitikti automatiškai. Toliau pateiktoje žemyn, HTML, tai gana panašūs, su viena išimtimi. Bet čia aš turiu šiek tiek viršuje PHP. Aš, matyt, pavadino šį funkcija date_default_timezone_set. Ir mes nekalbame apie visa Šios funkcijos CS50, nes PHP tikriausiai dešimtys tūkstančių. Tai gali būti, kai jos buvo šiek tiek išpūtimas, tačiau ji gali būti. Jis atšoko funkcijų pastatytas daug. Ir taip, tai yra funkcija, matyt, nustato savo laiko juostą, kaip mus / Rytų, kuri yra laiko juosta, kad aš Šiuo metu priimant šį vaizdo įrašą. Tada aš skambinti į funkcija vadinama, data. Ir, matyt, aš saugojimą JO kažkas vadinamas laiko. Taigi, kas čia vyksta? Na, iš esmės tai, kas vyksta yra, aš skambutį tam tikru serverį, kuris turi pasakykite man, ką laikas metu. Ir aš konvertuoti jį į formatą valandų, minučių, sekundžių. Ir priežastis, tai kapitalas O tai ketina duoti man 24 valandų laiko, o ne 12 valandų laiko, kuris būtų mažosiomis val. Ir aš tiesiog laikyti, kad į kintamąjį vadinamą, laiko. Taigi, kad antroje eilutėje PHP ten, prie skambinimo funkcijos, data, yra tik gauti kai eilutė, kuri yra ketina duoti man datą ir laikas, ir iš kitos informacijos krūva. Ir pirmasis argumentas yra, kad jo, tiesiog išgauti svarbų vaidmenį kad aš rūpi šiame pavyzdyje, kuris yra valandos, minutės, ir, antra. Taigi, kad "viskas, kas vyksta. Taigi, aš laikyti, kad kintamojo $ metu. Ir tada žemyn labai apačioje, aš turėti, kad sutrumpinta spausdinti esamą laiką. Taigi, aš tik ketina spausdinti , kas dabartinis laikas yra. Taigi leiskite pažvelgti tai CS50 IDE ir pamatyti, kaip mes dabar taupyti, kad administratoriui daug problemų. Gerai, kad čia aš vėl atgal į šakninį katalogą mano Apache pavyzdžiui. Ir aš turiu failą čia vadinamas time.php. Aš tik ketina paspausti, kad. Ir aš slinkti aukštyn, nes mes Mastelis gana toli. Dabartinis laikas yra 14:20:34. Taigi darau tai valandų, minutėmis ir sekundėmis. Ir aš galiu atnaujinti puslapis ir gauti naują laiką. --41. Aš ruošiuosi atnaujinti puslapį ir gauti naują laiką, 44, 46, 47. Taigi, aš esu akivaizdžiai nėra kažką pakeisti save. Aš čia atnaujinti puslapį. Taigi, aš negali būti ten atgal jį redaguoti. Ir aš jums pažadu, aš ne jokių konfederatai kurie redaguodami failą mano vardu pusėje. Aš tik naudojant, kad PHP funkciją, laikas, generuoti man laikas automatiškai. Taigi, kad net jei aš miega, ir mano žiniatinklio serveris veikia, vartotojas, kuris apsilanko, kad puslapis yra vis dar ketinate gauti tiksliai esamą laiką. Taigi tai gana gera. Aš atlikau mano svetainę labiau dinamiškas su ne per daug PHP kodą. Tai buvo tik dvi eilutės kodą ir tada šiek tiek spausdinimo ataskaitoje. Ir jau turiu daug labiau dinamiškas svetainė negu pirmajame pavyzdyje matėme ties vaizdo pradžioje. Taigi, prisimenu iš PHP sintaksė vaizdo kad kai PHP interpretatorius veikia Mūsų programa, ji ignoruoja viską tai ne viduje PHP separatoriai, spjaudytis jį. Be to, pavyzdžiui, tai, ką dalykas kad ji buvo spjaudė iš buvo HTML. Ir tai reiškia, kad galiu dabar prikaišioti HTML ir PHP kartu. Kadangi vertėjas tiesiog ignoruoti HTML ir tiesiog išėjimą. Kuris yra gera, tiesa? Nes matyt, Dienos pabaigoje, Norėčiau savo svetainę į būti pagamintos iš HTML. Taigi, kad bet kurios interneto naršyklės gali interpretuoti tai, ar suprasti puslapyje HTML ir padaryti jį kaip kažką, kad mes iš tikrųjų gali suprasti kaip žmogui. Ir aš galiu naudoti tik PHP už mano svetainę dalys reikalauja dinamiškumo, kad reikia mane turėti dalykų, kad atnaujinti nuolat. Statinis informacija gali likti tas pats. Gerai, kad viskas gerai. Bet kodėl aš norėčiau tai padaryti? Kodėl turėčiau maišyti HTML ir PHP? Galėčiau tiesiog atsispausdinti visus HTML naudojant PHP spausdinimo funkciją. Kodėl aš tai daro? Pagalvokite apie tai sekundę. Kodėl, kai aš galėjau tiesiog atsispausdinti out-- aš gali turėti linijas PHP, kad tik pasakyti, Spausdinti HTML tegus, spausdinimo galvutė. Kodėl aš tai daro? Kodėl aš maišant PHP ir HTML? Na, jei jūs manote apie tai sekundę. PHP interpretatorius turi interpretuoti tai, ką jis mato. Ir todėl jis ketina turėti vykdyti kodo eilutę. Atsispausdinkite HTML. Atsispausdinkite atviru viršumi žymą. Atsispausdinkite atvira žymės pavadinimą. Tai teks vykdyti ir interpretuoti kad kiekvienu žingsnį būdu. Kodėl ne tik tegul interpretatorius tiesiog Koloryzować dalykų ji nesupranta ir tai padaryti automatiškai? Jis ketina išsaugoti man daug laiko maišyti savo HTML ir PHP mano drauge. Ir taip, tai kodėl mes darome ne tiesiog atvirą PHP skyriklis ir tada tiesiog atsispausdinti visą turinys mūsų puslapyje, kaip vieną milžinišką PHP skambinti funkcija, spausdinti, ir tada Uždaryti PHP skyriklis ir baigsime. Štai kodėl mes sumaišykite juos kartu. Iki šiol mes nematėme per daug skirtumas nuo bendro PHP sintaksė. Tai buvo gana paprasta. Mes jau matėme klaustukas, lygūs. Mes matėme keletą naujų funkcijų skambučių pora, bet nieko tikrai išgalvotas vyksta. Leiskite gal padaryti dalykus šiek tiek mėgėjas. Ką daryti, jei mes norime perduoti informaciją tarp skirtingų PHP failus, kad gal vartotojas gali pateikti informaciją man. Ir tada aš galėčiau padaryti kažką su juo į kitą puslapį. Taigi PHP paramą kažkas vadinamas "Super Globalus Kintamieji, kurie skamba gana awesome. Jie tikrai tik Giant Association masyvai kad padėti įgyvendinti šį funkcionalumas kitko informacija tarp PHP failus, yra esama mūsų serveryje. Pirmasis iš šių super globals vadinamas $ _GET. Ir tai turbūt paprasčiausias suprasti. Kas atsitinka su $ _GET? Na, iš esmės, vartotojas ketina įvesti papildomą informaciją, tuo mūsų URL pabaigoje. Ir ką jie tipo, darant prielaidą, jis suformatuotas tam tikru būdu vadinamas užklausos eilutę, kuri yra tik iš pagrindinių verčių porų rinkinys atskirti pagal jungimo ženklus. Tos rakto poros bus saugomi $ _GET masyvą. Ir iš mūsų vaizdo PHP sintaksė, mes žinome, kaip dirbti su Association masyvai jau. Taigi čia yra pavyzdys kai PHP, kurioje gal aš gavybos visi pagrindiniai vertės porų kad vartotojas, tiekiamą URL. Taigi turiu Open PHP skyriklis. Turiu foreach ciklą. Aš Iteracja visoje Super Pasaulinis masyvas vadinamas $ _GET. Ir aš noriu, kad būtų galima kreiptis tiek raktui ir vertę. Ir aš tiesiog jų spausdinimą , ir kiekvienu atveju viena ant matyt, savo dalis žyma čia. Aš spausdinti šiek tiek HTML ir interpoliuojant vertes raktas ir vertę į šio pareiškimo. Taigi leiskite pažvelgti, kaip tai atrodo būtų faktiškai dirba mūsų IDE. O gal tai padės iliustruoti truputį ką gaunate iš tikrųjų daro. Taigi, aš vėl čia mano interneto šaknis. Ir aš priartinti A šiek tiek parodyti jums, kad turiu failą pavadinimu, get1.php. Taigi leiskite paspausti get1.php. Ir aš nematau jokio turinio. Tai keista, tiesa? Na, tikrai ne iš tikrųjų. Nes aš nepateikė nieko URL. Aš ruošiuosi get1.php, bet aš nepateikė jokių rakto poros kaip savo užklausos eilutę. Taigi leiskite pridėti užklausos eilutę ir pamatyti, ką šis failas gali padaryti. Norėdami pradėti užklausos eilutę jums tiesiog įrašykite klaustuką. Tada gal aš sakau name = Doug & metai = 2015. Ir tada aš paspauskite Enter. Dabar pastebėti, kas vyksta. Aš vis dar get1.php. Bet dabar aš tiekiamas rakto poros, ir aš spausdinti juos dėl jų pačių paragraph-- vardas, Doug-- metų, 2015. Būtent kodas mes tiesiog pamačiau ant skaidrės prieš momentas. O jei aš noriu gal pridėti kitą rakto pora, & class = CS50. Dabar turiu kitą rakto pora, kad manimi išspausdinti kai aš peržiūrėti URL dar kartą. Dabar gal tai ne suformatuotas siaubingai gerai. Taigi turiu kitą get.php versiją. Tai get2.php. Į šis skirtumas vienas Turiu CSS failą, ir formatai dalykų šiek tiek daugiau gražiai man. Tai gal ir ne pats Gražus CSS pasaulyje. Bet tai tik dar vienas būdas tai daryti. Taigi, aš vis dar galite gauti prieigą mano kintamųjų naudojant $ _GET. Ir šiuo atveju, aš tiesiog rūšies priėmimo CSS šiek tiek daugiau išgalvotas. Ir jei mes pop perkelti į Mano IDE antra, Aš jums parodysiu, mano PHP web katalogas čia get2.php. Mes ją atidaryti, kai HTML čia. Matyt aš susiejimas, kad CSS failą aš kalbėjau apie tai. Aš atidaryti lentelę žymą. Ir tada čia mano foreach ciklas. Čia yra tai, kad tai, ką aš parodė ant prieš skaidrę. Vienintelis skirtumas yra tai, aš turi šį raktą ir vertės CSS stilius, kad aš kreiptis į jį. Bet tai viskas, ką aš darau, yra aš Iteracja visoje $ _GET gauti visus iš pagrindinių verčių porų. Ir aš jų spausdinimą, kaip stalo. Ir, matyt, aš formatavimą raktus vienaip, su