1 00:00:00,000 --> 00:00:03,000 [Powered by Google Translate] [Вэб-распрацоўка PHP] 2 00:00:03,000 --> 00:00:05,000 [Томі MacWilliam] 3 00:00:05,000 --> 00:00:07,000 [Гэта CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:11,000 >> У гэтым відэа мы даведаемся аб выкарыстанні PHP для вэб-распрацоўкі. 5 00:00:11,000 --> 00:00:14,000 РНР гэта мова сцэнарыяў, якія могуць быць выкарыстаны для рэалізацыі 6 00:00:14,000 --> 00:00:17,000 вэб-сайтаў на вэб-серверы. 7 00:00:17,000 --> 00:00:21,000 Вэб-сервер з'яўляецца па сутнасці машына арыентаваны на прадастаўленне кантэнту 8 00:00:21,000 --> 00:00:24,000 якія могуць быць даступныя праз Інтэрнэт. 9 00:00:24,000 --> 00:00:30,000 Пры пераходзе на вэб-старонку, як Facebook.com / home.php 10 00:00:30,000 --> 00:00:35,000 код у файл з імем home.php які жыве на вэб-сэрвэры Facebook дзесьці 11 00:00:35,000 --> 00:00:38,000 будзе выконвацца на гэтым серверы. 12 00:00:38,000 --> 00:00:41,000 Гэты код, хутчэй за ўсё, вырабіць некаторы выхад 13 00:00:41,000 --> 00:00:43,000 што ў сваю чаргу будзе адпраўлена з сервера 14 00:00:43,000 --> 00:00:45,000 ў вашым вэб-браўзэры. 15 00:00:45,000 --> 00:00:49,000 Мы будзем выкарыстоўваць CS50 прыбор у якасці вэб-сервера. 16 00:00:49,000 --> 00:00:51,000 Ваша машына, верагодна, не будзе гэтак жа магутнай, як машыны 17 00:00:51,000 --> 00:00:57,000 у цэнтры апрацоўкі дадзеных Facebook, але вы не будзеце мець ніякіх праблем з выкарыстаннем яго для вэб-распрацоўкі. 18 00:00:57,000 --> 00:01:05,000 >> Калі мы перайсці да URL, як http://localhost/hello.php 19 00:01:05,000 --> 00:01:10,000 мы наладзіць прылада з дапамогай прыкладання пад назвай сервер Apache HTTP 20 00:01:10,000 --> 00:01:19,000 шукаць файл з імем hello.php ўнутры дома / jharvard / віртуальных даменаў / localhosts / HTML па змаўчанні. 21 00:01:19,000 --> 00:01:23,000 Калі гэты файл існуе, то Apache будзе выкарыстоўваць інтэрпрэтатар PHP 22 00:01:23,000 --> 00:01:27,000 для выканання кода PHP ў hello.php. 23 00:01:27,000 --> 00:01:31,000 Калі гэты файл не існуе, то Apache будзе кідаць не знойдзена памылка 24 00:01:31,000 --> 00:01:36,000 або памылка 404, які вы, напэўна, бачылі падчас прагляду вэб-старонак. 25 00:01:36,000 --> 00:01:40,000 >> Давайце зірнем на hello.php. 26 00:01:40,000 --> 00:01:45,000 Мы бачым тут, што hello.php генеруе сігнал радок высновы. 27 00:01:45,000 --> 00:01:51,000 Калі мы пабеглі hello.php у камандным радку з дапамогай PHP hello.php 28 00:01:51,000 --> 00:01:54,000 што выхад быў надрукаваны на тэрмінал. 29 00:01:54,000 --> 00:01:58,000 Цяпер, калі мы да гэтага файла праз URL ў вэб-браўзэры 30 00:01:58,000 --> 00:02:01,000 яго выхад будзе адпраўлены на вэб-браўзэра, 31 00:02:01,000 --> 00:02:09,000 так адправіцца ў URL, http://localhost/hello.php, 32 00:02:09,000 --> 00:02:12,000 мы можам убачыць выхад у нашым вэб-браўзэра. 33 00:02:12,000 --> 00:02:17,000 >> Давайце паспрабуем дадаць яшчэ адзін Printf ў наш прывітанне свет праграмы. 34 00:02:17,000 --> 00:02:23,000 Добра, давайце галаву назад у вэб-браўзэры і паглядзець, што ў нас ёсць. 35 00:02:23,000 --> 00:02:25,000 Цікавы. 36 00:02:25,000 --> 00:02:28,000 Замест таго, каб друкаваць яшчэ адну лінію на асобным радку, як вы б бачылі 37 00:02:28,000 --> 00:02:32,000 у тэрмінале, падобна, гэта быў smushed на той жа лініі 38 00:02:32,000 --> 00:02:36,000 як іншы Printf, так што, магчыма, новыя лініі не працуюць у PHP. 39 00:02:36,000 --> 00:02:38,000 Не зусім. 40 00:02:38,000 --> 00:02:41,000 Памятаеце, што HTML звычайна выкарыстоўваецца для стварэння вэб-старонак 41 00:02:41,000 --> 00:02:44,000 , Якія могуць адлюстроўвацца на вэб-браўзэраў. 42 00:02:44,000 --> 00:02:49,000 Мала таго, што радок прывітанне ад PHP ня сапраўдны HTML, 43 00:02:49,000 --> 00:02:53,000 але памятайце, што мы не можам выкарыстоўваць \ п знак у HTML 44 00:02:53,000 --> 00:02:55,000 стварыць разрыў радка. 45 00:02:55,000 --> 00:03:01,000 Замест таго каб проста выводзіць радок Давайце выхадны сапраўдны HTML. 46 00:03:01,000 --> 00:03:04,000 Выкарыстоўваючы пункт тэгі кожны з нашых Printf званкоў 47 00:03:04,000 --> 00:03:07,000 будзе адлюстроўвацца на асобнай радку, 48 00:03:07,000 --> 00:03:11,000 так што зараз, калі мы наведваем URL, які паказвае на valid.php 49 00:03:11,000 --> 00:03:17,000 http://localhost/valid.php 50 00:03:17,000 --> 00:03:19,000 мы бачым вынік, які мы шукаем. 51 00:03:19,000 --> 00:03:22,000 >> Цяпер, калі мы разглядаем зыходны тэкст гэтай старонкі 52 00:03:22,000 --> 00:03:25,000 мы бачым, што мы цяпер, гледзячы на ​​сапраўдны HTML, 53 00:03:25,000 --> 00:03:28,000 які мы стварылі з PHP. 54 00:03:28,000 --> 00:03:31,000 Увод усіх нашых HTML ўнутры Е званкоў 55 00:03:31,000 --> 00:03:34,000 , Вядома, збіраецца атрымаць сапраўды раздражняе. 56 00:03:34,000 --> 00:03:38,000 На шчасце, мы можам лёгка змешваць HTML і PHP 57 00:03:38,000 --> 00:03:41,000 у тым жа. файл PHP. 58 00:03:41,000 --> 00:03:47,000 Памятаеце, што ўсё наша PHP кода павінны быць заключаны ў 00:03:49,000 і?>. 60 00:03:49,000 --> 00:03:52,000 Усё, што не заключаны ў гэтых падзельнікаў 61 00:03:52,000 --> 00:03:55,000 проста быць адпраўлены ў якасці выхаду на браўзэры 62 00:03:55,000 --> 00:03:57,000 а не выконваецца. 63 00:03:57,000 --> 00:04:01,000 Гэта азначае, што мы можам зрабіць нешта накшталт гэтага. 64 00:04:01,000 --> 00:04:05,000 Мы можам проста напісаць HTML ўнутры нашага. Выява PHP 65 00:04:05,000 --> 00:04:11,000 а затым устаўце PHP блокі ўсюды, дзе мы хацелі б некаторыя PHP код павінен быць пакараны. 66 00:04:11,000 --> 00:04:15,000 Тут мы вызначаем некалькі зменных у верхняй часткі файла, 67 00:04:15,000 --> 00:04:19,000 і пазней мы раздрукаваць іх унутры нашага HTML. 68 00:04:19,000 --> 00:04:27,000 Цяпер, калі мы наведваем гэты адрас, http://localhost/mixed.php 69 00:04:27,000 --> 00:04:33,000 мы можам убачыць нашу ацэнены PHP ўнутры нашага HTML. 70 00:04:33,000 --> 00:04:36,000 >> Зараз давайце паглядзім, як мы можам перадаваць дадзеныя 71 00:04:36,000 --> 00:04:39,000 сярод нашых розных PHP-старонак. 72 00:04:39,000 --> 00:04:51,000 Замест таго каб гаварыць 73 00:04:51,000 --> 00:04:58,000 мы можам проста сказаць 00:05:01,000 і?>. 75 00:05:01,000 --> 00:05:03,000 Зараз давайце паглядзім, як мы можам перадаваць дадзеныя 76 00:05:03,000 --> 00:05:06,000 сярод нашых розных PHP-старонак. 77 00:05:06,000 --> 00:05:11,000 Адзін са спосабаў зрабіць гэта, каб закадаваць інфармацыю ў URL старонкі. 78 00:05:11,000 --> 00:05:14,000 Пры праглядзе вэб-старонак, вы, магчыма, заўважылі, што некаторыя URL-адрасы 79 00:05:14,000 --> 00:05:20,000 ўтрымліваюць? затым радок, якая змяшчае амперсанда і знак роўнасці. 80 00:05:20,000 --> 00:05:23,000 Гэтая частка URL вядомы як радок запыту, 81 00:05:23,000 --> 00:05:29,000 і гэта дазваляе эфектыўна перадаваць аргументы ў сцэнар PHP. 82 00:05:29,000 --> 00:05:34,000 Радок запыту складаецца з пар ключ-значэнне, гэтак жа, як хэш-табліцу. 83 00:05:34,000 --> 00:05:38,000 Знак роўнасці падзяляе ключ і адпаведнае яму значэнне 84 00:05:38,000 --> 00:05:41,000 у той час як амперсанда аддзяліць пар. 85 00:05:41,000 --> 00:06:05,000 URL, які выглядае як http://localhost/get.php?foo=bar&baz=qux 86 00:06:05,000 --> 00:06:09,000 мае 2 пары ключ-значэнне ў радку запыту. 87 00:06:09,000 --> 00:06:12,000 Ключ Foo карты ў бар кошту, 88 00:06:12,000 --> 00:06:16,000 і ключ Баз карты да значэння QUX. 89 00:06:16,000 --> 00:06:23,000 Мы можам лёгка атрымаць доступ да гэтых пары ключ-значэнне, выкарыстоўваючы спецыяльную зменную ў PHP, 90 00:06:23,000 --> 00:06:29,000 $ _GET. 91 00:06:29,000 --> 00:06:32,000 $ _GET З'яўляецца асацыятыўным масівам 92 00:06:32,000 --> 00:06:36,000 што аўтаматычна запаўняецца радкі запыту дадзеных. 93 00:06:36,000 --> 00:06:46,000 Гэта азначае, што з улікам гэтага URL $ _GET ["Foo"] 94 00:06:46,000 --> 00:06:49,000 будзе роўная радкі бар. 95 00:06:49,000 --> 00:06:56,000 >> Давайце зірнем на get.php бачыць $ _GET ў дзеянні. 96 00:06:56,000 --> 00:07:00,000 Тут мы выкарыстоўваем функцыю з імем var_dump, 97 00:07:00,000 --> 00:07:03,000 які пры увядзенні масіў або іншай зменнай 98 00:07:03,000 --> 00:07:05,000 надрукуе гэта для нас. 99 00:07:05,000 --> 00:07:12,000 Цяпер, калі мы проста атрымаць доступ http://localhost/get.php 100 00:07:12,000 --> 00:07:17,000 тады мы ўбачым, пусты масіў, таму што мы не далі радок запыту. 101 00:07:17,000 --> 00:07:29,000 Калі мы прадстаўляем радок запыту праз http://localhost/get.php?foo=bar&baz=qux 102 00:07:29,000 --> 00:07:34,000 то можна ўбачыць, што зменная $ _GET будзе ўтрымліваць 103 00:07:34,000 --> 00:07:37,000 пар ключ-значэнне радкі запыту. 104 00:07:37,000 --> 00:07:42,000 Але што, калі мы не хочам, каб размясціць нашы дадзеныя ўнутры URL частцы старонкі? 105 00:07:42,000 --> 00:07:46,000 Для вялікіх аб'ёмаў дадзеных, гэта можа прывесці ў некаторых даволі выродлівыя URL-адрасоў 106 00:07:46,000 --> 00:07:49,000 што збіраюцца зрабіць нашу бліскучую вэб-сайце выглядаюць ламе. 107 00:07:49,000 --> 00:07:52,000 Мы можаце змясціць радок запыту ў цела 108 00:07:52,000 --> 00:07:57,000 з HTTP запытаў, а ня URL запыту. 109 00:07:57,000 --> 00:08:02,000 Тады мы можам выкарыстоўваць $ _POST зменную ў PHP 110 00:08:02,000 --> 00:08:05,000 для доступу да пары ключ-значэнне. 111 00:08:05,000 --> 00:08:10,000 Адзін са спосабаў зрабіць гэта з дапамогай HTML форме. 112 00:08:10,000 --> 00:08:13,000 Тут у нас ёсць просты HTML форму. 113 00:08:13,000 --> 00:08:17,000 Звярніце ўвагу, тут, што метад атрыбут гэтай формы з'яўляецца пост. 114 00:08:17,000 --> 00:08:21,000 Гэта кажа браўзэру, каб пакласці пары ключ-значэнне формы 115 00:08:21,000 --> 00:08:25,000 у целе запыту, а ня URL. 116 00:08:25,000 --> 00:08:28,000 >> Калі б мы выкарыстоўвалі значэнне атрымаць для гэтага атрыбуту 117 00:08:28,000 --> 00:08:32,000 Затым пар ключ-значэнне формы замест гэтага пайсці ў радок запыту, 118 00:08:32,000 --> 00:08:36,000 , Каб мы маглі атрымаць да іх доступ праз $ _GET зноў. 119 00:08:36,000 --> 00:08:42,000 Дзеянне атрыбут выглядзе паведамляе браўзэру куды адправіць дадзеныя. 120 00:08:42,000 --> 00:08:46,000 Тут нашы 2 ўваходных элементы маюць атрыбуты імёнаў. 121 00:08:46,000 --> 00:08:51,000 Значэнне атрыбутаў імёнаў будзе служыць у якасці ключоў у нашы дадзеных, 122 00:08:51,000 --> 00:08:56,000 і значэння палёў уводу стане значэння гэтых ключоў. 123 00:08:56,000 --> 00:08:59,000 Зараз давайце зірнем на post.php, 124 00:08:59,000 --> 00:09:03,000 файл, што гэтая форма прадстаўляе на. 125 00:09:03,000 --> 00:09:10,000 Гэтак жа, як мы рабілі раней, мы проста адлюстравання змесціва зменнай $ _POST. 126 00:09:10,000 --> 00:09:18,000 >> Давайце перайдзіце да формы з http://localhost/form.php. 127 00:09:18,000 --> 00:09:23,000 Цяпер, калі мы даведайцеся мы бачым, што дадзеныя з form.php 128 00:09:23,000 --> 00:09:30,000 перадаецца Post.php без дадання радок запыту да URL. 129 00:09:30,000 --> 00:09:35,000 Цяпер мы бачылі 2 розныя спосабы перадачы дадзеных паміж PHP старонак, 130 00:09:35,000 --> 00:09:37,000 атрымаць і апублікаваць. 131 00:09:37,000 --> 00:09:41,000 У нашых прыкладах мы выкарыстоўвалі 2 розных тыпаў HTTP-запытаў. 132 00:09:41,000 --> 00:09:45,000 Як і варта было чакаць, запыт Get быў выкарыстаны, калі мы населены 133 00:09:45,000 --> 00:09:51,000 Быў выкарыстаны $ _GET з URL, і запыт паведамленні 134 00:09:51,000 --> 00:09:55,000 калі мы заселеныя $ _POST. 135 00:09:55,000 --> 00:09:59,000 У распрацоўцы вэб-прыкладанняў, што гэта добрае правіла выкарыстоўваць запыты GET 136 00:09:59,000 --> 00:10:03,000 калі ваша прыкладанне будзе толькі счытваць дадзеныя, і пасля просьбы 137 00:10:03,000 --> 00:10:05,000 калі ваша прыкладанне будзе запісваць дадзеныя. 138 00:10:05,000 --> 00:10:09,000 Напрыклад, пошукавы запыт будзе чытаць дадзеныя з вашага прыкладання, 139 00:10:09,000 --> 00:10:12,000 так запыт Get мае сэнс. 140 00:10:12,000 --> 00:10:17,000 З іншага боку, ваша прыкладанне будзе запісваць дадзеныя з дапамогай чагосьці накшталт рэгістрацыйнай форме, 141 00:10:17,000 --> 00:10:22,000 з такой просьбай паведамленне мела б больш сэнсу, і гэта кароткі агляд некаторых з метадаў, 142 00:10:22,000 --> 00:10:26,000 мы будзем выкарыстоўваць у CS50 для стварэння вэб-сайтаў з выкарыстаннем PHP. 143 00:10:26,000 --> 00:10:30,000 >> Мяне клічуць Томі, і гэта CS50. 144 00:10:30,000 --> 00:10:36,000 [CS50.TV]