[Powered by Google Translate] [Вэб-распрацоўка PHP]
[Томі MacWilliam]
[Гэта CS50.] [CS50.TV]
>> У гэтым відэа мы даведаемся аб выкарыстанні PHP для вэб-распрацоўкі.
РНР гэта мова сцэнарыяў, якія могуць быць выкарыстаны для рэалізацыі
вэб-сайтаў на вэб-серверы.
Вэб-сервер з'яўляецца па сутнасці машына арыентаваны на прадастаўленне кантэнту
якія могуць быць даступныя праз Інтэрнэт.
Пры пераходзе на вэб-старонку, як Facebook.com / home.php
код у файл з імем home.php які жыве на вэб-сэрвэры Facebook дзесьці
будзе выконвацца на гэтым серверы.
Гэты код, хутчэй за ўсё, вырабіць некаторы выхад
што ў сваю чаргу будзе адпраўлена з сервера
ў вашым вэб-браўзэры.
Мы будзем выкарыстоўваць CS50 прыбор у якасці вэб-сервера.
Ваша машына, верагодна, не будзе гэтак жа магутнай, як машыны
у цэнтры апрацоўкі дадзеных Facebook, але вы не будзеце мець ніякіх праблем з выкарыстаннем яго для вэб-распрацоўкі.
>> Калі мы перайсці да URL, як http://localhost/hello.php
мы наладзіць прылада з дапамогай прыкладання пад назвай сервер Apache HTTP
шукаць файл з імем hello.php ўнутры дома / jharvard / віртуальных даменаў / localhosts / HTML па змаўчанні.
Калі гэты файл існуе, то Apache будзе выкарыстоўваць інтэрпрэтатар PHP
для выканання кода PHP ў hello.php.
Калі гэты файл не існуе, то Apache будзе кідаць не знойдзена памылка
або памылка 404, які вы, напэўна, бачылі падчас прагляду вэб-старонак.
>> Давайце зірнем на hello.php.
Мы бачым тут, што hello.php генеруе сігнал радок высновы.
Калі мы пабеглі hello.php у камандным радку з дапамогай PHP hello.php
што выхад быў надрукаваны на тэрмінал.
Цяпер, калі мы да гэтага файла праз URL ў вэб-браўзэры
яго выхад будзе адпраўлены на вэб-браўзэра,
так адправіцца ў URL, http://localhost/hello.php,
мы можам убачыць выхад у нашым вэб-браўзэра.
>> Давайце паспрабуем дадаць яшчэ адзін Printf ў наш прывітанне свет праграмы.
Добра, давайце галаву назад у вэб-браўзэры і паглядзець, што ў нас ёсць.
Цікавы.
Замест таго, каб друкаваць яшчэ адну лінію на асобным радку, як вы б бачылі
у тэрмінале, падобна, гэта быў smushed на той жа лініі
як іншы Printf, так што, магчыма, новыя лініі не працуюць у PHP.
Не зусім.
Памятаеце, што HTML звычайна выкарыстоўваецца для стварэння вэб-старонак
, Якія могуць адлюстроўвацца на вэб-браўзэраў.
Мала таго, што радок прывітанне ад PHP ня сапраўдны HTML,
але памятайце, што мы не можам выкарыстоўваць \ п знак у HTML
стварыць разрыў радка.
Замест таго каб проста выводзіць радок Давайце выхадны сапраўдны HTML.
Выкарыстоўваючы пункт тэгі кожны з нашых Printf званкоў
будзе адлюстроўвацца на асобнай радку,
так што зараз, калі мы наведваем URL, які паказвае на valid.php
http://localhost/valid.php
мы бачым вынік, які мы шукаем.
>> Цяпер, калі мы разглядаем зыходны тэкст гэтай старонкі
мы бачым, што мы цяпер, гледзячы на ​​сапраўдны HTML,
які мы стварылі з PHP.
Увод усіх нашых HTML ўнутры Е званкоў
, Вядома, збіраецца атрымаць сапраўды раздражняе.
На шчасце, мы можам лёгка змешваць HTML і PHP
у тым жа. файл PHP.
Памятаеце, што ўсё наша PHP кода павінны быць заключаны ў <PHP?
і?>.
Усё, што не заключаны ў гэтых падзельнікаў
проста быць адпраўлены ў якасці выхаду на браўзэры
а не выконваецца.
Гэта азначае, што мы можам зрабіць нешта накшталт гэтага.
Мы можам проста напісаць HTML ўнутры нашага. Выява PHP
а затым устаўце PHP блокі ўсюды, дзе мы хацелі б некаторыя PHP код павінен быць пакараны.
Тут мы вызначаем некалькі зменных у верхняй часткі файла,
і пазней мы раздрукаваць іх унутры нашага HTML.
Цяпер, калі мы наведваем гэты адрас, http://localhost/mixed.php
мы можам убачыць нашу ацэнены PHP ўнутры нашага HTML.
>> Зараз давайце паглядзім, як мы можам перадаваць дадзеныя
сярод нашых розных PHP-старонак.
Замест таго каб гаварыць
мы можам проста сказаць <? = пераменная, якую мы хацелі б надрукаваць, або,
і?>.
Зараз давайце паглядзім, як мы можам перадаваць дадзеныя
сярод нашых розных PHP-старонак.
Адзін са спосабаў зрабіць гэта, каб закадаваць інфармацыю ў URL старонкі.
Пры праглядзе вэб-старонак, вы, магчыма, заўважылі, што некаторыя URL-адрасы
ўтрымліваюць? затым радок, якая змяшчае амперсанда і знак роўнасці.
Гэтая частка URL вядомы як радок запыту,
і гэта дазваляе эфектыўна перадаваць аргументы ў сцэнар PHP.
Радок запыту складаецца з пар ключ-значэнне, гэтак жа, як хэш-табліцу.
Знак роўнасці падзяляе ключ і адпаведнае яму значэнне
у той час як амперсанда аддзяліць пар.
URL, які выглядае як http://localhost/get.php?foo=bar&baz=qux
мае 2 пары ключ-значэнне ў радку запыту.
Ключ Foo карты ў бар кошту,
і ключ Баз карты да значэння QUX.
Мы можам лёгка атрымаць доступ да гэтых пары ключ-значэнне, выкарыстоўваючы спецыяльную зменную ў PHP,
$ _GET.
$ _GET З'яўляецца асацыятыўным масівам
што аўтаматычна запаўняецца радкі запыту дадзеных.
Гэта азначае, што з улікам гэтага URL $ _GET ["Foo"]
будзе роўная радкі бар.
>> Давайце зірнем на get.php бачыць $ _GET ў дзеянні.
Тут мы выкарыстоўваем функцыю з імем var_dump,
які пры увядзенні масіў або іншай зменнай
надрукуе гэта для нас.
Цяпер, калі мы проста атрымаць доступ http://localhost/get.php
тады мы ўбачым, пусты масіў, таму што мы не далі радок запыту.
Калі мы прадстаўляем радок запыту праз http://localhost/get.php?foo=bar&baz=qux
то можна ўбачыць, што зменная $ _GET будзе ўтрымліваць
пар ключ-значэнне радкі запыту.
Але што, калі мы не хочам, каб размясціць нашы дадзеныя ўнутры URL частцы старонкі?
Для вялікіх аб'ёмаў дадзеных, гэта можа прывесці ў некаторых даволі выродлівыя URL-адрасоў
што збіраюцца зрабіць нашу бліскучую вэб-сайце выглядаюць ламе.
Мы можаце змясціць радок запыту ў цела
з HTTP запытаў, а ня URL запыту.
Тады мы можам выкарыстоўваць $ _POST зменную ў PHP
для доступу да пары ключ-значэнне.
Адзін са спосабаў зрабіць гэта з дапамогай HTML форме.
Тут у нас ёсць просты HTML форму.
Звярніце ўвагу, тут, што метад атрыбут гэтай формы з'яўляецца пост.
Гэта кажа браўзэру, каб пакласці пары ключ-значэнне формы
у целе запыту, а ня URL.
>> Калі б мы выкарыстоўвалі значэнне атрымаць для гэтага атрыбуту
Затым пар ключ-значэнне формы замест гэтага пайсці ў радок запыту,
, Каб мы маглі атрымаць да іх доступ праз $ _GET зноў.
Дзеянне атрыбут выглядзе паведамляе браўзэру куды адправіць дадзеныя.
Тут нашы 2 ўваходных элементы маюць атрыбуты імёнаў.
Значэнне атрыбутаў імёнаў будзе служыць у якасці ключоў у нашы дадзеных,
і значэння палёў уводу стане значэння гэтых ключоў.
Зараз давайце зірнем на post.php,
файл, што гэтая форма прадстаўляе на.
Гэтак жа, як мы рабілі раней, мы проста адлюстравання змесціва зменнай $ _POST.
>> Давайце перайдзіце да формы з http://localhost/form.php.
Цяпер, калі мы даведайцеся мы бачым, што дадзеныя з form.php
перадаецца Post.php без дадання радок запыту да URL.
Цяпер мы бачылі 2 розныя спосабы перадачы дадзеных паміж PHP старонак,
атрымаць і апублікаваць.
У нашых прыкладах мы выкарыстоўвалі 2 розных тыпаў HTTP-запытаў.
Як і варта было чакаць, запыт Get быў выкарыстаны, калі мы населены
Быў выкарыстаны $ _GET з URL, і запыт паведамленні
калі мы заселеныя $ _POST.
У распрацоўцы вэб-прыкладанняў, што гэта добрае правіла выкарыстоўваць запыты GET
калі ваша прыкладанне будзе толькі счытваць дадзеныя, і пасля просьбы
калі ваша прыкладанне будзе запісваць дадзеныя.
Напрыклад, пошукавы запыт будзе чытаць дадзеныя з вашага прыкладання,
так запыт Get мае сэнс.
З іншага боку, ваша прыкладанне будзе запісваць дадзеныя з дапамогай чагосьці накшталт рэгістрацыйнай форме,
з такой просьбай паведамленне мела б больш сэнсу, і гэта кароткі агляд некаторых з метадаў,
мы будзем выкарыстоўваць у CS50 для стварэння вэб-сайтаў з выкарыстаннем PHP.
>> Мяне клічуць Томі, і гэта CS50.
[CS50.TV]