1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Datblygu'r We PHP] 2 00:00:03,000 --> 00:00:05,000 [Tommy MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [Mae hyn yn CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> Yn y fideo, byddwn yn dysgu am ddefnyddio PHP ar gyfer datblygu ar y we. 5 00:00:11,000 --> 00:00:14,000 PHP yn iaith sgriptio y gellir eu defnyddio i weithredu 6 00:00:14,000 --> 00:00:17,000 gwefannau ar weinydd y we. 7 00:00:17,000 --> 00:00:21,000 Mae gweinydd y we yn ei hanfod yn beiriant ymroddedig i ddarparu cynnwys 8 00:00:21,000 --> 00:00:24,000 y gellir cael mynediad trwy gyfrwng y rhyngrwyd. 9 00:00:24,000 --> 00:00:30,000 Pan fyddwch yn llywio i'r dudalen we fel Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 y cod yn y ffeil o'r enw home.php sy'n byw ar weinydd y we Facebook rhywle 11 00:00:35,000 --> 00:00:38,000 Bydd yn cael ei weithredu ar y gweinydd. 12 00:00:38,000 --> 00:00:41,000 Bydd y cod yn debygol cynhyrchu rhywfaint o allbwn 13 00:00:41,000 --> 00:00:43,000 fydd yn ei dro yn cael ei anfon o'r gweinydd 14 00:00:43,000 --> 00:00:45,000 at eich porwr gwe. 15 00:00:45,000 --> 00:00:49,000 Byddwn yn defnyddio'r offer CS50 fel gweinydd gwe. 16 00:00:49,000 --> 00:00:51,000 Ni fydd eich peiriant yn debygol o fod bron mor bwerus fel y peiriannau 17 00:00:51,000 --> 00:00:57,000 mewn canolfan ddata Facebook, ond byddwch yn cael unrhyw broblem ei ddefnyddio ar gyfer datblygu ar y we. 18 00:00:57,000 --> 00:01:05,000 >> Pan fyddwn yn llywio i URL fel http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 rydym yn ffurfweddu'r offer trwy gais a elwir y gweinydd Apache HTTP 20 00:01:10,000 --> 00:01:19,000 i chwilio am ffeil o'r enw hello.php tu mewn cartref / jharvard / vhosts / localhosts / html yn ddiofyn. 21 00:01:19,000 --> 00:01:23,000 Os yw hynny'n ffeil yn bodoli, yna bydd Apache defnyddio'r cyfieithydd PHP 22 00:01:23,000 --> 00:01:27,000 i weithredu y cod PHP yn hello.php. 23 00:01:27,000 --> 00:01:31,000 Os nad yw'r ffeil yn bodoli, yna bydd Apache taflu gwall heb ei darganfod 24 00:01:31,000 --> 00:01:36,000 neu gamgymeriad 404, yr ydych yn ôl pob tebyg wedi gweld wrth bori'r we. 25 00:01:36,000 --> 00:01:40,000 >> Gadewch i ni edrych ar hello.php. 26 00:01:40,000 --> 00:01:45,000 Gallwn weld yma y hello.php cynhyrchu llinell signal allbwn. 27 00:01:45,000 --> 00:01:51,000 Pan fyddwn yn rhedeg hello.php ar y llinell orchymyn drwy hello.php php 28 00:01:51,000 --> 00:01:54,000 bod cynnyrch a argraffwyd i'r derfynell. 29 00:01:54,000 --> 00:01:58,000 Nawr, pan fyddwn yn cael mynediad i'r ffeil drwy URL yn y porwr gwe 30 00:01:58,000 --> 00:02:01,000 bydd ei allbwn yn cael ei anfon at y porwr gwe, 31 00:02:01,000 --> 00:02:09,000 felly mynd i'r URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 gallwn weld yr allbwn yn ein porwr gwe. 33 00:02:12,000 --> 00:02:17,000 >> Gadewch i ni geisio ychwanegu printf arall i'n rhaglen byd helo. 34 00:02:17,000 --> 00:02:23,000 Iawn, gadewch i ni fod yn bennaeth yn ôl i'r porwr gwe i weld yr hyn sydd gennym. 35 00:02:23,000 --> 00:02:25,000 Diddorol. 36 00:02:25,000 --> 00:02:28,000 Yn hytrach na argraffu llinell arall ar ei linell ei hun, fel y byddech wedi gweld 37 00:02:28,000 --> 00:02:32,000 yn y derfynell, mae'n edrych fel ei got smushed ar yr un llinell 38 00:02:32,000 --> 00:02:36,000 gan fod y printf eraill, nid llinellau felly efallai newydd yn gweithio yn PHP. 39 00:02:36,000 --> 00:02:38,000 Ddim yn hollol. 40 00:02:38,000 --> 00:02:41,000 Cofiwch fod HTML yn cael ei ddefnyddio fel arfer i greu tudalennau gwe 41 00:02:41,000 --> 00:02:44,000 y gellir eu harddangos gan borwyr gwe. 42 00:02:44,000 --> 00:02:49,000 Nid yn unig y llinyn yn helo o php HTML nad ddilys, 43 00:02:49,000 --> 00:02:53,000 ond yn cofio na allwn ddefnyddio'r cymeriad \ n yn HTML 44 00:02:53,000 --> 00:02:55,000 i greu toriad llinell. 45 00:02:55,000 --> 00:03:01,000 Yn hytrach na dim ond outputting allbwn HTML dilys yn osod llinyn yn. 46 00:03:01,000 --> 00:03:04,000 Trwy ddefnyddio paragraff tagiau pob un o'n galwadau printf 47 00:03:04,000 --> 00:03:07,000 Bydd yn cael ei harddangos ar ei linell ei hun, 48 00:03:07,000 --> 00:03:11,000 felly nawr pan fyddwn yn ymweld â'r pwyntio URL i valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 rydym yn gweld y cynnyrch yr ydym yn chwilio amdano. 51 00:03:19,000 --> 00:03:22,000 >> Yn awr, os ydym yn edrych ar y ffynhonnell y dudalen hon 52 00:03:22,000 --> 00:03:25,000 gallwn weld ein bod yn awr yn edrych ar HTML dilys, 53 00:03:25,000 --> 00:03:28,000 yr ydym yn creu o PHP. 54 00:03:28,000 --> 00:03:31,000 Rhoi ein holl HTML y tu mewn galwadau printf 55 00:03:31,000 --> 00:03:34,000 yn, wrth gwrs, yn mynd i gael 'n sylweddol yn blino. 56 00:03:34,000 --> 00:03:38,000 Yn ffodus gallwn yn hawdd cymysgu HTML a PHP 57 00:03:38,000 --> 00:03:41,000 yn yr un ffeil. php. 58 00:03:41,000 --> 00:03:47,000 Cofiwch, mae'n rhaid i bob un o'n cod PHP yn cael ei amgáu o fewn 00:03:49,000 a?>. 60 00:03:49,000 --> 00:03:52,000 Unrhyw beth nad yw wedi'i amgáu o fewn amffinyddion hyn 61 00:03:52,000 --> 00:03:55,000 yn syml, bydd yn cael ei anfon fel allbwn i y porwr 62 00:03:55,000 --> 00:03:57,000 yn hytrach na chael eu dienyddio. 63 00:03:57,000 --> 00:04:01,000 Mae hynny'n golygu y gallwn wneud rhywbeth fel hyn. 64 00:04:01,000 --> 00:04:05,000 Gallwn yn syml ysgrifennu HTML tu mewn ein. Ffeil php 65 00:04:05,000 --> 00:04:11,000 ac yna rhowch blociau PHP lle bynnag y byddem yn hoffi rhywfaint cod php ei wneud. 66 00:04:11,000 --> 00:04:15,000 Yma rydym yn diffinio ychydig o newidynnau ar frig y ffeil, 67 00:04:15,000 --> 00:04:19,000 ac yn ddiweddarach rydym yn eu hargraffu tu mewn ein HTML. 68 00:04:19,000 --> 00:04:27,000 Nawr, os byddwn yn ymweld â URL hwn, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 gallwn weld ein PHP gwerthuso y tu mewn ein HTML. 70 00:04:33,000 --> 00:04:36,000 >> Nawr, gadewch i ni edrych ar sut y gallwn drosglwyddo data 71 00:04:36,000 --> 00:04:39,000 ymhlith ein gwahanol dudalennau PHP. 72 00:04:39,000 --> 00:04:51,000 Yn hytrach na dweud 73 00:04:51,000 --> 00:04:58,000 gallwn ddweud yn syml 00:05:01,000 a?>. 75 00:05:01,000 --> 00:05:03,000 Gadewch i ni yn awr yn cymryd edrych ar sut y gallwn drosglwyddo data 76 00:05:03,000 --> 00:05:06,000 ymhlith ein gwahanol dudalennau PHP. 77 00:05:06,000 --> 00:05:11,000 Un ffordd y gallwn wneud hynny yw i amgodio gwybodaeth yn y URL o dudalen. 78 00:05:11,000 --> 00:05:14,000 Wrth pori'r We, efallai eich bod wedi sylwi bod rhai URLs 79 00:05:14,000 --> 00:05:20,000 cynnwys? ac yna linyn sy'n cynnwys ampersands ac arwyddion cyfartal. 80 00:05:20,000 --> 00:05:23,000 Mae'r rhan hon o'r URL ei adnabod fel y llinyn ymholiad, 81 00:05:23,000 --> 00:05:29,000 ac mae hyn yn caniatáu i chi basio dadleuon yn effeithiol at eich sgript PHP. 82 00:05:29,000 --> 00:05:34,000 Mae'r llinyn ymholiad yn cynnwys parau gwerth allweddol, yn union fel tabl hash. 83 00:05:34,000 --> 00:05:38,000 Arwydd gyfartal gwahanu allweddol a'i werth cyfatebol 84 00:05:38,000 --> 00:05:41,000 tra bod ampersands wahân parau. 85 00:05:41,000 --> 00:06:05,000 Mae URL sy'n edrych fel http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 Mae gan 2 bâr gwerth allweddol yn y llinyn ymholiad. 87 00:06:09,000 --> 00:06:12,000 Mae'r mapiau foo allweddol i'r bar gwerth, 88 00:06:12,000 --> 00:06:16,000 ac yn mapio Baz allweddol i qux gwerth. 89 00:06:16,000 --> 00:06:23,000 Gallwn weld y rhain parau gwerth allweddol yn hawdd gan ddefnyddio newidyn arbennig yn PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET Yn arae cysylltiadol 92 00:06:32,000 --> 00:06:36,000 sy'n cael ei phoblogaeth yn awtomatig â data llinyn ymholiad. 93 00:06:36,000 --> 00:06:46,000 Mae hynny'n golygu y rhoddir URL hwn $ _GET ["foo"] 94 00:06:46,000 --> 00:06:49,000 yn hafal i'r bar llinyn. 95 00:06:49,000 --> 00:06:56,000 >> Gadewch i ni edrych ar get.php i weld $ _GET ar waith. 96 00:06:56,000 --> 00:07:00,000 Yma rydym yn defnyddio swyddogaeth o'r enw var_dump, 97 00:07:00,000 --> 00:07:03,000 sydd, pan roddir amrywiaeth neu newidyn arall 98 00:07:03,000 --> 00:07:05,000 Bydd hargraffu i ni. 99 00:07:05,000 --> 00:07:12,000 Nawr, os rydym yn syml cael mynediad http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 yna byddwn yn gweld amrywiaeth wag oherwydd nad ydym wedi darparu llinyn ymholiad. 101 00:07:17,000 --> 00:07:29,000 Os byddwn yn darparu llinyn ymholiad trwy http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 yna gallwn weld y bydd y $ _GET amrywiol yn cynnwys 103 00:07:34,000 --> 00:07:37,000 parau gwerth allweddol y llinyn ymholiad yn. 104 00:07:37,000 --> 00:07:42,000 Ond beth os nad ydym am i roi ein data y tu mewn i'r URL o dudalen? 105 00:07:42,000 --> 00:07:46,000 Ar gyfer symiau mawr o ddata, gall hyn arwain at rai URLs 'n bert hyll 106 00:07:46,000 --> 00:07:49,000 bod yn mynd i wneud ein sgleiniog gloff gwefan edrych. 107 00:07:49,000 --> 00:07:52,000 Gallwn yn lle hynny roi'r llinyn ymholiad i mewn i'r corff 108 00:07:52,000 --> 00:07:57,000 o'r ceisiadau HTTP yn hytrach na'r cais yn URL. 109 00:07:57,000 --> 00:08:02,000 Yna, gallwn ddefnyddio PHP yn $ _POST newidyn 110 00:08:02,000 --> 00:08:05,000 i gael mynediad i'r parau gwerth allweddol. 111 00:08:05,000 --> 00:08:10,000 Un ffordd o wneud hyn yw drwy ffurflen HTML. 112 00:08:10,000 --> 00:08:13,000 Yma mae gennym ffurflen HTML syml. 113 00:08:13,000 --> 00:08:17,000 Sylwch yma fod y dull priodoledd y ffurflen hon yn ôl. 114 00:08:17,000 --> 00:08:21,000 Mae hyn yn dweud wrth y porwr i roi parau gwerth allweddol y ffurflen yn 115 00:08:21,000 --> 00:08:25,000 i mewn i gorff y cais yn hytrach na'r URL. 116 00:08:25,000 --> 00:08:28,000 >> Pe baem yn defnyddio'r gwerth cael am priodoledd hwn 117 00:08:28,000 --> 00:08:32,000 yna byddai parau gwerth allweddol y ffurflen yn lle hynny mynd i mewn i'r llinyn ymholiad, 118 00:08:32,000 --> 00:08:36,000 er mwyn i ni gael mynediad iddynt drwy gyfrwng $ _GET eto. 119 00:08:36,000 --> 00:08:42,000 Y priodoledd gweithredu y ffurflen yn dweud wrth y porwr ble i anfon y data. 120 00:08:42,000 --> 00:08:46,000 Yma mae ein 2 elfen mewnbwn briodoleddau enw. 121 00:08:46,000 --> 00:08:51,000 Bydd gwerth y nodweddion enw gwasanaethu fel allweddi yn ein data, 122 00:08:51,000 --> 00:08:56,000 a bydd y gwerthoedd y mewnbynnau testun yn dod yn gwerthoedd allweddi hynny. 123 00:08:56,000 --> 00:08:59,000 Nawr, gadewch i ni edrych ar post.php, 124 00:08:59,000 --> 00:09:03,000 y ffeil fod y ffurflen hon yn cael ei chyflwyno i. 125 00:09:03,000 --> 00:09:10,000 Yn union fel y gwnaethom o'r blaen, rydym yn syml yn dangos cynnwys y $ _POST amrywiol. 126 00:09:10,000 --> 00:09:18,000 >> Gadewch i ni fynd at y ffurflen gyda'r http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Nawr, pan fyddwn yn cyflwyno'r ffurflen, gallwn weld bod y data o form.php 128 00:09:23,000 --> 00:09:30,000 yn cael ei drosglwyddo i post.php heb atodi llinyn ymholiad i'r URL. 129 00:09:30,000 --> 00:09:35,000 Nawr rydym wedi gweld 2 ffordd wahanol o fynd heibio data rhwng tudalennau PHP, 130 00:09:35,000 --> 00:09:37,000 gael ac ar ôl. 131 00:09:37,000 --> 00:09:41,000 Yn ein enghraifft, rydym yn defnyddio 2 gwahanol fathau o geisiadau HTTP. 132 00:09:41,000 --> 00:09:45,000 Fel y byddech yn ei ddisgwyl, cais get yn cael ei ddefnyddio pan fyddwn yn eu poblogaeth 133 00:09:45,000 --> 00:09:51,000 $ _GET O'r URL, a swydd cais yn cael ei ddefnyddio 134 00:09:51,000 --> 00:09:55,000 pan fyddwn yn phoblogaeth $ _POST. 135 00:09:55,000 --> 00:09:59,000 Wrth gynllunio eich apps ar y we mae'n rheol da o bawd i ddefnyddio ceisiadau get 136 00:09:59,000 --> 00:10:03,000 pryd y bydd eich app yn unig yn darllen data, a cheisiadau swydd 137 00:10:03,000 --> 00:10:05,000 pryd y bydd eich app yn ysgrifennu data. 138 00:10:05,000 --> 00:10:09,000 Er enghraifft, bydd ymholiad chwilio darllen data oddi wrth eich app, 139 00:10:09,000 --> 00:10:12,000 felly cais get yn gwneud synnwyr. 140 00:10:12,000 --> 00:10:17,000 Ar y llaw arall, bydd eich app ysgrifennu data drwy rhywbeth fel ffurflen gofrestru, 141 00:10:17,000 --> 00:10:22,000 felly byddai swydd cais yn gwneud mwy o synnwyr, a dyna trosolwg o rai o'r technegau 142 00:10:22,000 --> 00:10:26,000 byddwn yn eu defnyddio yn CS50 i greu gwefannau gan ddefnyddio PHP. 143 00:10:26,000 --> 00:10:30,000 >> Fy enw i yw Tommy, ac mae hyn yn CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]