DOUG LLOYD: Felly yn ein 'n fideo ar PHP cystrawen, buom yn siarad llawer am sut PHP gellir ei ddefnyddio yn y llinell orchymyn i gynnal rhaglenni mewn modd sy'n rydym yn eithaf gyfarwydd â oddi wrth C. Ond fel y soniais hefyd yn y fideo, PHP Datblygwyd y dechrau i gweithredu rhaglenni ar y we, gwefannau. Ac felly yn y fideo hwn rydym yn mynd i siarad am sut yr ydym defnyddio PHP yng nghyd-destun datblygu'r we. Rydym yn gwybod, yn barod, o ein fideo ar HTML, bod gwefannau yn cael eu hadeiladu allan o set o dagiau HTML sy'n diffinio semantig strwythur tudalen ar y we. Ond gwefannau sy'n cael eu adeiladwyd gyda HTML pur yn dioddef o iawn, cyfyngiad difrifol iawn. Ac i ddangos cyfyngiad hwn, gadewch i ni ystyried y canlynol. Felly, yn awr yr wyf am adeiladu dudalen ar y we hynny, pryd bynnag y defnyddiwr ymweliadau iddo, mae'n rhoi i mi ar hyn o bryd amser yng Nghaergrawnt, Mass., arddangos tan y funud diweddaraf. Os byddaf yn gwneud hyn ar hyn o bryd, Efallai fy mod yn dweud rhywbeth fel hyn. Amser ar hyn o bryd yn Cambridge-- felly mae gen i Tagiau HTML, tagiau pen, tagiau teitl, corff tags-- y presennol amser yng Nghaergrawnt yn 14:08, argraffu amser milwrol. Beth fydd yn digwydd os yw'n bellach yn 02:09, 14:09? Dda hyd yn hyn, gyda HTML, mae gen i i fynd i mewn a newid i 14:09. Ac yna un munud yn ddiweddarach, Rhaid i mi newid eto. Ac yna un munud yn ddiweddarach, Rhaid i mi newid eto. Ac fel y gallwch ddychmygu, mae hynny'n Mae'n debyg y swydd waethaf erioed. Rydych yn y gwefeistr ar gyfer tudalen we, a bob munud, 24 awr y dydd, angen i chi ddiweddaru o bryd gan llaw agor time.html a newid dim ond bod snippet o cod a dweud y amser presennol mewn oriau a munudau. Dyw hynny ddim yn ôl pob tebyg yn iawn defnydd da o'n hadnoddau, dynol ac chyfrifiannol. Gwefannau sydd i gyd HTML yn gwbl sefydlog. Yr unig ffordd y gallwch roi'r wybodaeth ddiweddaraf cynnwys, fel yr ydym ni newydd ei weld, yw agor ffynhonnell y rheini â llaw ffeiliau, golygu nhw, a'u cadw. Ac yna pan fydd y defnyddiwr adnewyddu y dudalen, neu'n ymweld â'r dudalen ar gyfer y cyntaf amser, byddant yn cael y cynnwys diweddaraf. Ond dim ond oherwydd ein bod i wedi golygwyd llaw. Os byddwn yn dechrau i gymysgu rhywfaint o PHP i mewn 'na, Gall ein cod yn cael llawer mwy hyblyg. A gallwn gael ffordd ar gyfer ein tudalennau i fod yn ddeinamig, neu ddiweddaru eu hunain, heb fod angen ein gwael gwefeistr yn yr enghraifft flaenorol i fod â llaw diweddaru pethau. Gallant wneud yn awtomatig. Nid oes rhaid i ni ymyrryd. Gallwn ni gael rhywfaint o gwsg. Pa yn ôl pob tebyg yn beth da os eich bod yn gwneud llawer o raglenni ar y we. Felly, yn CS50 IDE, rydym yn cynnal weinydd y we o'r enw Apache. Mae'n ddefnyddir yn gyffredin iawn, ffynhonnell agored system gweinydd gwe. Mae'r system hon sydd â'r gallu i ddehongli PHP, sydd yn mynd i fod yn ddefnyddiol os rydych am ei wneud unrhyw raglennu PHP. Ac yn IDE CS50, mae gennym gorchymyn i wneud hyn yn hawdd iawn i'w wneud, apache50 cychwyn. Ac yna y slaes llwybr, slaes i, slaes dir, bod yn unig yn ffordd wirioneddol gyffredin o gan nodi hyn rydych wedi bennir yma yn llwybr i neilltuol cyfeiriadur yr ydych yn am fod y gwreiddyn safle, neu'r dudalen gwraidd, neu ffolder lle eich gweinydd gwe Bydd yn dechrau archwilio ffeiliau ac yn gwasanaethu hwy i fyny i gleientiaid sy'n gofyn amdanynt. Felly gadewch i ni alw yn CS50 IDE, dim ond i dangos i chi, mewn gwirionedd cyflym, sut mae hyn yn gweithio. Felly dyma yn IDE CS50, ydw i mewn cyfeiriadur o'r enw Wythnos Sero Naw. Ac yr wyf wedi two-- gen i ddienyddio feistrolaeth LS yn unig uchod i ddangos eich bod gen i dau cyfeiriaduron mewn yma, PHP, sef y gyfres o ffeiliau a ddefnyddiais mewn y fideo cystrawen PHP, ac yna PHP-we, sef y gyfres o ffeiliau yr wyf Byddai hoffi defnyddio yn y fideo hwn. A hoffwn i ddechrau yn enghraifft gweinydd gwe â chynnwys y ffolder PHP-we gan fod y ffeiliau yn cael eu gwasanaethu i fyny. Felly, beth ydw i'n mynd i wneud? Yr wyf yn mynd i deipio apache50 gofod cychwyn, PHP gofod, ar y we dash. Dyna'r llwybr i'r cyfeiriadur o lle yr wyf ar hyn o bryd. Yna mi daro Chofnoda. Mae'n mynd i wneud ychydig bach o bethau fan hyn. Ac yna mae'n mynd i ddweud, Dechreuodd Apache yn llwyddiannus. Eich safle ar gael at-- nawr ac Yna mae y URL ar gyfer y safle. Felly, beth ydw i'n mynd i wneud? Rydw i'n mynd i gopïo hyn yn gyflym. Ac yr wyf i'n mynd i agor up-- a 'N annhymerus' chwyddo allan ychydig Yma-- Rydw i'n mynd i agor tab newydd yn Chrome. Ac yr wyf i'n mynd i ymweld â'r URL. Rydw i'n mynd i daro Chofnoda. Mae'n mynd i lwytho. A byddaf chwyddo allan eto. A gallwn weld yma yn y cynnwys fy cyfeiriadur gwe PHP. Felly nawr hyn sy'n digwydd yn y bôn yma yw, mae fy achos o CS50 IDE yn gwasanaethu i fyny ffeiliau hyn at unrhyw un sy'n gofyn amdanynt. Ac yn ystod y fideo hwn, byddwn yn didoli o yn edrych ar griw o'r rhain gwahanol ffeil mewn cyd-destun. I brofi bod eich Apache gweinydd yn gweithio, sydd yn mynd yn gyffredinol i fod yn wir yn CS50 IDE, ond os byddwch yn gwneud hyn yn fwy cyffredinol, a'ch bod yn dechrau adeiladu eich gwe eich hun gweinyddwyr, mae 'na' n sylweddol math cyffredin o analog i, "Helo byd," sydd fel arfer a ddefnyddir ar gyfer datblygu ar y we PHP. Pa un yw cael ffeil sy'n cynnwys dim ond code-- hwn yn amffinydd PHP gosod gyda info PHP, cromfachau, hanner colon yn y canol. Pa un yn y bôn yn arbennig Swyddogaeth PHP sy'n dweud wrthych pa fersiwn o PHP ydych yn rhedeg. Felly, yn CS50 IDE, yr wyf wedi hynny ffeil sydd ar gael yn unig i ddangos i chi beth fyddai hyn yn edrych. Felly rwy'n edrych ar fy mynegai o fy enghraifft PHP. Mae fy achos Apache yn rhedeg cynnwys y PHP-We. Ac mae gen i ffeil o'r enw yma info.php. Rydw i'n mynd i glicio arno, chwyddo allan. Mae hyn yn yr hyn yr ydych chi'n mynd i weld, 'n bert lawer. Dim ond hyn yn dweud wrthyf fod fy gweinyddwr Apache yn gweithio. Ac mae hyn yn, yn ôl pob golwg, mae'r fersiwn o'r PHP fy mod i'n rhedeg. Dyma fy analog i "helo byd." Felly, yr wyf yn gwybod pethau yn weithredol. Felly, rydym yn dda i fynd. Gallwn fynd ymlaen o'r fan hon. Felly gadewch i ni edrych eto ar hynny enghraifft amser roeddem siarad am â'n gwefeistr gwael a oedd wedi i ddiweddaru'r dudalen gyson. Gallai hyn fod yn ateb ar gyfer sut y Byddwn yn gweithredu pethau fel na fydd y gwefeistr wnaeth rhaid cadw diweddaru'r pryd. Byddai'n jyst fath o digwydd yn awtomatig. Mae'r lawr isod, mae'r HTML, 'i' 'n bert tebyg, gydag un eithriad. Ond yma gen i PHP ar y brig. Yr wyf, mae'n debyg, gelwir hyn date_default_timezone_set swyddogaeth. Ac nid ydym yn sôn am yr holl swyddogaethau hyn yn CS50, oherwydd yn ôl pob tebyg PHP wedi degau o filoedd. Gallai hynny fod yn dipyn o gor-ddweud, ond nid y gallai fod. Mae wedi cael llawer o swyddogaethau a adeiladwyd yn. Ac felly mae hyn yn swyddogaeth yn ôl pob golwg yn gosod fy parth amser fel UD / Dwyrain, sef y parth amser fy mod yn Ar hyn o bryd wrth wneud y fideo. Yna mi wneud galwad i swyddogaeth o'r enw, dyddiad. Ac, yn ôl pob golwg, rwy'n storio'r EI o rywbeth o'r enw, amser. Felly beth sy'n mynd ymlaen fan hyn? Wel, yn y bôn yr hyn sydd digwydd yw, fy mod yn gwneud galwad i ryw weinydd sy'n mynd i ddweud wrthyf beth yr amser ar hyn o bryd yn. A dwi'n trosi i fformat o oriau, munudau, eiliad. A'r rheswm mae'n cyfalaf H yn hyn yn mynd i roi amser 24 awr mi, nid 12 amser awr, a fyddai'n llythrennau bach f. Ac Im 'jyst yn storio bod mewn newidyn enw, amser. Fel bod ail linell PHP yno, yr alwad i'r swyddogaeth, Hyd yn hyn, dim ond cael rhywfaint llinyn, sef mynd i roi dyddiad i mi, a'r amser, a bagad o wybodaeth arall. Ac mae'r ddadl gyntaf yno, bod EI, yn unig yw echdynnu'r rhan bwysig fy mod yn poeni am er enghraifft hon, sef y awr, munud, a'r ail. Felly dyna yr holl sy'n digwydd. Felly yr wyf yn storio fod mewn $ amser amrywiol. Ac yna i lawr ar y iawn gwaelod yno, yr wyf yn gael y llaw-fer ar gyfer argraffu'r hyn o bryd. Felly, Im 'jyst yn mynd i'r wasg beth yr amser presennol yw. Felly, gadewch i ni edrych ar hyn mewn IDE CS50 a gweld sut yr ydym yn awr yn gan arbed y gwefeistr llawer o drafferth. Mae pob hawl, felly dyma fi eto yn ôl ar y cyfeiriadur gwraidd fy achos Apache. Ac mae gen i ffeil yma o'r enw time.php. Im 'jyst yn mynd i glicio ar hynny. A byddaf sgrolio i fyny, oherwydd rydym yn chwyddo i mewn 'n bert lawer. Mae'r amser presennol yw 14:20:34. Felly, rwy'n ei wneud ei oriau, munud, ac eiliadau. A gallaf adnewyddu'r dudalen a chael amser newydd. --41. Rydw i'n mynd i adnewyddu'r dudalen ac yn cael amser newydd, 44, 46, 47. Felly, yr wyf yn amlwg nad newid unrhyw beth fy hun. Im 'yn fan hyn adnewyddu'r dudalen. Felly, ni allaf fod yn ôl yno ei olygu. Ac yr wyf yn addo i chi, nid wyf yn ei wneud os oes gennych unrhyw cydymdeithion sy'n golygu y ffeil ar fy rhan ar yr ochr. Im 'jyst yn defnyddio'r swyddogaeth PHP, amser, i gynhyrchu'r amser i mi yn awtomatig. Felly hyd yn oed os wyf yn cysgu, ac mae fy gweinydd gwe yn rhedeg, y defnyddiwr sy'n ymweld y dudalen honno yn dal i fod mynd i gael yr union hyn o bryd. Felly dyna 'n bert da. Rydw i wedi gwneud fy safle yn fwy deinamig gyda dim gormod cod PHP. Yr oedd yn ddim ond dwy linell o god ac yna ychydig bach o ddatganiad print. Ac eisoes mae gen i safle yn llawer mwy deinamig na hynny enghraifft gyntaf a welsom ar ddechrau'r y fideo. Felly, yn dwyn i gof o'r fideo ar gystrawen PHP pan fydd y cyfieithydd PHP yn rhedeg ein rhaglen, mae'n anwybyddu popeth nid yw hynny'n tu mewn amffinyddion PHP, poeri allan. Yn yr enghraifft honno, yr hyn y mae'r peth ei fod yn poeri allan yn HTML. Ac mae hyn yn golygu y gallaf yn awr intersperse HTML a PHP gyda'i gilydd. Oherwydd bod y cyfieithydd fydd yn unig anwybyddu'r HTML ac yn llythrennol allbwn iddo. Pa yn dda, dde? Oherwydd yn ôl pob tebyg, ar ddiwedd y dydd, Hoffwn i fy safle yn cael ei adeiladu o HTML. Er mwyn i unrhyw borwr gwe dehongli y peth, neu ddeall y HTML ar y dudalen ac yn ei gwneud yn fel rhywbeth yr ydym Gall mewn gwirionedd yn deall fel bodau dynol. Ac ni allaf ond ddefnyddio PHP ar gyfer y rhannau o fy safle y gofyn am ddynamiaeth, sy'n ei gwneud yn ofynnol i mi i gael pethau sy'n rhoi'r wybodaeth ddiweddaraf yn gyson. Mae'r wybodaeth statig Gall aros yr un fath. Iawn, felly mae hynny'n iawn. Ond byddai pam yr wyf yn gwneud hyn? Pam fyddwn i gymysgu HTML a PHP? Gallai Fi jyst argraffu'r holl HTML, gan ddefnyddio'r swyddogaeth print PHP. Pam nad ydw i'n gwneud hynny? Meddyliwch am y peth am eiliad. Pam, pryd y gallwn i jyst argraffu out-- wyf Gallai gael llinellau PHP sydd dim ond dweud, print tag HTML, pennaeth print. Pam nad ydw i'n gwneud hynny? Pam ydw i'n cymysgu'r PHP a HTML? Wel, os ydych yn meddwl am y peth am eiliad. PHP, y cyfieithydd wedi dehongli'r hyn y gwêl. Ac felly mae'n mynd i gael i weithredu llinell o god. Argraffwch HTML. Argraffwch tag pen agored. Argraffwch tag teitl agored. Mae'n mynd i gael i gweithredu a dehongli bod pob un cam o'r ffordd. Pam na dim ond gadael y cyfieithydd yn unig sglein dros pethau nad yw'n deall ac yn ei wneud yn awtomatig? Mae'n mynd i arbed llawer o amser i mi i gymysgu fy HTML ac mae fy PHP gyda'i gilydd. Ac felly dyna pam nad ydym yn ei wneud yn unig wedi amffinydd PHP agored ac yna dim ond argraffwch y cyfan gynnwys ein dudalen fel un PHP mawr yn galw i'r swyddogaeth, Print, ac yna amffinydd PHP agos ac rydym yn ei wneud. Felly dyna pam ein cymysgu i fyny at ei gilydd. Hyd yn hyn, nid ydym wedi gweld gormod o gwahaniaeth o gystrawen PHP cyffredinol. Mae wedi bod yn eithaf syml. Rydym eisoes wedi gweld y gofynnod, gyfartal. Gwelsom un neu ddau o alwadau swyddogaeth newydd, ond dim byd mewn gwirionedd ffansi mynd ymlaen. Gadewch i ni efallai i ni wneud pethau ychydig yn ffansi. Beth os ydym am i basio gwybodaeth rhwng gwahanol ffeiliau PHP, fel y gall hynny efallai y defnyddiwr cyflwyno gwybodaeth i mi. Ac yna gallwn i wneud rhywbeth ag ef ar dudalen arall. Felly PHP Mae cefnogaeth ar gyfer rywbeth o'r enw Super Byd-eang Newidynnau, sy'n swnio'n eithaf anhygoel. Maent yn wir yn unig araeau cysylltiadol mawr a chyfnertha weithredu hyn ymarferoldeb pasio gwybodaeth rhwng ffeiliau PHP sy'n yn bresennol ar ein gweinydd gwe. Y cyntaf o super hyn Gelwir newidynnau yn $ _GET. Ac mae'n debyg mai dyma'r symlaf i'w deall. Beth fydd yn digwydd gyda $ _GET? Wel, yn y bôn, mae'r defnyddiwr yn mynd i deipio gwybodaeth ychwanegol ar ddiwedd ein URLs. A beth bynnag y maent deipio, gan dybio 'i' fformatio mewn ffordd benodol Gelwir llinyn ymholiad, sydd ychydig set o barau gwerth allweddol a gwahanu gan ampersands. Bydd y rhai parau gwerth allweddol fydd storio mewn $ _GET amrywiaeth cysylltiadol. Ac o ein fideo ar PHP cystrawen, rydym yn gwybod sut i weithio gyda araeau cysylltiadol yn barod. Felly dyma enghraifft o rhai PHP, lle efallai rwy'n echdynnu pob un o'r barau gwerth allweddol bod y defnyddiwr a gyflenwir yn y URL. Felly, yr wyf wedi fy amffinydd PHP Agored. Mae gen i ddolen foreach. Im 'yn ailadrodd ar draws y Super Array Byd-eang o'r enw $ _GET. Ac yr wyf am fod yn gallu cyfeirio at y allweddol a'r gwerth. A dwi'n unig yn eu argraffu allan, pob un ar ôl pob golwg ei paragraff tag hunain yma. Dw i'n argraffu rhai HTML a interpolating gwerthoedd o allwedd a gwerth i mewn y datganiad hwnnw. Felly, gadewch i ni edrych ar sut mae hyn yn Byddai yn gweithio mewn gwirionedd ar ein IDE. Ac efallai bydd hyn yn helpu yn dangos ychydig bach o'r hyn GET yn ei wneud mewn gwirionedd. Felly rwy'n yn ôl yma yn fy gwraidd ar y we. A byddaf chwyddo mewn ychydig bach i ddangos i chi bod gen i ffeil o'r enw, get1.php. Felly gadewch i ni glicio ar get1.php. Ac nid wyf yn gweld unrhyw gynnwys. Mae hynny'n rhyfedd, dde? Wel, nid mewn gwirionedd mewn gwirionedd. Gan nad oeddwn yn cyflenwi unrhyw beth yn y URL. Rydw i'n mynd i get1.php, ond yr wyf yn Nid oedd gyflenwi unrhyw barau gwerth allweddol fel rhan o fy llinyn ymholiad. Felly gadewch i ni ychwanegu llinyn ymholiad a gweld beth y gall y ffeil wneud. I ddechrau llinyn ymholiad i chi jyst deipio marc cwestiwn. Yna efallai y byddaf yn dweud enw = Doug & blwyddyn = 2015. Ac yna mi daro Chofnoda. Nawr sylwi ar beth sy'n digwydd. Rwy'n dal yn get1.php. Ond yn awr yr wyf i wedi eu cyflenwi parau gwerth allweddol, ac rwy'n argraffu nhw allan ar eu pen eu hunain enw paragraph--, blwyddyn Doug--, 2015. Dyna'n union y cod rydym yn unig Gwelodd ar y sleid funud yn ôl. Ac os ydw i eisiau efallai ychwanegu un arall pâr gwerth allweddol, & class = CS50. Erbyn hyn mae gwerth allweddol arall i mi pâr sy'n hargraffu pan fyddaf yn edrych eto ar y URL eto. Nawr efallai nad yw hyn yn fformatio ofnadwy yn dda. Felly mae gen i fersiwn arall o get.php. Mae'n get2.php. Y gwahaniaeth yn hyn un yw gennyf ffeil CSS, ac mae'n fformatau bethau ychydig yn fwy 'n glws i mi. Nid yw'n efallai y mwyaf CSS prydferth yn y byd. Ond mae'r un ffordd arall o wneud hynny. Felly, gallaf dal i gael mynediad i fy newidynnau sy'n defnyddio $ _GET. Ac yn yr achos hwn, Im 'jyst fath o gan wneud y CSS ychydig yn fwy ffansi. Ac os ydym yn alw yn fy IDE am eiliad, Byddaf yn dangos i chi yn fy gwe PHP cyfeiriadur yma, get2.php. Byddwn yn agor i fyny, mae rhai HTML yma. Mae'n debyg fy mod yn cysylltu yn y Ffeil CSS oeddwn yn siarad am. Yr wyf yn agor tag tabl. Ac yna dyma fy ddolen foreach. Yma yw bod, yr hyn yr wyf Dangosodd ar y sleid o'r blaen. Yr unig wahaniaeth yw fy mod cael yr allwedd hon a gwerth CSS steilio mod i'n gwneud cais iddo. Ond dyna i gyd rwy'n ei wneud, yn cael ei dwi'n ailadrodd ar draws $ _GET i gael yr holl o'r parau gwerth allweddol. A dwi'n eu argraffu fel y bwrdd. Ac, yn ôl pob golwg, rwy'n fformatio yr allweddi mewn un ffordd, gyda'r