[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]