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]