[Powered by Google Translate] [Datblygu'r We PHP]
[Tommy MacWilliam]
[Mae hyn yn CS50.] [CS50.TV]
>> Yn y fideo, byddwn yn dysgu am ddefnyddio PHP ar gyfer datblygu ar y we.
PHP yn iaith sgriptio y gellir eu defnyddio i weithredu
gwefannau ar weinydd y we.
Mae gweinydd y we yn ei hanfod yn beiriant ymroddedig i ddarparu cynnwys
y gellir cael mynediad trwy gyfrwng y rhyngrwyd.
Pan fyddwch yn llywio i'r dudalen we fel Facebook.com / home.php
y cod yn y ffeil o'r enw home.php sy'n byw ar weinydd y we Facebook rhywle
Bydd yn cael ei weithredu ar y gweinydd.
Bydd y cod yn debygol cynhyrchu rhywfaint o allbwn
fydd yn ei dro yn cael ei anfon o'r gweinydd
at eich porwr gwe.
Byddwn yn defnyddio'r offer CS50 fel gweinydd gwe.
Ni fydd eich peiriant yn debygol o fod bron mor bwerus fel y peiriannau
mewn canolfan ddata Facebook, ond byddwch yn cael unrhyw broblem ei ddefnyddio ar gyfer datblygu ar y we.
>> Pan fyddwn yn llywio i URL fel http://localhost/hello.php
rydym yn ffurfweddu'r offer trwy gais a elwir y gweinydd Apache HTTP
i chwilio am ffeil o'r enw hello.php tu mewn cartref / jharvard / vhosts / localhosts / html yn ddiofyn.
Os yw hynny'n ffeil yn bodoli, yna bydd Apache defnyddio'r cyfieithydd PHP
i weithredu y cod PHP yn hello.php.
Os nad yw'r ffeil yn bodoli, yna bydd Apache taflu gwall heb ei darganfod
neu gamgymeriad 404, yr ydych yn ôl pob tebyg wedi gweld wrth bori'r we.
>> Gadewch i ni edrych ar hello.php.
Gallwn weld yma y hello.php cynhyrchu llinell signal allbwn.
Pan fyddwn yn rhedeg hello.php ar y llinell orchymyn drwy hello.php php
bod cynnyrch a argraffwyd i'r derfynell.
Nawr, pan fyddwn yn cael mynediad i'r ffeil drwy URL yn y porwr gwe
bydd ei allbwn yn cael ei anfon at y porwr gwe,
felly mynd i'r URL, http://localhost/hello.php,
gallwn weld yr allbwn yn ein porwr gwe.
>> Gadewch i ni geisio ychwanegu printf arall i'n rhaglen byd helo.
Iawn, gadewch i ni fod yn bennaeth yn ôl i'r porwr gwe i weld yr hyn sydd gennym.
Diddorol.
Yn hytrach na argraffu llinell arall ar ei linell ei hun, fel y byddech wedi gweld
yn y derfynell, mae'n edrych fel ei got smushed ar yr un llinell
gan fod y printf eraill, nid llinellau felly efallai newydd yn gweithio yn PHP.
Ddim yn hollol.
Cofiwch fod HTML yn cael ei ddefnyddio fel arfer i greu tudalennau gwe
y gellir eu harddangos gan borwyr gwe.
Nid yn unig y llinyn yn helo o php HTML nad ddilys,
ond yn cofio na allwn ddefnyddio'r cymeriad \ n yn HTML
i greu toriad llinell.
Yn hytrach na dim ond outputting allbwn HTML dilys yn osod llinyn yn.
Trwy ddefnyddio paragraff tagiau pob un o'n galwadau printf
Bydd yn cael ei harddangos ar ei linell ei hun,
felly nawr pan fyddwn yn ymweld â'r pwyntio URL i valid.php
http://localhost/valid.php
rydym yn gweld y cynnyrch yr ydym yn chwilio amdano.
>> Yn awr, os ydym yn edrych ar y ffynhonnell y dudalen hon
gallwn weld ein bod yn awr yn edrych ar HTML dilys,
yr ydym yn creu o PHP.
Rhoi ein holl HTML y tu mewn galwadau printf
yn, wrth gwrs, yn mynd i gael 'n sylweddol yn blino.
Yn ffodus gallwn yn hawdd cymysgu HTML a PHP
yn yr un ffeil. php.
Cofiwch, mae'n rhaid i bob un o'n cod PHP yn cael ei amgáu o fewn <php?
a?>.
Unrhyw beth nad yw wedi'i amgáu o fewn amffinyddion hyn
yn syml, bydd yn cael ei anfon fel allbwn i y porwr
yn hytrach na chael eu dienyddio.
Mae hynny'n golygu y gallwn wneud rhywbeth fel hyn.
Gallwn yn syml ysgrifennu HTML tu mewn ein. Ffeil php
ac yna rhowch blociau PHP lle bynnag y byddem yn hoffi rhywfaint cod php ei wneud.
Yma rydym yn diffinio ychydig o newidynnau ar frig y ffeil,
ac yn ddiweddarach rydym yn eu hargraffu tu mewn ein HTML.
Nawr, os byddwn yn ymweld â URL hwn, http://localhost/mixed.php
gallwn weld ein PHP gwerthuso y tu mewn ein HTML.
>> Nawr, gadewch i ni edrych ar sut y gallwn drosglwyddo data
ymhlith ein gwahanol dudalennau PHP.
Yn hytrach na dweud
gallwn ddweud yn syml <? = y newidyn hoffem i argraffu, neu,
a?>.
Gadewch i ni yn awr yn cymryd edrych ar sut y gallwn drosglwyddo data
ymhlith ein gwahanol dudalennau PHP.
Un ffordd y gallwn wneud hynny yw i amgodio gwybodaeth yn y URL o dudalen.
Wrth pori'r We, efallai eich bod wedi sylwi bod rhai URLs
cynnwys? ac yna linyn sy'n cynnwys ampersands ac arwyddion cyfartal.
Mae'r rhan hon o'r URL ei adnabod fel y llinyn ymholiad,
ac mae hyn yn caniatáu i chi basio dadleuon yn effeithiol at eich sgript PHP.
Mae'r llinyn ymholiad yn cynnwys parau gwerth allweddol, yn union fel tabl hash.
Arwydd gyfartal gwahanu allweddol a'i werth cyfatebol
tra bod ampersands wahân parau.
Mae URL sy'n edrych fel http://localhost/get.php?foo=bar&baz=qux
Mae gan 2 bâr gwerth allweddol yn y llinyn ymholiad.
Mae'r mapiau foo allweddol i'r bar gwerth,
ac yn mapio Baz allweddol i qux gwerth.
Gallwn weld y rhain parau gwerth allweddol yn hawdd gan ddefnyddio newidyn arbennig yn PHP,
$ _GET.
$ _GET Yn arae cysylltiadol
sy'n cael ei phoblogaeth yn awtomatig â data llinyn ymholiad.
Mae hynny'n golygu y rhoddir URL hwn $ _GET ["foo"]
yn hafal i'r bar llinyn.
>> Gadewch i ni edrych ar get.php i weld $ _GET ar waith.
Yma rydym yn defnyddio swyddogaeth o'r enw var_dump,
sydd, pan roddir amrywiaeth neu newidyn arall
Bydd hargraffu i ni.
Nawr, os rydym yn syml cael mynediad http://localhost/get.php
yna byddwn yn gweld amrywiaeth wag oherwydd nad ydym wedi darparu llinyn ymholiad.
Os byddwn yn darparu llinyn ymholiad trwy http://localhost/get.php?foo=bar&baz=qux
yna gallwn weld y bydd y $ _GET amrywiol yn cynnwys
parau gwerth allweddol y llinyn ymholiad yn.
Ond beth os nad ydym am i roi ein data y tu mewn i'r URL o dudalen?
Ar gyfer symiau mawr o ddata, gall hyn arwain at rai URLs 'n bert hyll
bod yn mynd i wneud ein sgleiniog gloff gwefan edrych.
Gallwn yn lle hynny roi'r llinyn ymholiad i mewn i'r corff
o'r ceisiadau HTTP yn hytrach na'r cais yn URL.
Yna, gallwn ddefnyddio PHP yn $ _POST newidyn
i gael mynediad i'r parau gwerth allweddol.
Un ffordd o wneud hyn yw drwy ffurflen HTML.
Yma mae gennym ffurflen HTML syml.
Sylwch yma fod y dull priodoledd y ffurflen hon yn ôl.
Mae hyn yn dweud wrth y porwr i roi parau gwerth allweddol y ffurflen yn
i mewn i gorff y cais yn hytrach na'r URL.
>> Pe baem yn defnyddio'r gwerth cael am priodoledd hwn
yna byddai parau gwerth allweddol y ffurflen yn lle hynny mynd i mewn i'r llinyn ymholiad,
er mwyn i ni gael mynediad iddynt drwy gyfrwng $ _GET eto.
Y priodoledd gweithredu y ffurflen yn dweud wrth y porwr ble i anfon y data.
Yma mae ein 2 elfen mewnbwn briodoleddau enw.
Bydd gwerth y nodweddion enw gwasanaethu fel allweddi yn ein data,
a bydd y gwerthoedd y mewnbynnau testun yn dod yn gwerthoedd allweddi hynny.
Nawr, gadewch i ni edrych ar post.php,
y ffeil fod y ffurflen hon yn cael ei chyflwyno i.
Yn union fel y gwnaethom o'r blaen, rydym yn syml yn dangos cynnwys y $ _POST amrywiol.
>> Gadewch i ni fynd at y ffurflen gyda'r http://localhost/form.php.
Nawr, pan fyddwn yn cyflwyno'r ffurflen, gallwn weld bod y data o form.php
yn cael ei drosglwyddo i post.php heb atodi llinyn ymholiad i'r URL.
Nawr rydym wedi gweld 2 ffordd wahanol o fynd heibio data rhwng tudalennau PHP,
gael ac ar ôl.
Yn ein enghraifft, rydym yn defnyddio 2 gwahanol fathau o geisiadau HTTP.
Fel y byddech yn ei ddisgwyl, cais get yn cael ei ddefnyddio pan fyddwn yn eu poblogaeth
$ _GET O'r URL, a swydd cais yn cael ei ddefnyddio
pan fyddwn yn phoblogaeth $ _POST.
Wrth gynllunio eich apps ar y we mae'n rheol da o bawd i ddefnyddio ceisiadau get
pryd y bydd eich app yn unig yn darllen data, a cheisiadau swydd
pryd y bydd eich app yn ysgrifennu data.
Er enghraifft, bydd ymholiad chwilio darllen data oddi wrth eich app,
felly cais get yn gwneud synnwyr.
Ar y llaw arall, bydd eich app ysgrifennu data drwy rhywbeth fel ffurflen gofrestru,
felly byddai swydd cais yn gwneud mwy o synnwyr, a dyna trosolwg o rai o'r technegau
byddwn yn eu defnyddio yn CS50 i greu gwefannau gan ddefnyddio PHP.
>> Fy enw i yw Tommy, ac mae hyn yn CS50.
[CS50.TV]