Doug LLOYD: Torej, v naši video na PHP sintakso, veliko smo se pogovarjali o tem, kako PHP Lahko se uporablja v ukazni vrstici za izvajanje programov na način, ki smo precej seznanjeni z od C. Ampak kot sem omenil tudi V ta video, PHP je bil prvotno razvit za izvajati spletno programiranje, spletne strani. In tako v tem videu smo bomo govorili o tem, kako uporabljati PHP v okviru spletnega razvoja. Vemo, že od naš video o HTML, da so zgradili spletne strani iz niza HTML da pomensko opredeliti Struktura spletne strani. Ampak spletnih strani, ki so zgrajena s čistim HTML trpijo zaradi zelo, zelo resna omejitev. In za ponazoritev te omejitve, kaj menijo naslednje. Torej, zdaj želim zgraditi spletno stran da, kadar uporabnik obišče, to mi daje tok Čas v Cambridge, Mass., jo prikazujete na zadnjo minuto. Če sem bil kar to pravico sedaj, Jaz bi rekel kaj takega. Trenutni čas Cambridge-- tako da imam HTML oznake, oznake glave, naslov oznake, telo tags-- tok Čas v Cambridgeu je 14:08, tiskanje vojaško čas. Kaj se zgodi, če je zdaj 02:09, 14:09? No tako daleč, HTML, imam da gredo v in jo spremenite v 14:09. In potem eno minuto kasneje, Moram ga ponovno spremeniti. In potem eno minuto kasneje, Moram ga ponovno spremeniti. In kot si lahko predstavljate, da je verjetno najslabši delo doslej. Vi ste webmaster za spletno stran, in vsako minuto, 24 ur na dan, morate posodobiti sedanji čas, ki ga ročno odpiranje time.html in spreminjanje samo, da odrezek kode za povedati trenutni čas v urah in minutah. To je verjetno ni zelo Dobra uporaba naših virov, človeških in računalniška. Spletne strani, ki so vsi HTML so popolnoma statična. Edini način, da lahko posodobite vsebine, kot smo videli, je ročno odpreti tiste vir datoteke, jih uredite in jih shranite. In potem, ko uporabnik osveži stran, ali obišče stran za prvo Čas, ki jih bomo dobili najnovejšo vsebino. Ampak samo zato, ker smo jih ročno uredil. Če začnemo mešati nekaj PHP tam, naša koda lahko dobite veliko bolj prilagodljiv. In imamo lahko pot naših straneh biti dinamičen, ali se posodobi, ne zahteva naša slaba webmaster v prejšnjem primeru biti ročno posodabljanje stvari. So lahko to storite samodejno. Nimamo posredovati. Mi lahko naspim. Kar je verjetno dobra stvar, če delaš veliko spletno programiranje. Torej, v CS50 IDE, Vodimo spletni strežnik imenuje Apache. To je zelo pogosto uporablja, odprtokodni spletni strežnik sistem. Ta sistem ima Zmogljivost za razlago PHP, ki se bo koristno, če želite storiti vse PHP programiranje. In v CS50 IDE, imamo ukaz da bo to zelo enostavno narediti, apache50 začeti. In potem, da je slash Pot, poševnica, da, poševnica dir, da je samo zelo pogost način kaže, kaj ste tukaj določeno je pot k posameznemu imenik, ki vam želijo biti koren stran ali stran koren, ali mapo, iz katere spletni strežnik bo začela preučevati datotek in služijo jim do strank, ki jih zahtevajo. Torej, kaj je pop prenesejo CS50 IDE, samo da bi ti pokažem, res hitro, kako to deluje. Torej, tukaj v CS50 IDE, sem v Imenik imenuje Teden Zero Nine. In imam dvo imam izvršeno ukaz LS samo zgoraj, da ti pokažem, da imam dva imenikov v tukaj, PHP, ki je niz datotek, ki sem se uporabljajo v skladnja video PHP, in potem PHP-web, ki je niz datotek, ki sem bi radi uporabili v tem videu. In želim, da začnete primerek spletni strežnik z vsebino PHP spletne mapi kot so datoteke, ki se prezračuje up. Torej, kaj bom naredil? Bom, da tip apache50 prostor začetek, prostor PHP, dash spletu. To je pot do imenika od kje sem sedaj jaz. Potem sem zadeti nastopiti. To se dogaja, narediti malo stvari tukaj. In potem se dogaja, da pravijo, Apache je uspešno začel. Vaša spletna stran je sedaj na voljo at-- in potem je URL za spletno stran. Torej, kaj bom naredil? Grem hitro kopirati to. In bom odpreti up-- in Bom pomanjšati malo here-- Bom odprla nov zavihek v Chromu. In jaz grem na obisk, da se URL. Bom udaril Enter. To se dogaja, da se naložijo. In bom pomanjšati znova. In vidimo, tukaj je vsebina mojega PHP spletni imenik. Torej, zdaj, kaj se v bistvu dogaja tukaj je moj primerek CS50 IDE služi do teh datotek vsakdo, ki jih zahteva. In tekom ta video, bomo nekako si oglejte kup teh različne datoteke v kontekstu. Če želite preveriti, ali vaše Apache strežnik deluje, kar se praviloma dogaja da je tako v CS50 IDE, vendar, če vam to bolj na splošno, in začneš graditi svojo spletno strežniki, tam je res Skupno nekako analogno, "svetu zdravo," ki je ponavadi uporabljajo za PHP web development. Kar bo imelo datoteko sestavljen iz le te code-- PHP Ločilo set z PHP info, oklepaje, podpičjem vmes. Ki je v bistvu posebna PHP funkcija, ki vam pove, kaj različica PHP tečeš. Torej, v CS50 IDE, imam da je datoteka na voljo samo da ti pokažem, kaj bi to izgledal. Tako da sem videti na mojem indeksu iz moje PHP primer. Moj Apache primerek teče vsebina PHP-Web. In imam datoteko tukaj imenuje info.php. Bom ga kliknite, pomanjšanje. To je tisto, kar boste videti, precej. To je le nekaj mi pravi, da moj Apache strežnik deluje. In to je, očitno je različica PHP, da tečem. To je moj analogni "Hello World". Zato vem, so stvari delujejo. Tako da smo na dobri poti. Lahko nadaljujemo od tukaj. Tako da je ponovno, da Primer, ko smo bili govoriš z našim slabim webmaster ki je moral posodobiti stran nenehno. To je lahko pritrditi kako Jaz bi izvajanje stvari tako da je webmaster ni morali obdržati posodabljanje časa. To bi nekako samodejno zgodilo. Spodaj navzdol, HTML, je precej podobni, z eno izjemo. Ampak tukaj imam nekaj PHP na vrhu. Sem, očitno, se imenuje to Funkcija date_default_timezone_set. In ne govorimo o vsem te funkcije v CS50, ker PHP ima verjetno deset tisoč. Da bi lahko malo pretiravanje, vendar to ne bi bilo. Ima veliko funkcij, zgrajena leta. Tako je ta funkcija navidezno nastavi časovni pas kot v ZDA / vzhodni, ki je časovni pas, da sem Trenutno česar ta video. Potem sem klicati na Funkcija se imenuje, datum. In, očitno, jaz shranjevanje HIS nečesa imenovane, časa. Torej, kaj se dogaja tukaj? No, v bistvu tisto, kar je dogaja se, da sem klicanju do neke strežnik, ki se bo povej mi, kaj je čas, trenutno je. In sem ga pretvori v format v urah, minutah, sekundah. In razlog, da je kapital H je to se dogaja, da mi 24 ur časa, ne 12 uro časa, ki bi bile male črke h. In jaz sem samo shranjevanje, ki v spremenljivko z imenom, čas. Tako da druga vrstica PHP tam, klic funkcije, Datum, ki je ravno nekateri niz, ki je dogaja, da mi datum in čas, in kup drugih informacij. In prvi argument je, da je njegov, je samo ekstrakcijo pomembno vlogo da mi je mar za ta primer, ki je ura, minuta, in drugi. Tako, da je vse, kar se dogaja. Tako sem shranite, da v spremenljivko $ časa. In potem izstopajo na Zelo dno tam, sem so, da je okrajšava za tiskanje trenutnega časa. Tako da sem le, da bo tiskanje kaj trenutni čas. Tako da je lahko pogled na to CS50 IDE in videli, kako smo zdaj varčevanje, ki Webmaster veliko težav. Vse je v redu, tako da tukaj sem spet jaz nazaj v korenski imenik moje Apache primer. In imam datoteko tukaj imenuje time.php. Jaz sem šele tekoč, da kliknete na to. In bom pomaknite navzgor, saj smo povečavi precej daleč. Sedanji čas je 14:20:34. Torej, jaz delam ur, minutah in sekundah. In ne morem osvežitev stran in dobili nov čas. --41. Bom osvežiti stran in dobili nov čas, 44, 46, 47. Torej, jaz očitno nisem spreminja ničesar sam. Tukaj sem osvežiti stran. Tako da ne morem biti tam urejanjem. In obljubim ti, jaz ne imate konfederativci ki so urejanjem datoteke v mojem imenu na strani. Jaz sem samo s pomočjo te funkcije PHP, čas, da se ustvari čas zame samodejno. Tako da tudi če sem spala, in moj spletni strežnik teče, uporabnik, ki obišče, da je stran še vedno bo dobil točno trenutni čas. Torej, to je zelo dobro. Naredil sem bolj dinamično svojo spletno stran z ne preveč PHP kodo. To je bil le dve vrstic kode in potem malo izjavi tiskanja. In že imam veliko bolj dinamičen stran kot je ta prvi primer smo videli Na začetku videa. Torej, prikličite iz video na PHP sintakso da kadar PHP tolmač teče naš program, da ignorira vse da ni notri PHP ločila, ga izpljunil. V tem primeru, kaj je stvar da je izpljunil je HTML. In to pomeni, da lahko zdaj Razasuti HTML in PHP skupaj. Ker je tolmač bo samo prezreti HTML in dobesedno izhod je. Kar je dobro, kajne? Ker je verjetno, Na koncu dneva, Rad bi svojo spletno stran v je izdelana iz HTML. Tako, da lahko vsak spletni brskalnik razložiti to, ali razumejo HTML na strani in je postala, kot nekaj, kar smo dejansko lahko razumemo kot človeku. In sem lahko uporabite samo PHP za dele moji strani Zahtevaj dinamičnost, da me potrebujejo da so stvari, ki posodobitev nenehno. Statični podatki lahko ostane ista. OK, tako da je v redu. Ampak zakaj bi jaz to naredil? Zakaj bi se premeša HTML in PHP? Jaz lahko samo natisnete vse HTML, s funkcijo PHP tiskanja. Zakaj sem ne delaš to? Razmisli o tem za sekundo. Zakaj, ko sem lahko samo tiskanje out-- I bi lahko imeli linije PHP, da je pravkar rekel, print HTML tag, tiskalna glava. Zakaj sem ne delaš to? Zakaj sem mešanjem PHP in HTML? No, če mislite, da o tem za sekundo. PHP, tolmač ima razložiti, kaj vidi. In tako se dogaja, da imajo za izvršitev kode. Natisnite HTML. Natisnite odprte glave oznako. Natisnite odprt naslov tag. To se dogaja, da imajo na izvesti in interpretirati da je vsak korak s poti. Zakaj ne samo pustiti Tolmač samo zatajili Stvari se ne razumejo in to samodejno? To se dogaja, da mi prihrani veliko časa zmešati svoj HTML in moj PHP skupaj. In da je, zakaj ne bomo samo še odprto PHP ločilo in potem samo natisnete celotno vsebina naše strani kot eno velikan PHP klic funkcije, Print, in nato blizu PHP Ločilo in smo končali. Torej, to je, zakaj smo jih pomešajo skupaj. Doslej nismo videli preveč razliko od splošnega PHP sintakso. Bilo je precej preprosta. Smo že videli Vprašanje znamka, enaki. Videli smo nekaj novih klici funkcij, vendar nič res fancy dogaja. Naj morda bi stvari malo Ljubitelj. Kaj pa, če želimo, da prenese informacije med različnimi PHP datotek tako da morda lahko uporabnik predložijo informacije z mano. In potem sem lahko nekaj storiti z njim na drugo stran. Torej PHP ima podporo za nekaj, kar se imenuje Super Globalno Spremenljivke, ki zveni zelo super. Oni so res samo velikan asociativne nize ki pripomorejo k izvajanju tega Funkcionalnost prehoda informacij med PHP datotek, so obstoječi na našem spletnem strežniku. Prvi od teh super globals se imenuje $ _GET. In to je verjetno najenostavnejši razumeti. Kaj se zgodi s $ _GET? No, v bistvu, je uporabnik dogaja, da vnesete dodatne informacije Na koncu naših naslovov. In karkoli oni tip, ob predpostavki, to je oblikovano na poseben način imenuje niz poizvedbe, ki je le niz ključnih parov vrednosti ločeni s ampersands. Ti ključni parov vrednost bo shranjena v $ _GET asociativni array. In iz naše video na PHP sintakso, vemo, kako delati z asociativne nize že. Torej, tukaj je primer nekaj PHP, kjer morda sem pridobivanja vseh ključnih pari vrednosti da uporabnik dobavljene v URL. Torej imam Odpri PHP ločilo. Imam foreach zanke. Jaz sem ponavljanjem čez Super Globalno Array imenovano $ _GET. In želim, da bi lahko nanašajo tako ključa in vrednostjo. In jaz sem jih samo tiskanje ven, vsak na navidezno lastne odstavek tag tukaj. Jaz tiskanje nekaj HTML in interpoliranjem vrednosti ključa in vrednosti v tej izjavi. Torej, kaj je si oglejte, kako je to bi dejansko delajo na naši IDE. In morda bo to pomagalo ponazarjajo malo kaj dobili, je dejansko počne. Tako da sem spet tukaj v moji spletni root. In bom zoomom malo, da ti pokažem da imam datoteko z imenom, get1.php. Torej, kaj je klik na get1.php. In ne vidim nobene vsebine. To je čudno, kajne? No, ni res, dejansko. Ker nisem dobavo karkoli v URL. Bom get1.php, vendar sem ni predložila nobenih ključnih parov vrednosti kot del moje poizvedbe niza. Torej, kaj je dodati niz poizvedbe in videti, kaj lahko ta datoteka storiti. Za začetek niz poizvedbe si samo tip vprašaj. Potem pa bom rekel name = Doug & leto = 2015. In potem bom pritisnite tipko Enter. Zdaj opazili, kaj se dogaja. Še vedno sem v get1.php. Zdaj pa sem na voljo Ključne parov vrednosti, in sem tiskanjem na lastno paragraph-- ime, Doug-- leto 2015. To je točno to kodo smo pravkar Videl na slide pred nekaj trenutki. In če želim morda dodati drugo par ključev vrednost in class = CS50. Zdaj imam še en ključni vrednost Par, ki je izpisal ko sem spet ponovno URL. Zdaj morda to ni formatiran strašno dobro. Torej imam še eno različico get.php. To je get2.php. Razlika v tem eden je imam CSS datoteko, in formati stvari malo bolj lepo za mene. To morda ni najbolj lepa CSS v svetu. Ampak to je samo še en način za to početje. Da bom lahko še vedno dobite dostop za moje spremenljivk z uporabo $ _GET. In v tem primeru, jaz sem samo nekako zaradi česar je CSS malo bolj fancy. In če bomo pop prenesejo moj IDE za drugo, Pokazal vam bom v mojem PHP web Imenik tukaj, get2.php. Ga bomo odprli, nekaj HTML tukaj. Očitno sem povezuje s tem, da CSS datoteka sem govoril. Odprem namizni oznako. In potem tukaj je moj foreach zanke. Tukaj je, da je tisto, kar sem pokazala na slide poprej. Edina razlika je, da sem imajo ta ključ in vrednost CSS styling, da sem se uporabljajo za to. Ampak to je vse, kar počnem, je, da sem ponavljanjem čez $ _GET da bi dobili vse ključnih pari vrednosti. In jaz sem jih tiskate kot mizo. In, očitno, da sem formatiranje ključe na en način, z class = "ključ"