DOUG LLOYD: Svo à okkar vÃdeó á PHP setningafræði, við ræddum mikið um hvernig PHP er hægt að nota á the stjórn lÃna til að keyra forrit á þann hátt sem við erum nokkuð kunnugur frá C. En eins og ég nefndi lÃka à þeirri vÃdeó, PHP var upphaflega þróað til framkvæma vefur forritun, vefsÃður. Og svo à þessu myndbandi sem við erum að fara að tala um hvernig við nota PHP à þróun vefur samhengi. Við vitum, nú þegar, frá VÃdeó okkar á HTML, sem vefsÃður eru byggð út af a setja af HTML tags að merkingu skilgreina uppbyggingu vefsÃðu. En vefsÃður sem eru byggð með hreinu HTML þjást af mjög, mjög alvarlegt takmörkun. Og til að sýna þessa takmörkun, skulum hafa eftirfarandi à huga. Svo nú vil ég að byggja upp vefsÃðu að þegar notandi heimsækir það, það gefur mér núverandi tÃmi à Cambridge, Mass., sýna það à nýjustu mÃnútu. Ef ég var að gera þetta núna, Ãg gæti sagt eitthvað eins og þetta. Núverandi tÃmi à Cambridge-- þannig að ég hef HTML tags, höfuð merki, titill tags, lÃkami tags-- straumnum tÃmi à Cambridge er 14:08, prenta út her sinn. Hvað gerist ef það er nú 02:09, 14:09? Jæja svo langt, með HTML, ég hef að fara à og ââbreyta þvà à 14:09. Og þá einni mÃnútu sÃðar Ãg verð að breyta þvà aftur. Og þá einni mÃnútu sÃðar Ãg verð að breyta þvà aftur. Og eins og þú geta Ãmynda sér, það er lÃklega það versta starf alltaf. Ãú ert vefstjóri fyrir vefsÃðu, og með hverri mÃnútu, 24 tÃma á dag, þú þarft að uppfæra núverandi tÃma með handvirkt opna time.html og breyta bara að runu af kóða til að segja Núverandi tÃmi à klukkustundum og mÃnútum. Ãað er lÃklega ekki mjög gott að nota auðlindir okkar, bæði menn og computational. VefsÃður sem eru allt HTML eru alveg truflanir. Eina leiðin sem þú getur uppfært efni, eins og við höfum bara séð, er að höndunum opna slÃkar uppspretta skrár, breyta þeim og bjarga þeim. Og sÃðan þegar notandi endurnýjast á sÃðunni, eða heimsækir sÃðu fyrir fyrsta tÃmi, þeir fá það efni. En aðeins vegna þess að við höfum handvirkt breyta henni. Ef við byrjum að blanda smá PHP à það, númer okkar er hægt að fá mikið sveigjanlegri. Og við getum haft leið fyrir sÃður okkar að vera dynamic, eða endurnýja sig, án þess að þurfa léleg okkar vefstjóri à fyrra dæmi að vera handvirkt að uppfæra hluti. Ãeir geta gert það sjálfkrafa. Við þurfum ekki að grÃpa. Við getum fengið smá svefn. Sem er lÃklega gott ef þú ert að gera a einhver fjöldi af forritun á vefnum. Svo à CS50 IDE, hlaupa við a vefþjónn heitir Apache. Ãað er mjög algengt, opinn uppspretta vefur framreiðslumaður kerfi. Ãetta kerfi hefur getu til að túlka PHP, sem er að fara til að vera gagnlegt ef þú vilt gera allir PHP forritun. Og à CS50 IDE, höfum við stjórn til að gera þetta mjög auðvelt að gera, apache50 byrja. Og þá að rista Slóðin, rista til, rista dir, það er bara mjög algeng leið til að sem gefur til kynna hvað þú hefur tilgreint hér er leið til að tiltekin skrá sem þú langar að vera rót staður, eða rót sÃðu, eða möppuna sem netþjóninn þinn við að athuga skrár og þjóna þá upp til viðskiptavina sem þess óska ââþá. Svo skulum skjóta yfir CS50 IDE, bara til að sýna þér, mjög fljótur, hvernig þetta virkar. Svo hér à CS50 IDE, ég er à Skrá kallað vika Zero Nine. Og ég hef two-- ég hef undirritað LS stjórn bara að ofan til að sýna þér að ég hef tveir framkvæmdarstjóra à hér, PHP, sem er sett af skrám sem ég notaði à setningafræði PHP vÃdeó, og þá PHP-vefur, sem er sett af skrám sem ég langar að nota à þessu myndbandi. Og ég vildi eins og til að byrja a vefur framreiðslumaður dæmi með innihaldi PHP-vefur möppu sem skrár eru verið að bera upp. Svo hvað er ég að fara að gera? Ãg ætla að slá apache50 pláss byrja, rúm PHP, þjóta vefur. Ãað er leið til að skrá frá þar sem ég er nú. Ãá ég högg á Enter. Ãað er að fara að gera a smá dót hér. Og þá er að fara að segja, Apache byrjaði með góðum árangri. SÃða þÃn er nú à boði at-- og þá er það URL fyrir sÃðuna. Svo hvað er ég að fara að gera? Ãg ætla að fljótt að afrita þetta. Og ég ætla að opna up-- og Ãg þysja út smá here-- Ãg ætla að opna a nýr flipi à Chrome. Og ég ætla að heimsækja þessi slóð. Ãg ætla að ýta á Enter. Ãað er að fara að hlaða. Og ég ætla að minnka það aftur. Og við getum séð hér er Innihald PHP vefur skrá minn. Svo nú hvað er à grundvallaratriðum að gerast hér er dæmi mitt CS50 IDE er að þjóna upp þessar skrár til hver sem óskar þeim. Og á meðan á þetta video, munum við raða á taka a lÃta á fullt af þessum mismunandi skrár à samhengi. Til að prófa að Apache þÃnu Miðlarinn er að vinna, sem er almennt að fara að vera raunin à CS50 IDE, en ef þú gerir þetta meira almennt, og þú byrjar að byggja upp eigin þinn vefur netþjónum, það er mjög algeng tegund af flaumi til, "halló heimur," það er yfirleitt notað fyrir PHP vefur þróun. Sem er að hafa skrána sem samanstendur af aðeins þessum code-- a PHP skiltákn sett með PHP upplýsingar, svigum, semÃkommu á milli. Sem er à grundvallaratriðum a sérstakur PHP virka sem segir þér hvaða útgáfa af PHP þú ert að keyra. Svo à CS50 IDE, ég hef sem skrá à boði bara til að sýna þér hvað þetta myndi lÃta út. Ãannig að ég er að horfa á vÃsitölu minn frá PHP dæmi mÃnu. Apache dæmi er à gangi innihald PHP-vefnum. Og ég er með skrá hér kallað info.php. Ãg ætla að smella á hann, zoom út. Ãetta er það sem þú ert að fara að sjá, ansi mikið. Ãetta er bara að segja mér að Apache miðlara minn er að vinna. Og þetta er virðist, útgáfa af PHP sem ég er að keyra. Ãetta er byggður á hliðstæðum mÃn að "Halló heimur". Ãannig að ég veit það eru starfræktar. Ãannig að við erum gott að fara. Við getum haldið áfram héðan. Svo skulum rifja það Hvenær dæmi við vorum að tala um með lélega vefstjóra okkar sem þurfti að uppfæra sÃðuna stöðugt. Ãetta gæti verið festa fyrir hvernig Ãg myndi innleiða hlutina þannig að vefstjóri ekki að halda að uppfæra tÃmann. Ãað myndi bara svona gerast sjálfkrafa. The niðri, HTML, það er nokkuð svipuð, með einni undantekningu. En hér er ég hef fengið nokkrar PHP efst. Ãg hef greinilega, kallað þetta virka date_default_timezone_set. Og við ekki tala um allt þessar aðgerðir à CS50, vegna þess að PHP er sennilega tugir þúsunda. Ãað gæti verið hluti af óákveðinn greinir à ensku ýkjur, en það gæti ekki verið. Ãað er got a einhver fjöldi af aðgerðum byggð Ã. Og svo er þetta fall virðist setur tÃmabelti sem US / Eastern, sem er tÃmabelti sem ég nú à að gera þetta myndband. Ãá er ég að hringja à virka heitir, dagsetning. Og virðist ætla ég að geyma à HIS eitthvað sem kallast, tÃma. Svo hvað er að gerast hér? Jæja, à grundvallaratriðum er það gerast er, ég er að hringja að einhverjum miðlara sem er að fara að segja mér hvað tÃminn nú er. Og ég er að umbreyta henni à formi klukkustundir, mÃnútur, sekúndur. Og ástæðan að það er höfuðborg H er þetta er að fara að gefa mér 24 klst tÃma, ekki 12 klukkustund tÃma, sem væri lágstafir klst. Og ég ætla bara að geyma það à breytu sem heitir, tÃmi. Ãannig að annarri lÃnu PHP það, sem kalla að aðgerðinni dagsetning, er bara að fá einhver strengur, sem er að fara að gefa mér dagsetninguna og tÃmi, og fullt af öðrum upplýsingum. Og fyrsta rifrildi þar, að hans, er bara útdráttur mikilvægu hlutverki sem ég hugsa um à þessu dæmi, sem er klukkutÃma, mÃnútu, og annað. Svo er það allt sem er að gerast. Svo ég geyma það à breytu $ tÃma. Og þá niður á við mjög botn þar, ég hafa þessi styttingin fyrir prenta út núverandi tÃma. Ãannig að ég ætla bara að fara að prenta út hvað núverandi tÃmi er. Svo skulum taka a lÃta á þetta à CS50 IDE og sjá hvernig við erum núna sparnaður sem vefstjóra mikið af vandræðum. Allt à lagi, svo hér er ég aftur aftur á the rót skrá af Apache dæmi mÃnu. Og ég er með skrá hér kallað time.php. Ãg ætla bara að fara að smella á það. Og ég ætla að fletta upp, þvà við erum aðdregna à nokkuð langt. Núverandi tÃmi er 14:20:34. Ãannig að ég ætla að gera það klukkustundir, mÃnútur og sekúndur. Og ég get hressa sÃðu og fá nýja tÃma. --41. Ãg ætla að uppfæra sÃðuna og fá nýja tÃma, 44, 46, 47. Svo er ég greinilega ekki breyta neinu sjálfur. Ãg er hér að endurhlaða sÃðuna. Ãannig að ég get ekki aftur það breyta þvÃ. Og ég lofa þér, ég er ekki hefur einhverjar bandamanna sem eru að breyta skrá fyrir mÃna hönd á hlið. Ãg ætla bara að nota þessi PHP virka, tÃmi, til að mynda tÃma fyrir mig sjálfkrafa. Svo að jafnvel ef ég er sofandi, og vefur framreiðslumaður er à gangi, notandinn sem heimsækir að sÃðan sé enn fara að fá nákvæmlega hvað klukkan er. Svo er það mjög gott. Ãg hef gert sÃðuna mÃna meira dynamic með ekki of mikið PHP kóða. Ãað var bara tvær lÃnur af kóða og þá smá prenta yfirlýsingu. Og þegar ég er með miklu meira dynamic sÃða en það fyrsta dæmi sem við sáum à byrjun af the vÃdeó. Svo, muna frá the vÃdeó á PHP setningafræði að þegar PHP túlkur keyrir áætlun okkar, hundsar það allt það er ekki inni à PHP afmarkararnir, skyrpa þvÃ. à þvà dæmi, það er hlutur að það var spúandi var HTML. Og þetta þýðir að ég get nú intersperse HTML og PHP saman. Ãar sem túlkur verður bara hunsa HTML og bókstaflega framleiðsla það. Sem er gott, ekki satt? Vegna væntanlega, à lok dagsins, Mig langar sÃðuna mÃna til smÃðuð á HTML. Ãannig að allir vefur flettitæki geta túlkað það, eða skilja HTML á sÃðunni og láta það sem eitthvað sem við getur raunverulega skilja eins og menn. Og ég get bara notað PHP fyrir hluta af sÃðunni minni sem krefjast afls, sem krefjast mig að hafa allt að uppfæra stöðugt. The truflanir upplýsingar getur dvöl the sami. OK, svo er það allt à lagi. En hvers vegna vildi ég gera þetta? Hvers vegna vildi ég blanda HTML og PHP? Ãg gæti bara prenta út alla HTML, með þvà að nota PHP prenta virka. Hvers vegna fæ ég ekki að gera það? Hugsaðu um það fyrir a second. Hvers vegna, þegar ég gæti bara prenta out-- I gæti hafa lÃnur PHP sem bara segja, prenta HTML tag, prenthaus. Hvers vegna fæ ég ekki að gera það? Hvers vegna er ég að blanda PHP og HTML? Jæja, ef þú heldur um það fyrir a second. PHP, túlkurinn hefur að túlka það sem það sér. Og svo það er að fara að hafa að framkvæma lÃnu af kóða. Prenta út HTML. Prenta út opinn höfuð tag. Prenta út opinn titill tag. Ãað er að fara að þurfa að framkvæma og túlka að hvert einasta skref á leiðinni. Hvers vegna ekki bara láta túlkur bara gljái yfir það sem hann ekki skilur og gera það sjálfkrafa? Ãað er að fara að spara mér mikið af tÃma að blanda HTML minn og PHP mÃna saman. Og svo er það hvers vegna við gerum ekki bara að hafa opinn PHP skiltákn og þá bara prenta út á allt Innihald sÃðunni okkar eins og einn risastór PHP hringja à virka, Prenta, og þá nálægt PHP skiltákn og við erum að gera. Svo er það hvers vegna við blanda þeim upp saman. Svo langt, höfum við ekki séð of mikið af munur frá almennu PHP setningafræði. Ãað hefur verið frekar einfalt. Við höfum þegar séð spurningarmerki, jafnir. Við sáum nokkra nýja virka sÃmtöl, en ekkert à raun fÃnt að fara á. Skulum kannski gera hlutina smá áhugamaður. Hvað ef við viljum koma upplýsingum milli mismunandi PHP skrá, þannig að kannski notandinn getur skila upplýsingum til mÃn. Og þá gæti ég gert eitthvað með það á aðra sÃðu. Svo hefur PHP stuðning eitthvað sem kallast Super Global Breytur, sem hljómar nokkuð ógnvekjandi. Ãeir eru à raun bara risastór tengin fylki sem hjálpa innleiða þetta virkni brottför upplýsingum milli PHP skrá sem eru fyrirliggjandi á vefþjóninum okkar. The fyrstur af þessum frábær VÃðværur heitir $ _GET. Og það er lÃklega einfaldasta að skilja. Hvað gerist með $ _GET? Jæja, à grundvallaratriðum, the notandi er að fara að skrifa auka upplýsingar à lok slóðum okkar. Og hvað þeir slá, miðað það er sniðinn á ákveðinn hátt kallað fyrirspurn band, sem er bara a setja af helstu gildi pör aðskilin með -merkið. Ãeir helstu gildi pör verður geymdar à $ _GET tengin array. Og frá vÃdeó okkar á PHP setningafræði, við vitum hvernig á að vinna með tengin fylki nú þegar. Svo er hér dæmi um sumir PHP, þar kannski er ég útdráttur öllum af the lykill gildi pör sem notanda til staðar à vefslóðinni. Ãannig að ég hef Open PHP mÃna skiltákn. Ãg er með framhandleggur lykkja. Ãg iterating yfir Super Global Array kallað $ _GET. Og ég vil vera fær um að vÃsa bæði inni og verðmæti. Og ég ætla bara að prenta þau út, hver á greinilega eigin mgr tag þess hér. Ãg er að prenta út nokkur HTML og brúa gildi af inni og gildi à þeirri yfirlýsingu. Svo skulum taka a lÃta á hvernig þetta væri à raun vinna á IDE okkar. Og kannski þetta mun hjálpa sýna smá um hvað GET er à raun að gera. Ãannig að ég er aftur hingað à hvernig rót mÃna. Og ég ætla að stækka à svolÃtið til að sýna þér að ég hafa a skrá sem heitir, get1.php. Svo skulum smella á get1.php. Og ég er ekki að sjá hvaða efni. Ãað er undarlegt, ekki satt? Jæja, ekki raunverulega raunverulega. Vegna þess að ég gafst ekki upp eitthvað à vefslóðinni. Ãg ætla að get1.php, en ég ekki veita neina lykill gildi pör sem hluta af fyrirspurn band mitt. Svo skulum bæta fyrirspurn band og sjá hvað þessi skrá getur gert. Til að byrja með fyrirspurn band þú bara slá spurningarmerki. Ãá kannski ég segi nafn = Doug & ári = 2015. Og þá mun ég ýta á Enter. Nú eftir hvað er að gerast. Ãg er enn à get1.php. En nú hef ég til staðar lykill gildi pör, og ég er prentun þá út á eigin spýtur paragraph-- nafn, Doug-- ári, 2015. Ãað er einmitt fyrir við bara sá á mynd à smá stund sÃðan. Og ef ég vil kannski bæta við öðru lykill gildi par, & class = CS50. Nú hef ég annar lykill gildi par sem er prentað út þegar ég rifja slóðina aftur. Nú er kannski þetta ekki sniðinn hræðilega vel. Ãannig að ég hef aðra útgáfu af get.php. Ãað er get2.php. Munurinn á þessu einn er að ég hef CSS skrá, og það snið hlutina Smá meira vel fyrir mig. Ãað er kannski ekki mest falleg CSS à heiminum. En það er bara önnur leið til að gera það. Ãannig að ég get enn fengið aðgang breytum mÃnum með $ _GET. Og à þessu tilfelli, ég er bara svona gera CSS aðeins meira fÃnt. Og ef við skjóta yfir IDE mÃn fyrir annað, Ãg skal sýna þér à PHP mÃnu vefnum Skrá hér get2.php. Við munum opna það upp, sumir HTML hér. Apparently ég tengja à það CSS skrá Ãg var að tala um. Ãg opna borð tag. Og þá er hér framhandleggur lykkja minn. Hér er það, það sem ég sýndi á mynd áður. Eini munurinn er að ég hafa þennan lykil og gildi CSS stÃl sem ég er að beita henni. En það er allt sem ég er að gera, er ég iterating yfir $ _GET að fá allar af helstu gildi pör. Og ég er að prenta þá út sem borðið. Og virðist ætla ég að forsnÃða lyklana á einhvern hátt, með