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ð