DOUG LLOYD: Nii meie Video PHP süntaksit, Me rääkisime palju, kuidas PHP saab kasutada käsureal programmide käivitamiseks sellisel viisil, et me oleme päris tuttav C. Aga nagu ma ka eespool et video, PHP algselt välja töötatud rakendada veebi programmeerimine, veebilehed. Ja nii see video me oleme hakka rääkima, kuidas me kasutada PHP veebiarendust kontekstis. Me teame, juba alates Meie video HTML, et veebilehed on ehitatud välja rea ​​HTML sildid et semantiliselt määratlevad struktuuri veebilehel. Aga veebisaidid, mis on ehitatud puhas HTML kannatavad väga, väga tõsiseks takistuseks. Ja selle illustreerimiseks piirang, Vaatleme järgmist. Nüüd ma tahan ehitada veebilehel et kui kasutaja külastab seda, see annab mulle praegune aega Cambridge, Mass., väljapanek see viimane minut. Kui ma olin tehes seda kohe, Ma võiks öelda midagi sellist. Praegune aeg Cambridge-- nii et ma pean HTML juht sildid, pealkiri sildid, keha tags-- praeguse aega Cambridge on 14:08, väljatrükk sõjalise aega. Mis juhtub, kui see on praegu 02:09, 14:09? Noh nii kaugele, HTML, mul on minna ja muuta selle 14:09. Ja siis üks minut hiljem, Ma pean seda uuesti muuta. Ja siis üks minut hiljem, Ma pean seda uuesti muuta. Ja nagu te võite ette kujutada, et on ilmselt kõige kehvem kunagi. Sa oled webmaster veebilehe, ja iga minut, 24 tundi päevas, teil on vaja uuendada praegust aega käsitsi avada time.html ja muutuvate lihtsalt, et oma koodi öelda Praegune aeg tundides ja minutites. See ilmselt ei ole väga hea kasutada oma ressursse, nii inimeste kui ka arvutuslikke. Veebilehed, mis on kõik HTML on täiesti staatiline. Ainult nii saab uuendada sisu, nagu me oleme just näinud, on käsitsi avama need allikas failid, muuta ja salvestada. Ja siis, kui kasutaja värskendab lehel või külastab lehel esimest aega, need saad uusima sisu. Aga ainult sellepärast me oleme käsitsi redigeerida seda. Kui hakkame segada mõned PHP seal, Meie koodi saan palju paindlikumaks. Ja meil on nii meie lehekülge olema dünaamiline, või uuendada ise, nõudmata meie vaene webmaster eelmises näites käsitsi värskendamine asju. Nad võivad seda teha automaatselt. Me ei pea sekkuma. Me saame magada. Milline on ilmselt hea, kui sa teed palju veebi programmeerimine. Nii CS50 IDE, võtame veebiserver nimetatakse Apache. See on väga sageli kasutatud, avatud lähtekoodiga web server süsteem. See süsteem on gendavad PHP, mis saab olema kasulik, kui sa tahad teha mingeid PHP programmeerimine. Ja CS50 IDE, meil on käsk teha seda väga lihtne teha, apache50 hakata. Ja siis, et slash tee, kaldkriips, et, kaldkriips dir, et on lihtsalt väga levinud viis näitab, mida olete siin määratud on tee erilist kaustas tahad olla just veebisait või root lehel või kaust, mida oma veebiserver hakkab uurima faile ja teenida neid kliente, kes nõuavad neid. Nii saab pop üle CS50 IDE, lihtsalt näitan sulle, tõesti kiire, kuidas see toimib. Nii et siin on CS50 IDE, ma olen oma kataloog nimega Week Zero Nine. Ja mul on two-- mul sooritanud LS käsk lihtsalt eespool näidata teile, et mul on kahe kataloogiga siin, PHP, mis on kogum faile, mis ma kasutada PHP süntaksi video, ja siis PHP-web, mis on kogum faile, mis ma tahaks kasutada selle video. Ja ma tahaksin alustada veebiserver näiteks sisuga PHP-web kausta kui failid on teeninud üles. Mida ma nüüd teen? Ma kavatsen kirjutada apache50 ruumi alustada, ruumi PHP, kriips web. See on tee kataloog kust ma praegu olen. Siis ma Enter. See saab teha Natuke kraami. Ja siis ta läheb öelda, Apache algas edukalt. Sinu sait on nüüd saadaval at-- ja siis seal on URL saidile. Mida ma nüüd teen? Ma lähen kiiresti kopeeri see. Ja ma lähen avada up-- ja Ma suumida natuke siin-- Ma lähen avama uued kaardid Chrome. Ja ma lähen külla, et URL. Ma lähen Enter. See saab laadida. Ja ma suumimiseks uuesti. Ja me näeme, et siin on sisu oma PHP web directory. Nüüd, mis on põhimõtteliselt juhtub siin on minu astme CS50 IDE kannab kuni need failid keegi, kes soovib neid. Ja jooksul Selle video, me mingisugune heita pilk hunnik neid erinevaid faile kontekstis. Et kontrollida, et Teie Apache server töötab, mis tavaliselt läheb et antud juhul on CS50 IDE, aga kui sa seda teed üldiselt ja kui hakkate hoone oma veebilehel serverid, seal on tõesti ühise omamoodi analoog, "Tere maailm", mis on tavaliselt kasutatakse PHP veebiarendust. Milline on, et faili koosneb ainult seda code-- PHP eraldaja komplekt PHP info, sulgudes semikooloniga vahel. Milline on põhimõtteliselt eriline PHP funktsioon, mis ütleb teile, Mis versioon PHP teil on. Nii CS50 IDE, mul on et fail saadaval ainult teile näidata, mida see näeks. Nii et ma vaatasin indeks minu PHP näiteks. Minu Apache näiteks töötab sisu PHP-Web. Ja mul on pilt siin nimetatakse info.php. Ma vajutan seda, et välja suumida. See on see, mida sa lähed näha, päris palju. See on lihtsalt ütleb mulle, et minu Apache server töötab. Ja see on, ilmselt PHP versiooni, et mul hakkab. See on minu analoog "tere." Nii et ma tean asju on töökorras. Nii et me oleme hea minna. Me saame minna siit. Nii saab vaadata, et aega näiteks olime räägime meie vaesed webmaster kes pidi lehekülge uuendada pidevalt. See võib olla näiteks fix kuidas Oleksin rakendada asjad nii et webmaster ei on hoida ajakohastamine aega. See oleks justkui toimu automaatselt. Sätestatakse alla, HTML, see on üsna sarnased, kuid ühe erandiga. Aga siin on mul mõned PHP tipus. Olen ilmselt nimetatakse seda funktsiooni date_default_timezone_set. Ja me ei räägi kõik Nende funktsioonide CS50, sest PHP on ilmselt kümneid tuhandeid. See võib olla natuke liialdus, kuid see ei pruugi olla. See ju palju funktsioone ehitatud. Ja nii on see funktsioon ilmselt seab minu ajavööndis USA / Ida, mis on ajavöönd, et ma olen praegu teeb selle video. Siis ma helistada funktsiooni nimetatakse, kuupäeva. Ja ilmselt ma hoiustamiseks TEMA on midagi, mida nimetatakse, aeg. Mis siin toimub? Noh, põhimõtteliselt mida on toimuvast, ma helistada mõned server, mis läheb öelge mulle, mida aeg praegu on. Ja ma teisendamata formaadis tunde, minuteid, sekundeid. Ja põhjus on kapitali H on see läheb mulle 24 tunni jooksul, mitte 12 tund aega, mis oleks väiketähed h. Ja ma lihtsalt ladustamiseks, et muutujale nimega aega. Nii et teine ​​rida PHP seal, kõne funktsioon, Praeguseks on lihtsalt saada mõned string, mis on annan ma kuupäeva ja aega, ja hunnik muid andmeid. Ja esimene argument on, et tema, on lihtsalt kaevandavad oluline osa et ma hoolin selleks näiteks mis on tund, minut ja sekund. Nii et kõik, mis toimub. Nii et ma salvestada et muutuja $ aega. Ja siis maha Kõige all on, ma on, et lühendvormina väljatrükk kellaaeg. Nii et ma lähen lihtsalt printida välja, mida praegune aeg on. Võtame pilk seda CS50 IDE ja kuidas me nüüd säästa, et webmaster palju vaeva. Hea küll, et siin ma olen jälle tagasi juurkataloogi minu Apache näiteks. Ja mul on pilt siin nimetatakse time.php. Ma lihtsalt klikkima seda. Ja ma liikuge üles, sest me suurendatud päris kaugele. Praegune aeg on 14:20:34. Nii et ma teen seda tundi, minutites ja sekundites. Ja ma ei saa värskendada lehel ning lugege uus aeg. --41. Ma lähen värskenda lehekülge ja saada uus aeg, 44, 46, 47. Niisiis, ma olen selgelt ei muutuvas midagi ise. Ma olen siin oma leheküljele. Nii et ma ei saa sinna tagasi seda redigeerima. Ja ma luban teile, ma ei mingit confederates kes muudate faili minu nimel küljel. Ma lihtsalt kasutades, et PHP funktsioon, aega, et tekitada aeg minu jaoks automaatselt. Nii et isegi kui ma magan, ja minu veebiserver töötab, kasutaja, kes külastab et leht on ikka hakka täpselt praeguse aja. Nii et on päris hea. Olen teinud minu leheküljel dünaamilisem mitte liiga palju PHP koodi. See oli vaid kaks rida koodi ja seejärel natuke prindi avalduse. Ja juba on mul palju dünaamilisem site kui esimene näide nägime alguses video. Nii, mäletate video PHP süntaksit et kui PHP tõlk töötab Meie programmi, see ei võta kõike see ei ole sees PHP piirajaid, sülitab välja. Selle näite, mida asja et see oli sülitab välja oli HTML. Ja see tähendab, et mul on nüüd Lomittaa HTML ja PHP koos. Kuna tõlk lihtsalt ignoreerida HTML ja sõna otseses mõttes väljundi see. Milline on hea, eks? Kuna eeldatavalt lõpus päeval, Soovin, et minu sait ehitatakse HTML. Nii et kõik veebilehitseja tõlgendavad see või mõista HTML lehel ja muuta see midagi, mida me saab tegelikult aru, sest inimestel. Ja ma ei saa kasutada ainult PHP osade jaoks sivustoni nõuavad dünaamikat, mis vajavad mind on asju, mis uuendab pidevalt. Staatiline info võib jääda samaks. OK, nii et see on hea. Aga miks ma seda teen? Miks ma segada HTML ja PHP? Ma võiks lihtsalt välja printida kõiki HTML, kasutades PHP väljatrükki. Miks ma ei tee seda? Mõtle sellele teist. Miks, kui ma võiks lihtsalt printida out-- ma võiks olla rida PHP, et lihtsalt öelda, print HTML tag, prindipea. Miks ma ei tee seda? Miks ma segades PHP ja HTML? Noh, kui te arvate, sellest teist. PHP tõlk on tõlgendada, mida ta näeb. Ja nii see läheb on täita rida koodi. Prindi välja HTML. Prindi välja avatud pea tag. Prindi välja avatud pealkiri tag. See saab olla viia ning tõlgendada et iga sammul. Miks mitte lihtsalt lasta tõlk lihtsalt ilustada asju ta ei saa aru ja seda automaatselt? See saab päästa palju aega segada minu HTML ja minu PHP koos. Ja nii see on, miks me seda ei tee lihtsalt avatud PHP eraldaja ja siis lihtsalt välja printida kogu sisu meie lehele üks hiiglane PHP kõne funktsioon, Print ja seejärel Sulge PHP eraldaja ja ongi kõik. Nii et miks me segatakse neid koos. Siiani ei ole me näinud liiga palju erinevus üldisest PHP süntaksit. See on olnud üsna lihtne. Me oleme juba näinud küsimärk, võrdsed. Nägime paar uut funktsiooni kõned kuid midagi väga fancy toimub. Lähme äkki teha asju veidi Kasvataja. Mis siis, kui me tahame, et edastada teavet erinevate PHP faile, nii et äkki saab kasutaja esitavad mulle. Ja siis ma võiks teha midagi koos selle teisele leheküljele. Nii PHP on toetust midagi, mida nimetatakse Super Global Muutujad, mis kõlab päris vinge. Nad on tõesti ainult hiiglane assotsiatiivne massiivid et aidata rakendada seda funktsionaalsust möödaminnes info vahel PHP faile on olemasolevate meie veebiserver. Esimene neist super globals nimetatakse $ _GET. Ja see on ilmselt kõige lihtsam aru saada. Mis juhtub $ _GET? Noh, põhimõtteliselt on kasutaja läheb kirjutad Täiendava info lõpus meie URL. Ja mida iganes nad kirjutada, eeldades see on vormindatud teatud viisil nimetatakse stringi, mis on lihtsalt komplekt põhiväärtus paari lahutada poolt sümboliga. Need põhiväärtus paari on salvestatakse $ _GET assotsiatiivne massiiv. Ja meie video PHP süntaksit, me teame kuidas töötada assotsiatiivne massiivid juba. Nii et siin on näide Mõnedes PHP, kus äkki ma olen kaevandavad kõik põhiväärtus paari et kasutaja tarnitakse URL. Nii et mul on minu Open PHP eraldaja. Mul on foreach loop. Ma iterating kogu Super Global Array nimega $ _GET. Ja ma tahan, et oleks võimalik viidata nii võti ja väärtus. Ja ma lihtsalt trükkimise välja, iga üks ilmselt oma lõike tag siin. Ma väljatrükk mõned HTML ja interpoleerimisteguriga väärtused oluliste ja väärtuse, mis kinnitus. Võtame pilk kuidas seda oleks tegelikult töötavad meie IDE. Ja võib-olla see aitab illustreerivad natuke mida SAADA tegelikult tegeleb. Nii et ma olen tagasi siin minu web root. Ja ma suurendus natuke näitan sulle et mul on olemas fail, get1.php. Nii saab klõpsata get1.php. Ja ma ei näe sisu. See on imelik, eks? Noh, tegelikult mitte tegelikult. Sest ma ei esitanud midagi URL. Ma lähen get1.php, aga ma ei andnud põhiväärtus paari osana oma stringi. Lisame päringustringiga ja vaata, mis seda pilti teha. Kõigepealt päringustringiga sa kirjuta küsimärk. Siis äkki ma ütlen name = Doug & aasta = 2015. Ja siis ma Enter. Nüüd märgata, mis toimub. Ma olen ikka veel get1.php. Aga nüüd ma olen saadaval põhiväärtus paari, ja ma olen trükkimise läbi oma paragraph-- nimi, Doug-- aastal, 2015. See on täpselt koodi me lihtsalt nägin slaidile hetk tagasi. Ja kui ma tahan äkki lisada veel põhiväärtus paari, ja class = CS50. Nüüd on mul veel üks oluline väärtus paar, mis on välja prinditud kui ma uuesti URL uuesti. Nüüd äkki see ei ole vormindatud kohutavalt hästi. Nii et mul on teine ​​versioon get.php. See on get2.php. Erinevus käesoleva üks on mul CSS faili, ja see vormingud asjad veidi rohkem kenasti minu jaoks. See on võib-olla mitte kõige ilus CSS maailmas. Aga see on lihtsalt üks viis seda teha. Nii ma ei saa ikka pääse minu muutujaid kasutades $ _GET. Ja sel juhul, ma olen lihtsalt selline muutes CSS veidi fancy. Ja kui me pop üle minu IDE teist, Ma näitan sulle minu PHP web Kataloog siin, get2.php. Me seda avatumaks, mõned HTML siin. Ilmselt ma sidudes selle CSS faili ma rääkisin. Ma avada tabeli tag. Ja siis siin on minu foreach loop. Siin on, mida ma näitas slaidil enne. Ainus erinevus on see, ma on see võti ja väärtus CSS stiil, et ma olen nende suhtes kohaldatakse. Aga see on kõik, mida ma teen, on ma olen iterating üle $ _GET saada kõik võtme väärtus paare. Ja ma nende trükkimise välja tabelis. Ja ilmselt ma vormingu võtmed üks võimalus, mille