1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Тиждень 8] 2 00:00:02,000 --> 00:00:04,000 [David J Малан] [Harvard University] 3 00:00:04,000 --> 00:00:07,000 [Це CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Ласкаво просимо назад. 5 00:00:09,000 --> 00:00:11,000 Це CS50, і це є початком 8-му тижні. 6 00:00:11,000 --> 00:00:14,000 Пару можливості на цьому тижні, 7 00:00:14,000 --> 00:00:17,000 серед них ця розмова тут, в яку їжу будуть обслуговуватися. 8 00:00:17,000 --> 00:00:20,000 Для отримання додаткової інформації перевірити слайди, які знаходяться в мережі. 9 00:00:20,000 --> 00:00:24,000 А також ще одна подія цього тижня наші власні Томас Carriero. 10 00:00:24,000 --> 00:00:27,000 Він один із колишній глава CS50 в навчанні хлопців, які зараз перебуває на Dropbox, 11 00:00:27,000 --> 00:00:29,000 Він хлопець, який з'єднав нас з вами знаємо, що, 12 00:00:29,000 --> 00:00:36,000 так що якщо ви хочете більше, що голова їхню розмову цим днем ​​для Dropbox і багато іншого. 13 00:00:36,000 --> 00:00:38,000 CS50 обід в цю п'ятницю. 14 00:00:38,000 --> 00:00:41,000 У приєднатися до нас, якщо ви зможете, 1:15, як звичайно, Вогонь і лід. 15 00:00:41,000 --> 00:00:45,000 >> І тепер ми зануритися в те, що називається семінари. 16 00:00:45,000 --> 00:00:49,000 Наші CS50 семінари, нагадаємо, ці факультативні заняття на чолі з вченням стипендіатів 17 00:00:49,000 --> 00:00:51,000 і звичайно помічники і друзі, звичайно, 18 00:00:51,000 --> 00:00:55,000 Люди з групи в кампусі називають ABCD, яка являє собою групу 19 00:00:55,000 --> 00:00:58,000 технофіли на території кампусу, а також група під назвою ЖКГ, 20 00:00:58,000 --> 00:01:02,000 Товариство Гарвардського комп'ютер, студентів, які аналогічним зацікавлені в обчисленнях. 21 00:01:02,000 --> 00:01:08,000 Реєстр в цьому році семінарів включає в себе семінари з Android і IOS і JavaScript 22 00:01:08,000 --> 00:01:13,000 і PHP, Unix, Vim, і більше, так розумію, що ці семінари йдуть вгору. 23 00:01:13,000 --> 00:01:16,000 Якщо ви хочете, щоб RSVP для будь-якого з них відправитися в URL, що там. 24 00:01:16,000 --> 00:01:20,000 Ми будемо потім розмістити на веб-сайті курсу часи і місця, як тільки вони будуть завершені. 25 00:01:20,000 --> 00:01:26,000 Але знаю, чи варто їсти 5 році до семінари доступні в Інтернеті, 26 00:01:26,000 --> 00:01:29,000 багато з яких все ще дуже багато поточної точки зору технології ви могли б 27 00:01:29,000 --> 00:01:36,000 хочу грати з для остаточного проекту, так що голова там протягом деякого доступні відео їх. 28 00:01:36,000 --> 00:01:39,000 >> CSS, ті з вас, хто знайомий з CSS вже, 29 00:01:39,000 --> 00:01:42,000 що це таке в двох словах? 30 00:01:42,000 --> 00:01:45,000 Що таке CSS? 31 00:01:45,000 --> 00:01:48,000 Це каскадні таблиці стилів, і що це значить? 32 00:01:48,000 --> 00:01:53,000 Що це зробить для нас, CSS? 33 00:01:53,000 --> 00:01:57,000 Гаразд, давайте зігрітися простіше один, HTML, мова розмітки гіпертексту. 34 00:01:57,000 --> 00:02:01,000 Що це для нас зробити? 35 00:02:01,000 --> 00:02:04,000 Будь взагалі? 36 00:02:04,000 --> 00:02:07,000 Це стає дуже незручно ставити ці запитання. 37 00:02:07,000 --> 00:02:11,000 HTML, мова розмітки гіпертексту. 38 00:02:11,000 --> 00:02:14,000 Так? Ні? 39 00:02:14,000 --> 00:02:17,000 [Нерозбірливо відповідь студента] 40 00:02:17,000 --> 00:02:20,000 Добре, добре, це дозволяє розмічати текст для відображення у веб-браузері. 41 00:02:20,000 --> 00:02:22,000 Це не мова програмування. 42 00:02:22,000 --> 00:02:25,000 Це справді є мова розмітки, який означає, що вона наказує браузеру, як відображати 43 00:02:25,000 --> 00:02:28,000 Інформація, таким чином, найпростіші втілення цього, як ми бачили 44 00:02:28,000 --> 00:02:32,000 це те, супер просто, як boldfacing, відкриває дужка б замкнутий кронштейн говорить 45 00:02:32,000 --> 00:02:36,000 зробити цей текст жирним, і це насправді лише один з багатьох способів 46 00:02:36,000 --> 00:02:39,000 , В якому ми можемо зробити це, і дійсно, в ці дні краще підхід 47 00:02:39,000 --> 00:02:42,000 для стилізації ваших веб-сторінок, роблячи речі, жирним шрифтом і курсивом 48 00:02:42,000 --> 00:02:47,000 і по центру і обгрунтованим і тому подібне, не зроблено за допомогою HTML-тегів тільки 49 00:02:47,000 --> 00:02:51,000 а з технікою називають CSS, каскадні таблиці стилів. 50 00:02:51,000 --> 00:02:53,000 Це мова сам по собі. 51 00:02:53,000 --> 00:02:55,000 Це теж не є мовою програмування, але- 52 00:02:55,000 --> 00:02:58,000 всім, це Ден, який тримає приєдналися до нас сьогодні. 53 00:02:58,000 --> 00:03:01,000 Деякі технічні труднощі. Не проблема. 54 00:03:01,000 --> 00:03:04,000 >> CSS дозволяє стилізувати сторінку 55 00:03:04,000 --> 00:03:07,000 , Встановивши, що називається властивостями, так що давайте подивимося на цю 56 00:03:07,000 --> 00:03:09,000 шляхом деякі основні приклади. 57 00:03:09,000 --> 00:03:12,000 Відпустіть мене в прилад сьогодні. 58 00:03:12,000 --> 00:03:15,000 У мене є джерело 8 понеділка каталог тут, 59 00:03:15,000 --> 00:03:18,000 і я збираюся йти в каталог CSS, де ми маємо цілий букет 60 00:03:18,000 --> 00:03:21,000 файлів чекає нас прямо тут, 61 00:03:21,000 --> 00:03:27,000 і в цій папці у нас є, наприклад, search0.html в минулий раз. 62 00:03:27,000 --> 00:03:31,000 Тепер згадую з search0 ми вийшли на цю замітку 63 00:03:31,000 --> 00:03:35,000 від роду здійсненні Google або дійсно тільки передній кінець для нього тиждень тому, 64 00:03:35,000 --> 00:03:38,000 і зауважив, що у нас було кілька нових тегів немає. 65 00:03:38,000 --> 00:03:41,000 У нас був h1 для великої, жирний заголовок, 66 00:03:41,000 --> 00:03:45,000 форми, які дозволили нам насправді є HTML форма для введення даних користувачем. 67 00:03:45,000 --> 00:03:48,000 Дії, який був сенс дій атрибутом 68 00:03:48,000 --> 00:03:52,000 на HTML тега форми? 69 00:03:52,000 --> 00:03:58,000 У чому був сенс цієї дії? 70 00:03:58,000 --> 00:04:00,000 Я просто зроблю це сьогодні. 71 00:04:00,000 --> 00:04:03,000 Дія є місцем, де форма буде представлена. 72 00:04:03,000 --> 00:04:07,000 Справа в тому, що говорить, дія = "google.com / пошук" 73 00:04:07,000 --> 00:04:10,000 означає, що коли користувач натисне кнопку або еквівалент 74 00:04:10,000 --> 00:04:14,000 всі поля форми заповнені вони будуть відправлені не на нашому сервері 75 00:04:14,000 --> 00:04:17,000 або наш прилад, а до цього конкретного URL в Google. 76 00:04:17,000 --> 00:04:19,000 І метод, який він збирається використовувати називають отримати, 77 00:04:19,000 --> 00:04:25,000 і отримати, на даний момент, це просто техніка для передачі інформації по веб-серверу 78 00:04:25,000 --> 00:04:29,000 шляхом URL, так що давайте кинемо швидкий погляд назад, як це працює. 79 00:04:29,000 --> 00:04:31,000 >> Зверніть увагу, що є вхід, чиє ім'я д 80 00:04:31,000 --> 00:04:35,000 , Тип якого є текст, а потім другий вхід типу являють 81 00:04:35,000 --> 00:04:39,000 , Значення якого CS50 пошук, і дійсно, якщо ми відкриємо цей файл тут, 82 00:04:39,000 --> 00:04:42,000 search0.html, це супер простій формі, 83 00:04:42,000 --> 00:04:45,000 і якщо я шукаю щось подібне комп'ютерної науки 84 00:04:45,000 --> 00:04:50,000 а потім натисніть Enter або натисніть на CS50 пошук 85 00:04:50,000 --> 00:04:53,000 зауважити, що те, що відбувається за межами дістатися до Google 86 00:04:53,000 --> 00:04:56,000 Я спеціально закінчили в цьому URL у верхній частині, 87 00:04:56,000 --> 00:05:01,000 google.com / пошук? Q = комп'ютер + наука, 88 00:05:01,000 --> 00:05:04,000 та інформатики, очевидно, що я набрав дюйма 89 00:05:04,000 --> 00:05:06,000 + Просто означає, що там прогалину було, 90 00:05:06,000 --> 00:05:10,000 і це зроблено в браузері, просто щоб переконатися, що немає ніяких 91 00:05:10,000 --> 00:05:13,000 плутанина і прогалини у фактичних URL. 92 00:05:13,000 --> 00:05:15,000 І тоді д, звичайно, ім'я параметра. 93 00:05:15,000 --> 00:05:20,000 Ми не бачили, як ми, програміст, може насправді доступ Q поки немає. 94 00:05:20,000 --> 00:05:23,000 Можна припустити, що Google знає, що робити з цим тут, 95 00:05:23,000 --> 00:05:25,000 але ми повернемося туди свого часу сьогодні. 96 00:05:25,000 --> 00:05:30,000 >> Але дозвольте мені глянути, а не на search1.html, 97 00:05:30,000 --> 00:05:34,000 , Яка виглядає трохи по-іншому, тому що я вирішив, що ця форма тут було трохи шкутильгає. 98 00:05:34,000 --> 00:05:36,000 Я маю на увазі, це в лівому верхньому кутку. 99 00:05:36,000 --> 00:05:40,000 Там насправді ніякої естетики, і тому я хочу, щоб стилізувати цю 100 00:05:40,000 --> 00:05:43,000 трохи більше, як Google, чия домашня сторінка, нагадаємо, 101 00:05:43,000 --> 00:05:47,000 Навіть якщо ви не можете відвідати його, що часто, схоже, про це сьогодні на Хеллоуїн. 102 00:05:47,000 --> 00:05:53,000 Якщо ми замість цього відкривають версії 1 цього файлу, пошук 1.html, я його центру. 103 00:05:53,000 --> 00:05:57,000 Тим не менш досить потворні, але принаймні тепер я почав контролювати естетику цій сторінці, 104 00:05:57,000 --> 00:06:00,000 не тільки розмітка їх. 105 00:06:00,000 --> 00:06:04,000 Давайте поглянемо на пошук 1, і там дійсно тільки одна різниця тут, 106 00:06:04,000 --> 00:06:06,000 , Які можуть вискочити на тебе, а може і ні, 107 00:06:06,000 --> 00:06:11,000 але те, що один рядок або уривок різниця? 108 00:06:11,000 --> 00:06:14,000 >> Там у цей атрибут стилю, так що виходить, що в HTML 109 00:06:14,000 --> 00:06:19,000 більшість елементів, більшість тегів може мати атрибут стилю на них, 110 00:06:19,000 --> 00:06:23,000 і всередині цього стилю атрибута в лапках, 111 00:06:23,000 --> 00:06:26,000 і що рядок у лапках є CSS. 112 00:06:26,000 --> 00:06:29,000 Ви можете поставити каскадних таблиць стилів там 113 00:06:29,000 --> 00:06:32,000 , Вказавши його в якості імені властивості 114 00:06:32,000 --> 00:06:34,000 двокрапки слід значення. 115 00:06:34,000 --> 00:06:37,000 Це свого роду нещасних дизайнерське рішення кілька років тому 116 00:06:37,000 --> 00:06:40,000 , Що CSS це мова сам по собі, 117 00:06:40,000 --> 00:06:43,000 але синтаксично це дуже відрізняється від HTML. 118 00:06:43,000 --> 00:06:46,000 У цьому випадку, ми бачимо, що всередині мого веб-сторінки, які написані на HTML, 119 00:06:46,000 --> 00:06:51,000 У мене є CSS всередині цих лапок, і Конвенції про CSS 120 00:06:51,000 --> 00:06:55,000 є те, що у вас є те, що називається властивість випливає, знову ж таки, товстої кишки, 121 00:06:55,000 --> 00:06:58,000 після чого значення цієї властивості, так що немає знаку рівності. 122 00:06:58,000 --> 00:07:00,000 Там немає додаткових лапки. 123 00:07:00,000 --> 00:07:03,000 Це просто, це розділених двокрапкою пару ключів значення, 124 00:07:03,000 --> 00:07:05,000 і текстовий рядок робить саме те, що він говорить. 125 00:07:05,000 --> 00:07:09,000 Це вирівнює текст в тіло сторінки, які дійсно кишки сторінки, 126 00:07:09,000 --> 00:07:11,000 в центрі. 127 00:07:11,000 --> 00:07:13,000 >> Добре, кінцевим результатом те, щоб бути ясно, полягає в наступному. 128 00:07:13,000 --> 00:07:17,000 Не все, що сексуальніше, але принаймні це по центру і трохи більше схоже на реальну Google. 129 00:07:17,000 --> 00:07:21,000 Але що, якщо я замість цього відкривають версія 2 цієї 130 00:07:21,000 --> 00:07:25,000 і вказати тут новий тег взагалі? 131 00:07:25,000 --> 00:07:30,000 Тепер у голові моїй сторінці, яка раніше була тільки який тег 132 00:07:30,000 --> 00:07:32,000 У всіх попередніх прикладах? 133 00:07:32,000 --> 00:07:34,000 Це просто було це, назву. 134 00:07:34,000 --> 00:07:38,000 Хвилину тому глава теги виглядала наступним чином. 135 00:07:38,000 --> 00:07:40,000 Тепер замість нього є стиль всередині тега це, 136 00:07:40,000 --> 00:07:44,000 і це теж, я прошу вибачення, синтаксично виглядає дуже відрізняється від HTML, 137 00:07:44,000 --> 00:07:47,000 але ви звикнете до нього, в результаті чого всередині стилю тега 138 00:07:47,000 --> 00:07:50,000 Тепер я можу винести за дужки те, що було хвилину тому 139 00:07:50,000 --> 00:07:54,000 атрибутів, атрибут стилю, і я можу поставити його на самий верх моїй сторінці. 140 00:07:54,000 --> 00:07:56,000 >> Чому? 141 00:07:56,000 --> 00:08:00,000 Ну, це крок до очищення речей, так само, як у письмовій формі C код 142 00:08:00,000 --> 00:08:04,000 ми будемо іноді писати функції для виключення загальної функціональності. 143 00:08:04,000 --> 00:08:07,000 Це просто трохи чистішим, щоб почати факторингу з таких речах, як естетика 144 00:08:07,000 --> 00:08:11,000 в одному місці замість того, щоб все це пересипати всієї вашої HTML. 145 00:08:11,000 --> 00:08:14,000 Це теж робить те, що він говорить, хоча є трохи нового синтаксису. 146 00:08:14,000 --> 00:08:19,000 Це ось селектор, і тіло просто означає, виберіть елемент тіла 147 00:08:19,000 --> 00:08:21,000 і застосувати наступні властивості до нього. 148 00:08:21,000 --> 00:08:23,000 Ну, власність точно так само. 149 00:08:23,000 --> 00:08:25,000 На всяк випадок я додав крапку з комою в кінці кінців, 150 00:08:25,000 --> 00:08:29,000 яка має тенденцію бути конвенцією, і я обгорнутий всю цю власність 151 00:08:29,000 --> 00:08:33,000 у фігурні дужки, тому що я дійсно може мати різні речі. 152 00:08:33,000 --> 00:08:39,000 Я міг би насправді сказати щось подібне кольори: синій; 153 00:08:39,000 --> 00:08:42,000 >> Тепер це теж не збирається бути на крок в сторону все, що завгодно гарніше, 154 00:08:42,000 --> 00:08:47,000 але якби я зараз повернутися до версії 2 я принаймні зараз зробили тіло моє 155 00:08:47,000 --> 00:08:49,000 сторінки тексту всі сині. 156 00:08:49,000 --> 00:08:51,000 Кнопка залишається тим же, тому що це вхід. Це не чистий текст. 157 00:08:51,000 --> 00:08:56,000 Але все інше, що текст, як CS50 пошук нагорі, насправді сині. 158 00:08:56,000 --> 00:09:01,000 Знову ж таки, все, що ми зробили зараз, це видалити з організму тегів, зауважте, 159 00:09:01,000 --> 00:09:04,000 атрибут стилю, і ми враховуватися це тут. 160 00:09:04,000 --> 00:09:08,000 Це не величезний крок вперед, але якщо ми візьмемо це ще один крок вперед 161 00:09:08,000 --> 00:09:10,000 зауважити, що ми можемо зробити в цій третій версії тут. 162 00:09:10,000 --> 00:09:14,000 >> У search3.html веб-сторінки майже ідентичні 163 00:09:14,000 --> 00:09:17,000 крім того, що новий тег зараз? 164 00:09:17,000 --> 00:09:20,000 Link, так що ця не дуже влучно назвав 165 00:09:20,000 --> 00:09:24,000 тому що ви не пов'язуючи в сенсі гіперпосилання. 166 00:09:24,000 --> 00:09:28,000 Швидше за все, ви робите щось на зразок еквівалента # включити в C 167 00:09:28,000 --> 00:09:31,000 причому посилання тега з атрибутом HREF 168 00:09:31,000 --> 00:09:34,000 і отн атрибуту говорить, йти вперед 169 00:09:34,000 --> 00:09:39,000 і копіювати вставити вміст файлу з ім'ям search3.css прямо тут, по суті. 170 00:09:39,000 --> 00:09:42,000 Це не зовсім те, що, але це дух його. 171 00:09:42,000 --> 00:09:45,000 Він каже, що йти з відкритим файлом, search3.css, 172 00:09:45,000 --> 00:09:49,000 і ставитися до нього, як ніби користувач набрав його прямо тут, в главі сторінку 173 00:09:49,000 --> 00:09:51,000 так само, як я зробив в попередньому прикладі. 174 00:09:51,000 --> 00:09:54,000 Search3.css, між тим, досить простий. 175 00:09:54,000 --> 00:09:58,000 Це дійсно просто містить саме те, що було хвилину тому 176 00:09:58,000 --> 00:10:03,000 в стилі тега, але я враховані це тут в свій власний файл. 177 00:10:03,000 --> 00:10:07,000 >> Навіть якщо ми не витратили багато часу на все це в HTML або веб-програмуванню 178 00:10:07,000 --> 00:10:11,000 просто інтуїтивно те, що мотивація, мабуть, виносячи 179 00:10:11,000 --> 00:10:14,000 це невеликий фрагмент навіть CSS в окремий файл 180 00:10:14,000 --> 00:10:19,000 , А потім включити його з цим посиланням тега тут? 181 00:10:19,000 --> 00:10:21,000 [Нерозбірливо відповідь студента] 182 00:10:21,000 --> 00:10:25,000 Гаразд, це легше читати в тому сенсі, що у вас є CSS у файлі CSS. 183 00:10:25,000 --> 00:10:28,000 У вас є HTML в HTML файл, так що це більш читабельним в цьому сенсі. 184 00:10:28,000 --> 00:10:30,000 Що ще може бути переконливим? Так. 185 00:10:30,000 --> 00:10:32,000 [Нерозбірливо відповідь студента] 186 00:10:32,000 --> 00:10:35,000 Так, так що ви можете включити його багато разів, так що зараз ми робимо це 187 00:10:35,000 --> 00:10:38,000 Основні приклади з окремими файлами, але припустимо, що ви насправді робить 188 00:10:38,000 --> 00:10:42,000 реальний сайт, як ви будете на PSET 7 або ваш остаточний проект, можливо, 189 00:10:42,000 --> 00:10:45,000 і ви хочете мати кілька веб-сторінок, як, безумовно, зустрічається на 190 00:10:45,000 --> 00:10:48,000 фактичні World Wide Web, і було б вид кульгавого 191 00:10:48,000 --> 00:10:52,000 мати, щоб скопіювати і вставити той же синій колір 192 00:10:52,000 --> 00:10:56,000 і той же текст вирівняний центром в кожній з цих сторінок. 193 00:10:56,000 --> 00:10:59,000 Швидше, це має сенс винести за дужки, так само, як ми зробили в C 194 00:10:59,000 --> 00:11:02,000 с. файл год, поклав його в одному місці, 195 00:11:02,000 --> 00:11:06,000 У цьому випадку search3.css, а потім дозволити будь-якого файлу 196 00:11:06,000 --> 00:11:11,000 У ваш сайт насправді включити цей файл через цей тег тут, у рядку 16. 197 00:11:11,000 --> 00:11:14,000 Як це зазвичай і буває, ми почали з версії 0, що вид робіт 198 00:11:14,000 --> 00:11:18,000 але не обов'язково кращі, і з кожним кроком, 199 00:11:18,000 --> 00:11:21,000 Пошук 1, пошук 2, і тепер пошук 3 ми взяли ці кроки дитини 200 00:11:21,000 --> 00:11:26,000 на проекти, які є трохи більш чистим і більш підготовчих 201 00:11:26,000 --> 00:11:30,000 Для більш складних сторінок, які ми могли б зробити в майбутньому. 202 00:11:30,000 --> 00:11:33,000 >> Дозвольте мені відкрити один останній приклад тут, щоб показати 203 00:11:33,000 --> 00:11:36,000 ще більш стилізованим сторінки, але спочатку давайте подивимося на HTML. 204 00:11:36,000 --> 00:11:41,000 Це search4.html, і зауважив, що структурно це майже те ж саме 205 00:11:41,000 --> 00:11:44,000 за винятком введення нового тега Div. 206 00:11:44,000 --> 00:11:48,000 Div тег, який вводить поділ на цій сторінці. 207 00:11:48,000 --> 00:11:51,000 Ви можете думати про це як про невидимий прямокутнику. 208 00:11:51,000 --> 00:11:54,000 Це свого роду створює смугу область на веб-сторінці 209 00:11:54,000 --> 00:11:56,000 , Який можна стилізувати всі відразу. 210 00:11:56,000 --> 00:11:58,000 Що я зробив тут полягає в наступному. 211 00:11:58,000 --> 00:12:01,000 Усередині мого тіла тега, який був там весь час, 212 00:12:01,000 --> 00:12:05,000 Я кажу, що створює підрозділ сторінці тут по лініях 45 до 47, 213 00:12:05,000 --> 00:12:09,000 і це означає, по суті, дайте мені невидимий прямокутник у верхній частині сторінки. 214 00:12:09,000 --> 00:12:14,000 Тоді дайте мені другий прямокутник, хоча і невидимим, нижче, 215 00:12:14,000 --> 00:12:16,000 і ідентифікувати його по імені вміст, а потім, нарешті, 216 00:12:16,000 --> 00:12:19,000 дай мені третій розділ сторінки в нижній частині 217 00:12:19,000 --> 00:12:21,000 називається ID. 218 00:12:21,000 --> 00:12:23,000 Ми побачимо, чому я зробив це через хвилину, 219 00:12:23,000 --> 00:12:26,000 але концептуально у мене є заголовок дивізії. 220 00:12:26,000 --> 00:12:30,000 У мене є утримання підрозділу, і у мене є підвал поділ сторінки 221 00:12:30,000 --> 00:12:32,000 хоча це тільки в розмітці. 222 00:12:32,000 --> 00:12:35,000 Користувач не побачить 3 прямокутника, 223 00:12:35,000 --> 00:12:37,000 але начебто структурно там, за лаштунками 224 00:12:37,000 --> 00:12:39,000 вони насправді. 225 00:12:39,000 --> 00:12:41,000 >> Тепер, хто піклується? Чому насправді це зробити? 226 00:12:41,000 --> 00:12:43,000 Все інше на сторінці так само, як ми бачили раніше. 227 00:12:43,000 --> 00:12:47,000 Ось моя форма. Ось мій внесок, мій вхід, рядки і так далі. 228 00:12:47,000 --> 00:12:50,000 Ось зображення, хоча, таким чином, ми будемо бачити, куди це прийшло від всього декілька хвилин. 229 00:12:50,000 --> 00:12:52,000 Ось підвал, який є новою, тільки тому, що я хотів би представити 230 00:12:52,000 --> 00:12:54,000 кілька змістом тут. 231 00:12:54,000 --> 00:12:58,000 Якщо ми прокручування вгору зауважити, що ID цій справ є заголовок. 232 00:12:58,000 --> 00:13:02,000 ID цій справ є зміст, і ідентифікатор це один колонтитул. 233 00:13:02,000 --> 00:13:05,000 І, як випливає з назви, коли у вас є ID атрібута 234 00:13:05,000 --> 00:13:09,000 в HTML, за визначенням, воно повинно однозначно ідентифікувати 235 00:13:09,000 --> 00:13:12,000 один з елементів, один з тегів на сторінці. 236 00:13:12,000 --> 00:13:16,000 Тягар повністю на вас пам'ятати, що у вас є заголовок ID вже. 237 00:13:16,000 --> 00:13:19,000 У вас є підвал. У Вас є зміст ID вже. 238 00:13:19,000 --> 00:13:22,000 Комп'ютер не збираюся з'ясувати, що доступно ID для вас, 239 00:13:22,000 --> 00:13:27,000 так що ви можете випадково дати 2 ID тегів заголовків, 240 00:13:27,000 --> 00:13:29,000 і це було б просто неправильно. 241 00:13:29,000 --> 00:13:31,000 >> Ви повинні мати на увазі, що ви створили, 242 00:13:31,000 --> 00:13:34,000 але як тільки ви це зробили, зверніть увагу, що ми можемо зробити тут. 243 00:13:34,000 --> 00:13:38,000 Тепер я можу вказати в моєму стилі тегів у верхньому 244 00:13:38,000 --> 00:13:41,000 або, що еквівалентно, в моєму файлі CSS, якби я до сих пір використовують цю версію, 245 00:13:41,000 --> 00:13:46,000 Я можу сказати # заголовка, і що це означає, що все, що тег 246 00:13:46,000 --> 00:13:49,000 У цьому веб-сторінка має ідентифікатор заголовка 247 00:13:49,000 --> 00:13:53,000 і #, просто людські конвенції, являє ID. 248 00:13:53,000 --> 00:13:56,000 Різке знак або знак фунта являє ID. 249 00:13:56,000 --> 00:13:58,000 Заголовок це ім'я, яке я дав йому. 250 00:13:58,000 --> 00:14:01,000 Це означає, що застосовувати цю властивість CSS 251 00:14:01,000 --> 00:14:04,000 на будь-який тег на цій сторінці, носить ідентифікатор заголовка. 252 00:14:04,000 --> 00:14:06,000 Те ж тут справа. 253 00:14:06,000 --> 00:14:09,000 Застосувати цю власність, яка буває те ж саме, будь-який елемент 254 00:14:09,000 --> 00:14:11,000 з ідентифікатором вмісту, а потім тут 255 00:14:11,000 --> 00:14:14,000 помітите, що я став трохи любитель з колонтитул. 256 00:14:14,000 --> 00:14:18,000 Будь-який елемент з ідентифікатором підвал, з якого не може бути тільки один, за визначенням, 257 00:14:18,000 --> 00:14:21,000 піти далі і зробити свій шрифт меншого розміру, 258 00:14:21,000 --> 00:14:24,000 її вага шрифту сміливий, його маржа 20 пікселів. 259 00:14:24,000 --> 00:14:26,000 >> Що це значить? 260 00:14:26,000 --> 00:14:28,000 Це просто маржа по верхній, нижній і лівій і правій. 261 00:14:28,000 --> 00:14:31,000 Це означає, дайте мені 20-піксель невидимим краєм навколо нього 262 00:14:31,000 --> 00:14:35,000 просто натиснути все інше від нього небагато, як ви могли б зробити в Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word або сторінки або тому подібне. 264 00:14:37,000 --> 00:14:39,000 І тоді текст по центру. 265 00:14:39,000 --> 00:14:43,000 Давайте подивимося на кінцевий результат, а потім ми повернемося до одного залишився фрагмента CSS там. 266 00:14:43,000 --> 00:14:48,000 Це 4-й версії, наш останній для пошуку прикладів, і це набагато, набагато сексуальніше. 267 00:14:48,000 --> 00:14:54,000 Зараз, чесно кажучи, я просто в пошуковій системі Google "Google шрифту логотипу генератор". 268 00:14:54,000 --> 00:14:58,000 І це дозволило мені створити GIF, формат зображення, яке виглядає як, що там. 269 00:14:58,000 --> 00:15:00,000 У самому справі, ви можете зробити це занадто. 270 00:15:00,000 --> 00:15:03,000 У нас є "Google шрифти, логотип генератор". 271 00:15:03,000 --> 00:15:05,000 >> Давайте подивимося, якщо ми можемо це зробити. 272 00:15:05,000 --> 00:15:07,000 Добре, я думаю, що це сайт який я використовував. 273 00:15:07,000 --> 00:15:11,000 Ми можемо сказати, EC 10, наприклад, і зробити їх самостійно. 274 00:15:11,000 --> 00:15:13,000 Ви можете грати з цим протягом усього дня, а потім натисніть правою кнопкою миші 275 00:15:13,000 --> 00:15:16,000 , А потім завантажити фактичного GIF, який це все, що я зробив. 276 00:15:16,000 --> 00:15:19,000 І дійсно, ось чому в моєму HTML, нагадаємо, сюди 277 00:15:19,000 --> 00:15:22,000 У мене був образ тег, який ми бачили минулого тижня коротко 278 00:15:22,000 --> 00:15:24,000 джерелом яких є logo.gif. 279 00:15:24,000 --> 00:15:28,000 І те, що знову була мотивація за те, що це альт атрибут, 280 00:15:28,000 --> 00:15:31,000 це альтернативний атрибут? 281 00:15:31,000 --> 00:15:33,000 Так. 282 00:15:33,000 --> 00:15:35,000 [Нерозбірливо відповідь студента] 283 00:15:35,000 --> 00:15:37,000 Добре, таким чином, 2 причинам дійсно, якщо браузер не може потягнути зображення 284 00:15:37,000 --> 00:15:40,000 тому що у вас повільне підключення до мережі або зображень пошкоджений 285 00:15:40,000 --> 00:15:44,000 або щось подібне, принаймні, людина може бачити "CS50 пошук" 286 00:15:44,000 --> 00:15:46,000 , А потім і доступності причин. 287 00:15:46,000 --> 00:15:48,000 Якщо у вас є користувач, який є сліпим і використовується для читання з екрану 288 00:15:48,000 --> 00:15:50,000 і тому, очевидно, не може бачити образи, які вони можуть принаймні 289 00:15:50,000 --> 00:15:52,000 почути текст, якщо їх комп'ютер говорить їм. 290 00:15:52,000 --> 00:15:56,000 >> Загалом, це найкраща практика, коли мова заходить про доступність сторінок 291 00:15:56,000 --> 00:16:00,000 так що навіть користувачі в цій ситуації може почути чи побачити, так би мовити, 292 00:16:00,000 --> 00:16:03,000 що це таке, що це на вашій сторінці. 293 00:16:03,000 --> 00:16:05,000 Там ще одна річ, яку я зробив тут 294 00:16:05,000 --> 00:16:09,000 який трохи цікавої, і ми будемо бачити більше про це в задачу встановлено 7 295 00:16:09,000 --> 00:16:12,000 через один з шорт на чолі з одним з вчення товаришів. 296 00:16:12,000 --> 00:16:15,000 Але # змістом відноситься до тегу 297 00:16:15,000 --> 00:16:20,000 ID якого є зміст, але тоді є прогалина, і потім є слово вхід. 298 00:16:20,000 --> 00:16:25,000 Ну, що цікавого CSS є те, що ви можете 299 00:16:25,000 --> 00:16:29,000 см. тегів в сторінку роду ієрархічно, 300 00:16:29,000 --> 00:16:33,000 і те, що цей фрагмент засобами CSS, це знайти тег 301 00:16:33,000 --> 00:16:37,000 ID якого є зміст, а потім застосувати наступні властивості 302 00:16:37,000 --> 00:16:42,000 для всіх вхідних тегів, які є нащадками змісту, 303 00:16:42,000 --> 00:16:44,000 , Що в тому, що з відступом усередині нього. 304 00:16:44,000 --> 00:16:48,000 Відступи, знову ж таки, важливо тільки до комп'ютера, а не до людини, 305 00:16:48,000 --> 00:16:51,000 але за угодою ми відступ речі, як ми заглибитися в сторінки, 306 00:16:51,000 --> 00:16:54,000 таким чином, це означає, застосовуються край на 5 пікселів будь-якого елемента вводу 307 00:16:54,000 --> 00:16:57,000 що десь усередині або вкладені в 308 00:16:57,000 --> 00:16:59,000  елемент з ідентифікатором вмісту. 309 00:16:59,000 --> 00:17:01,000 >> Хто що звернутися? 310 00:17:01,000 --> 00:17:03,000 Ну, там насправді саме ці 2 хлопця тут. 311 00:17:03,000 --> 00:17:05,000 Зверніть увагу, що всередині виду є 2 входи, 312 00:17:05,000 --> 00:17:07,000 як там було на всі ці приклади. 313 00:17:07,000 --> 00:17:11,000 Але зверніть увагу, що ці 2 входи трапиться бути вкладені, 314 00:17:11,000 --> 00:17:13,000 хоча і трохи глибоко, пару шарів відступи, 315 00:17:13,000 --> 00:17:16,000 всередині тега з ідентифікатором вмісту. 316 00:17:16,000 --> 00:17:18,000 Що це значить? 317 00:17:18,000 --> 00:17:21,000 Якщо ми йдемо в браузер тут можна побачити дуже небагато- 318 00:17:21,000 --> 00:17:23,000 Дозвольте мені збільшити, тобто трохи відступів між кнопкою 319 00:17:23,000 --> 00:17:25,000 і між текстовим полем. 320 00:17:25,000 --> 00:17:27,000 >> Дозвольте мені тимчасово відключити цю функцію. 321 00:17:27,000 --> 00:17:30,000 Відпусти мене до мого CSS, і дозвольте мені йти вперед і тільки 322 00:17:30,000 --> 00:17:34,000 змінити цю маржу від 5 до 0 пікселів пікселів. 323 00:17:34,000 --> 00:17:37,000 Дозвольте мені йти вперед, то і збережіть файл, повернутися до пошукової системи 324 00:17:37,000 --> 00:17:40,000 і перезавантажити, і дивитися на середині сторінки. 325 00:17:40,000 --> 00:17:43,000 Все, що було стислі разом, і, коли я вперше збитими цьому прикладі до 326 00:17:43,000 --> 00:17:46,000 Я думав, що виглядало безглуздо з текстового поля, а потім кнопку безпосередньо під ним. 327 00:17:46,000 --> 00:17:50,000 Я хотів, щоб доповнити його небагато, так що я представив поля. 328 00:17:50,000 --> 00:17:55,000 Те, що ми не будемо робити в лекції проходять через кілька десятків 329 00:17:55,000 --> 00:17:58,000 CSS властивості, які існують, тому що, знову ж, є такі речі, як розмір шрифту, 330 00:17:58,000 --> 00:18:02,000 шрифту, край, вирівнювання тексту, і кілька десятків інших, 331 00:18:02,000 --> 00:18:06,000 і ми будемо називати вас проблеми встановлено 7 різних підручники онлайн 332 00:18:06,000 --> 00:18:08,000 і посилання, які дозволяють підібрати ці речі. 333 00:18:08,000 --> 00:18:10,000 Але те, що дійсно важливо в кінці дня 334 00:18:10,000 --> 00:18:12,000 >> , Щоб зрозуміти, як ці речі не застосовуються. 335 00:18:12,000 --> 00:18:15,000 Знову ж таки, якщо ми маємо в стилі теги якої 336 00:18:15,000 --> 00:18:19,000 може піти селектори, начебто ідентифікаторів, які визначають 337 00:18:19,000 --> 00:18:21,000 до якого ви хочете застосувати ці властивості, 338 00:18:21,000 --> 00:18:24,000 а потім ви кладете властивості як ключові пари значень 339 00:18:24,000 --> 00:18:28,000 розділених двокрапкою, а потім закінчив з комою, 340 00:18:28,000 --> 00:18:32,000 або ви можете копіювати все це, і покласти його в окремий файл CSS 341 00:18:32,000 --> 00:18:35,000 сама по собі. 342 00:18:35,000 --> 00:18:39,000 Гаразд, будь-які питання по концепції 343 00:18:39,000 --> 00:18:41,000 або велику картину CSS? 344 00:18:41,000 --> 00:18:43,000 Ви будете знову бачити більше його в PSET 7, 345 00:18:43,000 --> 00:18:47,000 але ми будемо тримати це взагалі досить просто. 346 00:18:47,000 --> 00:18:49,000 Ні? Добре. 347 00:18:49,000 --> 00:18:51,000 Це час для реального мови програмування, 348 00:18:51,000 --> 00:18:54,000 і ми повернемося до трохи CSS у вигляді прикладу. 349 00:18:54,000 --> 00:18:58,000 PHP насправді дивно доступною мовою 350 00:18:58,000 --> 00:19:02,000 в тому, що це синтаксично майже еквівалентно C. 351 00:19:02,000 --> 00:19:06,000 Іншими словами, якщо ви знаєте C, ви знаєте, по більшій частині PHP, 352 00:19:06,000 --> 00:19:08,000 принаймні, синтаксично, хоча є деякі нові функції 353 00:19:08,000 --> 00:19:10,000 і деякі нові поняття, які ми повинні будемо подивитися. 354 00:19:10,000 --> 00:19:13,000 >> Але по більшій частині, тепер, коли ми переходимо від С до PHP 355 00:19:13,000 --> 00:19:16,000 Більшість нових речей дійсно за великим рахунком, 356 00:19:16,000 --> 00:19:19,000 як ви використовуєте мову для програм на веб-на відміну від 357 00:19:19,000 --> 00:19:23,000 в командному рядку або у рядку блимає, як ми робили досі. 358 00:19:23,000 --> 00:19:27,000 Для порівняння, особливо з PSET 7 і остаточний проект вперед, 359 00:19:27,000 --> 00:19:31,000 у скористатись цим URL тут, якщо ви хочете, щоб читати на формальності PHP. 360 00:19:31,000 --> 00:19:34,000 Це насправді хотів безкоштовний онлайн підручник ефективно, 361 00:19:34,000 --> 00:19:37,000 і ви також виявите, що те, що дійсно добре про PHP 362 00:19:37,000 --> 00:19:41,000 є те, що існують сотні функцій, які приходять з нею, 363 00:19:41,000 --> 00:19:44,000 , Тоді як в C ви не обов'язково мати доступ до 364 00:19:44,000 --> 00:19:47,000 більше функцій, ніж було в математичну бібліотеку, CS50 бібліотеки. 365 00:19:47,000 --> 00:19:51,000 У PHP і багато сучасних мов, Python і Ruby, серед них, 366 00:19:51,000 --> 00:19:54,000 Ви отримуєте доступ до так багато більше функцій, а значить, ви отримаєте писати 367 00:19:54,000 --> 00:19:57,000 набагато менше коду, тому що ви можете стояти на плечі інших людей 368 00:19:57,000 --> 00:19:59,000 , Які вже написані деякі речі для вас. 369 00:19:59,000 --> 00:20:03,000 >> Давайте короткий огляд синтаксису PHP, а потім написати кілька прикладів. 370 00:20:03,000 --> 00:20:06,000 Що приємно про PHP в першу чергу 371 00:20:06,000 --> 00:20:08,000 Є немає головної функції. 372 00:20:08,000 --> 00:20:10,000 Якщо ви хочете написати програму в PHP ви тільки починаєте писати код, 373 00:20:10,000 --> 00:20:12,000 і вам не доведеться турбуватися про головне. 374 00:20:12,000 --> 00:20:14,000 Там немає Int. Там немає повернення. 375 00:20:14,000 --> 00:20:17,000 Там немає ARGV, агдс, що потрібно, коли ви пишете програму. 376 00:20:17,000 --> 00:20:20,000 Замість цього ви можете просто почати писати код, і це частково 377 00:20:20,000 --> 00:20:23,000 тому що PHP є те, що називається інтерпретована мова. 378 00:20:23,000 --> 00:20:26,000 C був складений, і він був складений в тому сенсі, що ви починаєте 379 00:20:26,000 --> 00:20:29,000 з вихідним кодом, запустити його через Clang, який є компілятором, 380 00:20:29,000 --> 00:20:33,000 і в кінцевому підсумку через деяку кількість кроків, які ви отримаєте код об'єкта, 0 і 1. 381 00:20:33,000 --> 00:20:36,000 PHP і Python і Ruby, і Перл та ін 382 00:20:36,000 --> 00:20:39,000 різні типи мов у тому, що ви не компілювати їх. 383 00:20:39,000 --> 00:20:42,000 Ви не йдете з вихідним кодом 0 і 1. 384 00:20:42,000 --> 00:20:45,000 Ви просто запустити вихідний код, і ви запустите вихідний код 385 00:20:45,000 --> 00:20:49,000 пишіть в звичайний текстовий файл, що закінчується на. PHP в даному випадку 386 00:20:49,000 --> 00:20:53,000 замість. с, що робить програма на комп'ютері 387 00:20:53,000 --> 00:20:57,000 воно буквально інтерпретує код рядок за рядком за рядком. 388 00:20:57,000 --> 00:21:00,000 >> Іншими словами, замість того, щоб писати програму і запустити програму 389 00:21:00,000 --> 00:21:04,000 безпосередньо вам, а написати програму з файлом закінчуються на. PHP. 390 00:21:04,000 --> 00:21:09,000 Потім ви запускаєте програму під назвою фактичної php.exe, якщо ви на Windows, 391 00:21:09,000 --> 00:21:12,000 або просто PHP, якщо ви на Mac OS або Linux, 392 00:21:12,000 --> 00:21:17,000 і Ви надаєте в якості внеску в програмі PHP власного вихідного коду, 393 00:21:17,000 --> 00:21:20,000 і його мета в житті, щоб читати ваш код зверху вниз, зліва направо, 394 00:21:20,000 --> 00:21:23,000 і робити все, що ви сказали це робити. 395 00:21:23,000 --> 00:21:25,000 >> Давайте подивимося, що це буде означати, синтаксично. 396 00:21:25,000 --> 00:21:27,000 У PHP у нас є умови. 397 00:21:27,000 --> 00:21:29,000 На цьому слайді ідентичний тому, що ви бачили на тиждень 1 398 00:21:29,000 --> 00:21:33,000 тому що синтаксично умовах, IFS і IFS ще і ще в PHP 399 00:21:33,000 --> 00:21:35,000 виглядати точно так, як це. 400 00:21:35,000 --> 00:21:38,000 Коли справа доходить до логічні вирази, що вони збираються виглядати точно так, як це. 401 00:21:38,000 --> 00:21:43,000 Коли справа доходить до логічного множення речі разом, як булевских це буде виглядати саме так. 402 00:21:43,000 --> 00:21:46,000 Перемикачі виглядають однаково, і ви отримаєте додаткове перевагу в PHP 403 00:21:46,000 --> 00:21:51,000 , Що перемикачі в C можна було тільки ввімкнути символ або Int. 404 00:21:51,000 --> 00:21:53,000 Ви не могли б перейти на рядок. 405 00:21:53,000 --> 00:21:55,000 У PHP ви можете мати вираз 406 00:21:55,000 --> 00:21:58,000 , Що є змінною, вміст якого рядок, 407 00:21:58,000 --> 00:22:01,000 і ви реально можете зробити порівняння рядків в реальному інтуїтивно зрозумілим способом, 408 00:22:01,000 --> 00:22:06,000 Чи не покажчика порівняння, для того, щоб вирішити, чи варто робити випадку я або J або щось ще. 409 00:22:06,000 --> 00:22:09,000 Ми побачимо, що потенційно незабаром. 410 00:22:09,000 --> 00:22:11,000 >> Петлі занадто чудесно те ж саме. 411 00:22:11,000 --> 00:22:15,000 Для петлі мають ініціалізація, умова, і деяка кількість оновлень. 412 00:22:15,000 --> 00:22:18,000 У той час як петлі, також існують в PHP. 413 00:22:18,000 --> 00:22:21,000 Зробіть той час як петлі, також існують в PHP, 414 00:22:21,000 --> 00:22:26,000 і масивами існує в PHP, але ось де синтаксис починає ставати трохи по-іншому, 415 00:22:26,000 --> 00:22:29,000 але принципи ті ж, і поняття дійсно одні й ті ж 416 00:22:29,000 --> 00:22:32,000 як вони були в тиждень 0 з нуля. 417 00:22:32,000 --> 00:22:34,000 Перш за все, це знак $. 418 00:22:34,000 --> 00:22:37,000 Це було дизайнерське рішення в PHP яким будь змінної 419 00:22:37,000 --> 00:22:41,000 У PHP дизайн починається з $ знака. 420 00:22:41,000 --> 00:22:46,000 Там немає більше X, Y, Z. Це тепер $ X, $ Y, $ Z просто так. 421 00:22:46,000 --> 00:22:49,000 Це щось тримати в голові, і тепер на правій стороні 422 00:22:49,000 --> 00:22:52,000 це схоже на масив, 423 00:22:52,000 --> 00:22:54,000 але ми використовуємо квадратні дужки тут. 424 00:22:54,000 --> 00:22:57,000 У PHP і JavaScript в, як ми бачимо в остаточному підсумку, 425 00:22:57,000 --> 00:23:01,000 оголосити масив ви відкриті квадратні дужки і закрив квадратні дужки, 426 00:23:01,000 --> 00:23:04,000 і тоді у вас є список розділених комами значень, будь то цілі 427 00:23:04,000 --> 00:23:09,000 або рядки символів або, що ви хочете, всередині цього виразу немає. 428 00:23:09,000 --> 00:23:11,000 >> Тепер, як ми робили щось подібне в C? 429 00:23:11,000 --> 00:23:16,000 Що було синтаксис для статично оголошенні масиву відомого числа? 430 00:23:16,000 --> 00:23:19,000 Це було фігурні дужки, так що невелика різниця тут, але і в PHP 431 00:23:19,000 --> 00:23:22,000 і в кінцевому підсумку наявність він просто використовує квадратні дужки, так насправді 432 00:23:22,000 --> 00:23:25,000 Тільки цікава деталь тут є знаком $ на ім'я змінної 433 00:23:25,000 --> 00:23:28,000 , А також у квадратних дужках, і є одна цікава річ 434 00:23:28,000 --> 00:23:32,000 , Який був опущений, а на лівій стороні знак =. 435 00:23:32,000 --> 00:23:36,000 Чого не вистачає, що ми були вимагає вже кілька тижнів? Так. 436 00:23:36,000 --> 00:23:38,000 [Нерозбірливо відповідь студента] 437 00:23:38,000 --> 00:23:41,000 Розмір, так що немає ніякої згадки про розмір масиву. 438 00:23:41,000 --> 00:23:45,000 Чесно кажучи, немає жодної згадки в квадратних дужках у лівій частині 439 00:23:45,000 --> 00:23:47,000 знака =, і, що ще відсутня в рядку? 440 00:23:47,000 --> 00:23:49,000 Так. >> [Нерозбірливо відповідь студента] 441 00:23:49,000 --> 00:23:52,000 Типу, так що цікаво, зокрема, про PHP 442 00:23:52,000 --> 00:23:56,000 є те, що вона не є строго типізованих мов, як С, 443 00:23:56,000 --> 00:23:58,000 і це сильно набрав в тому сенсі, що ви повинні сказати символів, 444 00:23:58,000 --> 00:24:00,000 Ви повинні сказати INT, ви повинні говорити поплавка. 445 00:24:00,000 --> 00:24:03,000 >> У будь-який час ви хочете, щоб змінна ви повинні сказати Clang, що його тип. 446 00:24:03,000 --> 00:24:05,000 PHP трохи ледачі. 447 00:24:05,000 --> 00:24:08,000 Він вільно набрані в тому сенсі, що 448 00:24:08,000 --> 00:24:11,000 Ви можете мати поплавці й символів і рядків 449 00:24:11,000 --> 00:24:14,000 і Інтс і так далі, але сама мова 450 00:24:14,000 --> 00:24:17,000 насправді не хвилює, що ви покладете всередину змінної. 451 00:24:17,000 --> 00:24:20,000 Ви не повинні інформувати його заздалегідь, який тип даних 452 00:24:20,000 --> 00:24:22,000 збирається в змінну. 453 00:24:22,000 --> 00:24:24,000 Це повністю залежить від вас, так що це гарна 454 00:24:24,000 --> 00:24:27,000 в тому, що вам не доведеться турбуватися, як багато про типізації даних 455 00:24:27,000 --> 00:24:29,000 і турбуватися, що ваші аргументи і так далі. 456 00:24:29,000 --> 00:24:32,000 Це також означає, в кінцевому рахунку функцій в PHP збираєтеся бути в змозі повернутися 457 00:24:32,000 --> 00:24:36,000 або Int більшу частину часу, і, можливо, саме в той час 458 00:24:36,000 --> 00:24:40,000 вони будуть повертати логічне значення, логічне значення FALSE, наприклад, щоб показати, що щось пішло не так. 459 00:24:40,000 --> 00:24:44,000 Це дає нам деякий потенціал зростання, але і зробить нас начебто дизайну 460 00:24:44,000 --> 00:24:47,000 трохи повільнішою, коли справа доходить до введення даних. 461 00:24:47,000 --> 00:24:50,000 >> Що ще мати на увазі тут? 462 00:24:50,000 --> 00:24:54,000 Змінні виглядають цілком влаштовує, так що $ S = "привіт, світ". 463 00:24:54,000 --> 00:24:57,000 Це, можливо, виведеної з попереднього прикладу, 464 00:24:57,000 --> 00:24:59,000 і у нас є інший тип циклу. 465 00:24:59,000 --> 00:25:02,000 Це одне ми насправді бачимо саме в той час, так як це дуже зручно, 466 00:25:02,000 --> 00:25:04,000 Еогеасп побудувати. 467 00:25:04,000 --> 00:25:11,000 У цьому випадку цикл по кожному елементу відбувається всередині його дужками 3 слова як правило, 468 00:25:11,000 --> 00:25:16,000 $ Те перше, що й масив ви хочете перебрати членів, 469 00:25:16,000 --> 00:25:19,000 Потім буквально ключове слово, а потім, нарешті, 470 00:25:19,000 --> 00:25:21,000 іншої змінної ім'я, яке ви отримуєте на вибір. 471 00:25:21,000 --> 00:25:23,000 Це може бути Foo, Bar, або елемент, 472 00:25:23,000 --> 00:25:26,000 і те, що ця конструкція робить 473 00:25:26,000 --> 00:25:29,000 , Якщо масив $ містить 10 елементів 474 00:25:29,000 --> 00:25:34,000 на кожній ітерації цього масиву, вибачте, на кожній ітерації цього циклу 475 00:25:34,000 --> 00:25:37,000 змінну елемент буде оновлюватися 476 00:25:37,000 --> 00:25:40,000 першим елементом масиву, то другий елемент масиву, 477 00:25:40,000 --> 00:25:44,000 то третій елемент масиву, тим самим усуваючи необхідність 478 00:25:44,000 --> 00:25:46,000 зробити трохи дратує квадратних позначення кронштейна і 479 00:25:46,000 --> 00:25:49,000 $ Я для того, щоб індекс в масиві. 480 00:25:49,000 --> 00:25:53,000 PHP робить все це за вас і на кожній ітерації 481 00:25:53,000 --> 00:25:55,000 просто вручає вам наступний елемент з масиву 482 00:25:55,000 --> 00:26:01,000 без необхідності знати або піклуватися про його числове розташуванню індексу. 483 00:26:01,000 --> 00:26:04,000 >> І тоді, нарешті, на даний момент, є ще одна особливість PHP 484 00:26:04,000 --> 00:26:08,000 що це буде дуже корисно, особливо коли ми починаємо програмування в Інтернеті, 485 00:26:08,000 --> 00:26:10,000 і це відомо як асоціативний масив. 486 00:26:10,000 --> 00:26:13,000 Масивів, що ми знаємо до сих пір, як 20 секунд тому 487 00:26:13,000 --> 00:26:17,000 і протягом останніх 8 тижнів масиви з числовими індексами, 488 00:26:17,000 --> 00:26:20,000 роду традиційних масивів, де індекси цілих чисел, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, на всьому шляху вгору. 490 00:26:23,000 --> 00:26:25,000 Асоціативні масиви є набагато більш потужним. 491 00:26:25,000 --> 00:26:28,000 Вони дозволяють мати довільні клавіші, 492 00:26:28,000 --> 00:26:31,000 довільних індексів і довільні значення. 493 00:26:31,000 --> 00:26:34,000 У той час як в традиційних масивів це 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 в асоціативний масив, ви можете мати індекс 495 00:26:37,000 --> 00:26:41,000 або ключ Foo, значенням якого є бар. 496 00:26:41,000 --> 00:26:46,000 Ви можете мати ще один ключ, ім'я якого Баз і значення якого qux. 497 00:26:46,000 --> 00:26:49,000 >> Знову ж, дурні комп'ютерні науки загальні імена змінних тут, 498 00:26:49,000 --> 00:26:55,000 але справа в тому, що цей масив не має кронштейн 0 або кронштейн 1. 499 00:26:55,000 --> 00:26:59,000 Це замість того, доведеться Foo кронштейн і кронштейн Баз. 500 00:26:59,000 --> 00:27:03,000 Це набагато більш універсальні в тому, що ми збираємося, щоб мати можливість зіставити 501 00:27:03,000 --> 00:27:07,000 слова з іншими словами, ключі зі значеннями абсолютно довільно, 502 00:27:07,000 --> 00:27:12,000 і ми збираємося, щоб мати можливість отримати ці значення назад в фіксований час 503 00:27:12,000 --> 00:27:14,000 тому що під капотом, що асоціативний масив 504 00:27:14,000 --> 00:27:16,000 дійсно являє собою хеш-таблицю. 505 00:27:16,000 --> 00:27:20,000 Нагадаємо, що хеш-таблиця дозволяє розмістити в деяких вхідних 506 00:27:20,000 --> 00:27:25,000 хотіли покласти в слова Давида, якщо ви хочете, щоб вставити Давида в якийсь словник, 507 00:27:25,000 --> 00:27:27,000 і тоді ви отримаєте назад деяке значення зазвичай. 508 00:27:27,000 --> 00:27:29,000 У разі правопису, істинним або хибним. 509 00:27:29,000 --> 00:27:33,000 Девід або що слово чи ні в словнику. 510 00:27:33,000 --> 00:27:36,000 Асоціативний масив, насправді просто хеш-таблиці, 511 00:27:36,000 --> 00:27:38,000 але це набагато більш зручним втіленням його. 512 00:27:38,000 --> 00:27:41,000 Як ми побачимо, це буде, щоб дозволити нам зробити деякі речі 513 00:27:41,000 --> 00:27:43,000 Дуже, дуже легко. 514 00:27:43,000 --> 00:27:45,000 >> Давайте поглянемо на деякі основні PHP 515 00:27:45,000 --> 00:27:47,000 приклади і подивимося, що ми можемо зробити з цією мовою. 516 00:27:47,000 --> 00:27:51,000 Дозвольте мені йти вперед і відкривати в нашій вихідний каталог сьогодні 517 00:27:51,000 --> 00:27:54,000 файл з ім'ям hello1.php. 518 00:27:54,000 --> 00:27:57,000 Цей файл більше коментарів, ніж реальний код, 519 00:27:57,000 --> 00:28:00,000 так що дозвольте мені насправді видалити всі коментарі з файлу 520 00:28:00,000 --> 00:28:05,000 і представити Вам можливо, самий простий PHP програму прямо тут. 521 00:28:05,000 --> 00:28:07,000 5 ліній, а деякі з них є прогалини, 522 00:28:07,000 --> 00:28:09,000 так що помітити деякі ключові відмінності тут. 523 00:28:09,000 --> 00:28:12,000 Файл називається hello1.php. 524 00:28:12,000 --> 00:28:16,000 Найперша рядок, хоча, 00:28:18,000 Схожі за духом до HTML, 526 00:28:18,000 --> 00:28:21,000 , Що послідовність символів, повідомляє комп'ютера 527 00:28:21,000 --> 00:28:25,000 "Гей, комп'ютер, ось програма, яку ми знаходимося в в PHP." 528 00:28:25,000 --> 00:28:28,000 Він упевнений, що це не збентежило, що це якась інша мова. 529 00:28:28,000 --> 00:28:30,000 Лінія 2 є цікавою пробіл. 530 00:28:30,000 --> 00:28:32,000 3-я лінія наш старий друг Printf, 531 00:28:32,000 --> 00:28:34,000 на цей раз в контексті PHP. 532 00:28:34,000 --> 00:28:37,000 PHP має свою власну версію Printf, який веде себе точно так само, 533 00:28:37,000 --> 00:28:39,000 Так що це тільки збирається друкувати "Hello, World". 534 00:28:39,000 --> 00:28:46,000 І тоді цей тег протилежної тут,>, означає, що саме для мого PHP коду. 535 00:28:46,000 --> 00:28:48,000 >> Давайте подивимося, як управляти цим. 536 00:28:48,000 --> 00:28:50,000 Я збираюся повернутися в свою вікні терміналу тут. 537 00:28:50,000 --> 00:28:52,000 Я збираюся піти в мою PHP директорію. 538 00:28:52,000 --> 00:28:56,000 Зверніть увагу, що у нас є ціла купа файлів, перший з яких є hello.php. 539 00:28:56,000 --> 00:29:01,000 Дозвольте мені йти вперед і виконати це, hello1.php, введіть. 540 00:29:01,000 --> 00:29:03,000 Доступ заборонено. Добре. 541 00:29:03,000 --> 00:29:06,000 Як ми зафіксовані такі речі, як це в минулому? 542 00:29:06,000 --> 00:29:08,000 Що це? >> [Нерозбірливо відповідь студента] 543 00:29:08,000 --> 00:29:11,000 Нам потрібна читати і писати, але дозвольте мені зробити LS-л. 544 00:29:11,000 --> 00:29:14,000 Пам'ятайте про це дещо загадково вихід якого hello1 545 00:29:14,000 --> 00:29:17,000 здається, для читання і запису мною 546 00:29:17,000 --> 00:29:19,000 але читається всіма іншими. 547 00:29:19,000 --> 00:29:22,000 Виявляється, це насправді не є кроком у правильному напрямку. 548 00:29:22,000 --> 00:29:25,000 Різниця, знову ж таки, з інтерпретована мова 549 00:29:25,000 --> 00:29:27,000 це ви не запустите програму безпосередньо. 550 00:29:27,000 --> 00:29:30,000 Ви, а не працювати перекладачем і передати його код 551 00:29:30,000 --> 00:29:33,000 що ви написали так що він може інтерпретувати це рядок за рядком. 552 00:29:33,000 --> 00:29:36,000 У цьому випадку перекладач або програму, яку я насправді хочуть працювати 553 00:29:36,000 --> 00:29:38,000 буквально називається PHP. 554 00:29:38,000 --> 00:29:41,000 >> Десь на цьому жорсткому диску апарата є програма 555 00:29:41,000 --> 00:29:45,000 написав хтось інший називається PHP, або на ОС Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Що я буду робити тут, я буду реально працювати PHP 557 00:29:48,000 --> 00:29:51,000 але дати йому в якості аргументу командного рядка коду, який я написав, 558 00:29:51,000 --> 00:29:54,000 і тоді я буду масштаб і натисніть Enter. 559 00:29:54,000 --> 00:29:58,000 Вона працює моя програма для мене, зверху вниз, зліва направо. 560 00:29:58,000 --> 00:30:01,000 Дозвольте мені йти вперед і відкривати невеликі відхилення від цього. 561 00:30:01,000 --> 00:30:05,000 У hello2.php зауважити, що це занадто 562 00:30:05,000 --> 00:30:08,000 в основному коментарі, тому дозвольте мені позбавитися від тих, як відволікання, 563 00:30:08,000 --> 00:30:13,000 і те, що явно відрізняється зараз про цей файл? 564 00:30:13,000 --> 00:30:15,000 Там ця нова лінія, кілька загадковим на самому верху. 565 00:30:15,000 --> 00:30:20,000 У рядку 1 це #! / Бен / PHP. 566 00:30:20,000 --> 00:30:24,000 Бен є Конвенція про Linux і Mac OS для двійкових файлів, 567 00:30:24,000 --> 00:30:27,000 так / бен означає, що це папка, що містить купу файли 568 00:30:27,000 --> 00:30:29,000 , Який запрограмований, одним з яких є PHP. 569 00:30:29,000 --> 00:30:32,000 #! по прізвиську притон, 570 00:30:32,000 --> 00:30:35,000 , Яка є швидким способом сказати це, і що це означає 571 00:30:35,000 --> 00:30:40,000 є те, що, коли ви запустите цю програму тепер є натяк на початок файлу 572 00:30:40,000 --> 00:30:44,000 , Яка говорить комп'ютера, що перекладач у використанні. 573 00:30:44,000 --> 00:30:47,000 >> Це стає трохи дратує, якщо ви повинні були розповісти своїм користувачам і клієнтам 574 00:30:47,000 --> 00:30:50,000 "Гей, ми написали цю програму під назвою hello1.php". 575 00:30:50,000 --> 00:30:54,000 Все, що вам потрібно зробити, це назавжди запуску PHP, а потім ім'я цієї програми. 576 00:30:54,000 --> 00:30:58,000 Чесно кажучи, було б просто приємніше працювати hello1.php, 577 00:30:58,000 --> 00:31:00,000 І дійсно, ми можемо, якщо ми робимо наступне. 578 00:31:00,000 --> 00:31:05,000 Дозвольте мені йти вперед і робити LS-л, а повідомлення в hello2 це ще тільки читання і запису 579 00:31:05,000 --> 00:31:10,000 , А потім читати читати, так що я поки не можу це зробити, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Але ми ввели це дуже коротко останнім часом, команда CHMOD. 581 00:31:15,000 --> 00:31:20,000 Якщо я CHMOD + х, який означає, що всі плюс исполнимости, 582 00:31:20,000 --> 00:31:26,000 , А потім hello2.php, а потім зробити LS-л знову помічаємо, що змінилося. 583 00:31:26,000 --> 00:31:29,000 Один з них, Linux показує мені ім'я файлу в зелену, щоб передати ідею 584 00:31:29,000 --> 00:31:32,000 що це виконуваний файл, але що ще більш важливо, на лівій стороні 585 00:31:32,000 --> 00:31:36,000 зауважити, що біт, що представляє х виконуваних в даний час встановлена. 586 00:31:36,000 --> 00:31:42,000 Що це означає тепер це я можу запустити ./hello2.php як зазвичай, 587 00:31:42,000 --> 00:31:45,000 натисніть Enter, і через притон на самому початку файлу 588 00:31:45,000 --> 00:31:48,000 це натяк, знову ж таки, Linux, яка говорить 589 00:31:48,000 --> 00:31:51,000 використовувати цей перекладач, щоб запустити цей файл. 590 00:31:51,000 --> 00:31:54,000 Не турбуйтеся про змушуючи користувача вводити його насправді. 591 00:31:54,000 --> 00:31:57,000 >> І що приємно зараз це начебто не має відношення до моїм клієнтам або друзям 592 00:31:57,000 --> 00:32:01,000 яка мова я написав цю програму, тому я можу йти вперед з мв 593 00:32:01,000 --> 00:32:04,000 і перейменувати цю річ hello2, наприклад. 594 00:32:04,000 --> 00:32:07,000 І тепер, якщо я ./hello2 595 00:32:07,000 --> 00:32:10,000 і зменшення моя програма продовжує працювати. 596 00:32:10,000 --> 00:32:13,000 Ці файлові розширення людських конвенції, що це необхідно 597 00:32:13,000 --> 00:32:15,000 щось на зразок Clang і зробити, хто дивиться на них. 598 00:32:15,000 --> 00:32:18,000 Але для PHP, я міг би назвати це нічого розширення файлу я хочу. 599 00:32:18,000 --> 00:32:22,000 Я міг би обдурити світ, думаючи, що я дійсно добре Ruby, 600 00:32:22,000 --> 00:32:25,000 і я міг би написати hello2.rb, а потім запустити це, 601 00:32:25,000 --> 00:32:28,000 і вуаля, тепер у мене є версія Ruby, яка є повною брехнею. 602 00:32:28,000 --> 00:32:30,000 Але розширень файлів, не мають сенсу 603 00:32:30,000 --> 00:32:35,000 якщо файл є виконуваним і має спеціальну цьому натяк на початок файлу. 604 00:32:35,000 --> 00:32:38,000 >> Тепер, як і в сторону, дозвольте мені показати вам швидко версії 3, 605 00:32:38,000 --> 00:32:40,000 яка є свого роду корисний трюк знати. 606 00:32:40,000 --> 00:32:45,000 У hello3 я зробив щось трохи неправильно 607 00:32:45,000 --> 00:32:47,000 що я буду оновлювати онлайн вихідним кодом. 608 00:32:47,000 --> 00:32:50,000 У версії 3 і виходить, що на більшості комп'ютерів Linux 609 00:32:50,000 --> 00:32:53,000 є програма під назвою окр для навколишнього середовища, 610 00:32:53,000 --> 00:32:56,000 і що ви можете робити тут, якщо ви не знаєте, де PHP 611 00:32:56,000 --> 00:33:00,000 встановлений на локальний жорсткий диск, тому що це дійсно може змінюватися в залежності від комп'ютера 612 00:33:00,000 --> 00:33:03,000 що хтось використовує, ENV просто говорить працювати ENV, 613 00:33:03,000 --> 00:33:07,000 , Який знаходиться на більшості систем, і з'ясувати, де PHP є. 614 00:33:07,000 --> 00:33:11,000 Просто звичайний прийом, тому вам не доведеться турбуватися про з'ясувати, де програма. 615 00:33:11,000 --> 00:33:14,000 Але якщо ви дбаєте, щоб з'ясувати, де програма і ви не дбав досі 616 00:33:14,000 --> 00:33:16,000 Ви можете використовувати яку команда. 617 00:33:16,000 --> 00:33:19,000 >> Дозвольте мені масштаб і тип яких PHP, 618 00:33:19,000 --> 00:33:23,000 і зверніть увагу, він каже мені, що це насправді в USR / бен / PHP. 619 00:33:23,000 --> 00:33:25,000 Це свого роду брехня. Це знаходиться також у відро для сміття. 620 00:33:25,000 --> 00:33:27,000 Це просто показує мені перший удар. 621 00:33:27,000 --> 00:33:31,000 Якщо ви коли-небудь задавалися питанням, де Clang є, що Clang, який в USR / бен / брязкіт, 622 00:33:31,000 --> 00:33:34,000 , Які роблять, USR / бен / зробити, і що це значить, весь цей час 623 00:33:34,000 --> 00:33:38,000 Ви могли вводити USR / бен / брязкіт ввести для запуску Clang, 624 00:33:38,000 --> 00:33:41,000 але це начебто стомлюючої, щоб зробити це, тому деякі папки 625 00:33:41,000 --> 00:33:44,000 як USR / бен і бен передбачаються за замовчуванням 626 00:33:44,000 --> 00:33:50,000 так що комп'ютер знає, шукати в них для вас. 627 00:33:50,000 --> 00:33:53,000 Будь-які питання з написання супер, супер просто Hello програми Всесвітнього 628 00:33:53,000 --> 00:33:55,000 У PHP, а потім запустити його? 629 00:33:55,000 --> 00:33:59,000 Тому що зараз ми почнемо впроваджувати більш переконливим синтаксису. 630 00:33:59,000 --> 00:34:01,000 Гаразд, тут ми йдемо. 631 00:34:01,000 --> 00:34:03,000 Ці програми, які ми бачили насправді всі з них раніше. 632 00:34:03,000 --> 00:34:07,000 >> Якщо я відкриваю, наприклад, давайте зробимо beer1.php, 633 00:34:07,000 --> 00:34:09,000 Ми не пройде через декілька версій, але те, що я зробив 634 00:34:09,000 --> 00:34:13,000 був я сів і вилив її або перетворені 635 00:34:13,000 --> 00:34:15,000 мій C код, код PHP тут. 636 00:34:15,000 --> 00:34:18,000 Більшість з верхньої частини файлу коментарі тут. 637 00:34:18,000 --> 00:34:20,000 Виявляється, є ще одна нова функція, ми повинні називати Readline. 638 00:34:20,000 --> 00:34:23,000 GetString, нагадаємо, від тижня 0 вперед було CS50 річ. 639 00:34:23,000 --> 00:34:27,000 PHP поставляється зі своєю власною зручною функцією називається Readline 640 00:34:27,000 --> 00:34:30,000 , Що займає 1 аргумент, який визначає рядки 641 00:34:30,000 --> 00:34:33,000 що ви хочете показати користувачеві, і те, що робить Readline 642 00:34:33,000 --> 00:34:35,000 воно повертає все, що користувач набирає дюйма 643 00:34:35,000 --> 00:34:39,000 У цьому випадку, я оголошенні змінної $ п. 644 00:34:39,000 --> 00:34:42,000 Я зберіганні в ньому значення, що повертається Readline 645 00:34:42,000 --> 00:34:44,000 Після запиту користувача з цим рядком. 646 00:34:44,000 --> 00:34:47,000 Просто для резервного копіювання, щоб фактично виконати цю річ, відпусти мене попереду 647 00:34:47,000 --> 00:34:50,000 і запустити PHP beer1.php. 648 00:34:50,000 --> 00:34:53,000 Скільки пляшок буде? Давайте просто зробити 2 в цей раз. 649 00:34:53,000 --> 00:34:55,000 Enter. Ось і все. 650 00:34:55,000 --> 00:34:59,000 >> Програма є функціонально ідентичні версії C від тижні тому. 651 00:34:59,000 --> 00:35:01,000 Але синтаксично давайте подивимося, що по-іншому. 652 00:35:01,000 --> 00:35:05,000 Після того як я отримую Int від користувача помітили, що я роблю кілька помилок, 653 00:35:05,000 --> 00:35:08,000 а якщо п складає менше 1 я пішов, і я роздрукувати 654 00:35:08,000 --> 00:35:11,000 вибачте повідомлення користувачеві і вихід з 1. 655 00:35:11,000 --> 00:35:13,000 Це теж трохи відрізняється. 656 00:35:13,000 --> 00:35:16,000  У C Що ж нам робити? У C ми повернулися 1. 657 00:35:16,000 --> 00:35:20,000 У PHP ви вийдете з 1, який відверто, я думаю, трохи більш інтуїтивним 658 00:35:20,000 --> 00:35:22,000 тому що ви буквально виході з програми. 659 00:35:22,000 --> 00:35:25,000 Гаразд, а потім сюди дратує пісні ідентичні синтаксично 660 00:35:25,000 --> 00:35:29,000 за винятком змінної, так що тут, у рядку 24 вперед 661 00:35:29,000 --> 00:35:31,000 помітить мого циклу майже те ж саме, 662 00:35:31,000 --> 00:35:34,000 але в мене є $ в передній частині я і п, 663 00:35:34,000 --> 00:35:37,000 і що також відсутній рядок 26, які ми мали в минулому 664 00:35:37,000 --> 00:35:39,000 при оголошенні змінної я? 665 00:35:39,000 --> 00:35:41,000 Там немає тип. 666 00:35:41,000 --> 00:35:43,000 Це невірно в PHP сказати Int. 667 00:35:43,000 --> 00:35:45,000 Ви просто не потрібно цього робити. 668 00:35:45,000 --> 00:35:48,000 Комп'ютер, РНР досить розумний, щоб розуміти, 669 00:35:48,000 --> 00:35:51,000 що якщо ви покладете номер в $ I він буде ставитися до нього 670 00:35:51,000 --> 00:35:53,000 як номер для вас. 671 00:35:53,000 --> 00:35:57,000 А потім тут ми вилку в $ я, $ I $ - 1. 672 00:35:57,000 --> 00:36:00,000 Все, що те ж саме, а потім тут ми робимо "Нічого собі, це дратує" Printf 673 00:36:00,000 --> 00:36:02,000 , А потім вийти (0). 674 00:36:02,000 --> 00:36:05,000 >> Знову ж таки, винос в тому, що навіть якщо ми збираємося провести щодо 675 00:36:05,000 --> 00:36:09,000 мало часу на PHP, звичайно, проти того, що ми зробили на C, 676 00:36:09,000 --> 00:36:12,000 це майже те ж саме, і так, що ми будемо робити сьогодні і на наступному тижні 677 00:36:12,000 --> 00:36:14,000 і за це дійсно зосередитися на деяких з нових ідей. 678 00:36:14,000 --> 00:36:17,000 Просто щоб подивитися, що ще одна річ робить переклад більш з C, 679 00:36:17,000 --> 00:36:20,000 це було супер просто програма, яку ми зробили на тиждень 1 680 00:36:20,000 --> 00:36:22,000 або 2, що в кубі значення. 681 00:36:22,000 --> 00:36:25,000 Але що цікаво, в той час про цю програму є те, що 682 00:36:25,000 --> 00:36:28,000 введено поняття користувальницького написав функції, які ми самі писали. 683 00:36:28,000 --> 00:36:31,000 Синтаксис в PHP майже те ж саме. 684 00:36:31,000 --> 00:36:33,000 Ось моя програма нагорі. 685 00:36:33,000 --> 00:36:35,000 Зверніть увагу, знову відсутня будь-яке поняття основного. 686 00:36:35,000 --> 00:36:39,000 Я починаю писати код, і це те, що збирається отримати виконаний інтерпретатором. 687 00:36:39,000 --> 00:36:42,000 Я роздрукуйте х тепер 2, мабуть. 688 00:36:42,000 --> 00:36:44,000 Тоді я стверджую, кубатури ... 689 00:36:44,000 --> 00:36:47,000 Тоді я називаю куб функції і передати в $ х 690 00:36:47,000 --> 00:36:50,000 і привласнити повернене значення $ х. 691 00:36:50,000 --> 00:36:53,000 Тоді я стверджую, що це кубі, і тоді я говорю про це, яке, ми сподіваємося, 692 00:36:53,000 --> 00:36:55,000 скажу х зараз 8. 693 00:36:55,000 --> 00:36:59,000 Синтаксис функції в PHP є дуже небагато інша. 694 00:36:59,000 --> 00:37:01,000 Знову вистачає возвращаемого типу. 695 00:37:01,000 --> 00:37:05,000 Знову ж зниклих безвісти возвращаемого типу, а також відсутня, так це те, що інший тип? 696 00:37:05,000 --> 00:37:07,000 [Нерозбірливо відповідь студента] 697 00:37:07,000 --> 00:37:10,000 Ну, гаразд, це добре. Давайте повернемося до цього в секунду. 698 00:37:10,000 --> 00:37:12,000 >> У нас немає, наприклад, INT тут. 699 00:37:12,000 --> 00:37:15,000 Ми не, наприклад, були Int тут, тому що, знову ж таки, в PHP 700 00:37:15,000 --> 00:37:18,000 Ви просто не повинні і не повинні робити, 701 00:37:18,000 --> 00:37:20,000 а там це нове ключове слово називається функцією. 702 00:37:20,000 --> 00:37:23,000 У PHP це майже трохи зрозуміліше, тому що, коли ви хочете функція 703 00:37:23,000 --> 00:37:26,000 Ви буквально говорять функцію, ви даєте йому ім'я, а потім через кому 704 00:37:26,000 --> 00:37:28,000 якщо будь-яка з її аргументів. 705 00:37:28,000 --> 00:37:32,000 Немає необхідності говорити, недійсним або щось в цьому роді, а потім повернутися і те ж, 706 00:37:32,000 --> 00:37:35,000 $ * $ * $. 707 00:37:35,000 --> 00:37:38,000 Що ж не вистачає? Семмі вказав на це тут. 708 00:37:38,000 --> 00:37:43,000 У верхній частині файлу повністю відсутня в PHP також є прототипом. 709 00:37:43,000 --> 00:37:45,000 Це теж по дизайну. 710 00:37:45,000 --> 00:37:48,000 Мови та перекладачі, як PHP розумніші, ніж коли-небудь C 711 00:37:48,000 --> 00:37:50,000 У компілятори, як Clang. 712 00:37:50,000 --> 00:37:53,000 >> Нагадаємо, що Clang, якщо ви не повідомите йому, що куб існує, 713 00:37:53,000 --> 00:37:56,000 якщо ви не повідомите йому, що Printf існує у вигляді прототипу з 714 00:37:56,000 --> 00:38:00,000 або з # включити, ну, він збирався кричати на вас і навіть не компіляції коду. 715 00:38:00,000 --> 00:38:03,000 PHP і більш сучасні мови набагато розумніші, коли справа доходить до цього. 716 00:38:03,000 --> 00:38:07,000 Вони візьмуть на себе прочитати весь код 717 00:38:07,000 --> 00:38:11,000 , А потім кричати на вас, тільки якщо він знаходить куб нікуди. 718 00:38:11,000 --> 00:38:15,000 Це не має значення, якщо куба перебуває на нижній або верхній або навіть в деяких окремому файлі. 719 00:38:15,000 --> 00:38:18,000 PHP і подібних мов в даний час достатньо розумні, щоб дивитися в майбутнє 720 00:38:18,000 --> 00:38:26,000 на все, перш ніж вважаючи вас, як допустивши помилку. 721 00:38:26,000 --> 00:38:28,000 Де це залишає нас? 722 00:38:28,000 --> 00:38:32,000 >> Давайте зробимо один приклад тут, в умовах, 723 00:38:32,000 --> 00:38:35,000 і якщо я відкриваю conditions2.php повідомлення теж 724 00:38:35,000 --> 00:38:37,000 Синтаксис тут майже те ж саме. 725 00:38:37,000 --> 00:38:40,000 Я використовую Readline замість GetString, але цю лінію так само, як і раніше, 726 00:38:40,000 --> 00:38:42,000 "Я хотів би ціле, будь ласка". 727 00:38:42,000 --> 00:38:45,000 Я тоді, якщо умова, інакше, якщо, а потім інше, 728 00:38:45,000 --> 00:38:48,000 але функціонально ця програма також ідентичне тому, що ми зробили тижнів тому 729 00:38:48,000 --> 00:38:51,000 так що якщо я запускаю цю річ, PHP з conditions2, 730 00:38:51,000 --> 00:38:54,000 і я даю йому номер, як 23 - 731 00:38:54,000 --> 00:38:57,000 Я вибрав позитивне число. Якщо я даю йому -1 Я вибрав негативне число. 732 00:38:57,000 --> 00:39:00,000 Якщо я даю добре 0 дійсно взяв 0. 733 00:39:00,000 --> 00:39:02,000 Так хто ж дбає про все це? 734 00:39:02,000 --> 00:39:06,000 Ну, один з забавних роду вправи тут 735 00:39:06,000 --> 00:39:10,000 Для мене принаймні, повинен був повернутися і подивитися, як швидко я міг би здійснювати PSET 5, 736 00:39:10,000 --> 00:39:12,000 опечатки PSET. 737 00:39:12,000 --> 00:39:15,000 Нагадаємо, що там був цей файл під назвою speller.c, 738 00:39:15,000 --> 00:39:17,000 і там був файл з ім'ям dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Те, що я зробив, я як би витратив кілька хвилин, і я перетворив код C 740 00:39:20,000 --> 00:39:23,000 в коді PHP, і ми не будемо витрачати багато часу на спеллер 741 00:39:23,000 --> 00:39:26,000 тому як в PSET 5 ви дійсно не потрібно, щоб 742 00:39:26,000 --> 00:39:29,000 витрачати багато часу на спеллер себе, тому що ваша увага була прикута до словника. 743 00:39:29,000 --> 00:39:32,000 >> Досить сказати, що якщо ви прочитали правопису, 744 00:39:32,000 --> 00:39:35,000 Цей файл тут, це в значній мірі еквівалентно код C 745 00:39:35,000 --> 00:39:37,000 ми дали вам для PSET 5. 746 00:39:37,000 --> 00:39:39,000 Я тільки що додали близько $ на місцях. 747 00:39:39,000 --> 00:39:43,000 Я змінив деякі імена функцій, якщо вони не існують в PHP. 748 00:39:43,000 --> 00:39:45,000 Там одна додаткова річ тут, preg_match, 749 00:39:45,000 --> 00:39:48,000 який трохи любитель спосіб робити щось, але ми повернемося до цього в кінці кінців. 750 00:39:48,000 --> 00:39:51,000 Але в загальному, правопису майже ідентичні, і якщо ви подивитеся на саме дно 751 00:39:51,000 --> 00:39:54,000 те, що він в кінцевому підсумку випльовує це тут, 752 00:39:54,000 --> 00:39:57,000 слова з помилками, слова в словник, слова в тексті. 753 00:39:57,000 --> 00:40:00,000 Гаразд, так що цікаво зараз полягає в наступному. 754 00:40:00,000 --> 00:40:05,000 У верхній частині мого файлу Я вимагають dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Так само, як C # був включають PHP є спеціальна функція, звана вимагають 756 00:40:09,000 --> 00:40:14,000 що в значній мірі робить те ж саме, вимагає файл з ім'ям dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Як я можу йти про реалізацію PSET 5? 758 00:40:18,000 --> 00:40:21,000 Дозвольте мені йти вперед і відкривати файл тут. 759 00:40:21,000 --> 00:40:24,000 Дозвольте мені трохи посиланням тут. 760 00:40:24,000 --> 00:40:29,000 І дозвольте мені створити новий файл і почати називати це dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Дозвольте мені сказати це в іншій папці, так що ми можемо зробити це жити. 762 00:40:31,000 --> 00:40:33,000 А тепер я змінити масштаб зображення 763 00:40:33,000 --> 00:40:37,000 Я збираюся почати своє PHP файлів з відкритим кронштейн PHP закрито кронштейн. 764 00:40:37,000 --> 00:40:40,000 І тоді тут було кілька функцій Мені потрібно реалізувати для PSET 5, 765 00:40:40,000 --> 00:40:42,000 так що дозвольте мені розпочати реалізацію деяких з тих, 766 00:40:42,000 --> 00:40:47,000 так що функція перевірки, які повинні були взяти слово у якості аргументу. 767 00:40:47,000 --> 00:40:49,000 Ми будемо робити це і повернутися до нього в даний момент. 768 00:40:49,000 --> 00:40:53,000 >> Існував функції навантаження, яка відбулася в тому, що в якості аргументу? 769 00:40:53,000 --> 00:40:56,000 Словник, тому файл, що я насправді хотів, щоб завантажити. 770 00:40:56,000 --> 00:41:00,000 Існував функції розмірі, який не приймає аргументів 771 00:41:00,000 --> 00:41:04,000 і там була функція-то, що було іншим? 772 00:41:04,000 --> 00:41:06,000 Unload, який не приймає аргументів або. 773 00:41:06,000 --> 00:41:10,000 Ці 4 функції, що я повинен був би зараз реалізувати в PHP, 774 00:41:10,000 --> 00:41:13,000 і те, що я збираюся зробити, це йти вперед і робити це. 775 00:41:13,000 --> 00:41:16,000 Багато хто з вас використовувати хеш-таблицю в PSET 5, 776 00:41:16,000 --> 00:41:21,000 так що дозвольте мені піти далі і створити хеш-таблиці в PHP. 777 00:41:21,000 --> 00:41:23,000 Готово. 778 00:41:23,000 --> 00:41:25,000 Це дає мені хеш-таблиці. Ну, чому? 779 00:41:25,000 --> 00:41:30,000 Один з них, змінна називається $ таблиці, просто щоб викликати в уяві ідею хеш-таблиці. 780 00:41:30,000 --> 00:41:34,000 Квадратні дужки, хоча, нагадаємо, являють собою що? 781 00:41:34,000 --> 00:41:37,000 Масиві, але в масивах PHP не повинні бути числовими індексами. 782 00:41:37,000 --> 00:41:41,000 Вони також можуть бути асоціативними масивами, 783 00:41:41,000 --> 00:41:44,000 яка означає, що ви можете мати довільну ключів і значень. 784 00:41:44,000 --> 00:41:49,000 >> Багато чого, як в PSET 5, ті з вас, хто це зробив хеш-таблиці реалізацій 785 00:41:49,000 --> 00:41:53,000 Ви, ймовірно, вставив слово, а потім вставити його в ланцюжок пов'язаних списків, 786 00:41:53,000 --> 00:41:56,000 або ви зберегли значення істина десь або щось в цьому роді. 787 00:41:56,000 --> 00:41:59,000 Ви чомусь згадав той факт, що слово не було. 788 00:41:59,000 --> 00:42:01,000 На даний момент, це буде мій хеш-таблиці, 789 00:42:01,000 --> 00:42:06,000 І ось тепер йти про реалізацію функції контролю 790 00:42:06,000 --> 00:42:09,000 Мені просто потрібно, щоб заглянути всередину цього хеш-таблиці 791 00:42:09,000 --> 00:42:11,000 і подивитися, якщо слово є. 792 00:42:11,000 --> 00:42:15,000 Те, що я збираюся зробити, це я збираюся говорити, якщо- 793 00:42:15,000 --> 00:42:20,000 скажімо, Ісеть, яка є PHP функція, яка буквально означає, набір ключів, 794 00:42:20,000 --> 00:42:24,000 так Ісеть ($ таблицю [$ словом], 795 00:42:24,000 --> 00:42:29,000 і якщо так, повернути істинний. 796 00:42:29,000 --> 00:42:32,000 Ось і все. Ось PSET 5 в PHP. 797 00:42:32,000 --> 00:42:34,000 Ну, заради справедливості, все в порядку. 798 00:42:34,000 --> 00:42:37,000 Решта повернутися помилковим, так що це не було. 799 00:42:37,000 --> 00:42:39,000 Що насправді відбувається? 800 00:42:39,000 --> 00:42:42,000 Ну, якщо таблиці або хеш-таблиці тут в більш загальному- 801 00:42:42,000 --> 00:42:46,000 являє собою асоціативний масив, що означає, що ви можете індексувати в нього 802 00:42:46,000 --> 00:42:50,000 словом, як «слово», і ви повинні повернути деяке значення. 803 00:42:50,000 --> 00:42:52,000 >> Ми начебто отримую один крок попереду нас. 804 00:42:52,000 --> 00:42:56,000 Було б почасти добре, якби ми насправді завантажується файл першим, 805 00:42:56,000 --> 00:42:58,000 так що навантаження не так просто, але дозвольте мені йти вперед і на швидку руку 806 00:42:58,000 --> 00:43:00,000  дуже швидко здійснення навантаження. 807 00:43:00,000 --> 00:43:07,000 Дозвольте мені йти вперед і сказати словами отримує файл словника. 808 00:43:07,000 --> 00:43:10,000 Файл функцію в PHP відкриває файл 809 00:43:10,000 --> 00:43:12,000 і повертається до вас масив всі слова в цьому файлі, 810 00:43:12,000 --> 00:43:14,000 просто передає їх вам. 811 00:43:14,000 --> 00:43:16,000 Це була велика біль теж, чи не так? 812 00:43:16,000 --> 00:43:21,000 Тепер по кожному елементу, це наша нова конструкція, Еогеасп ($ слова $ словом). 813 00:43:21,000 --> 00:43:25,000 Цей цикл буде починатися ітерації по масиву слів 814 00:43:25,000 --> 00:43:30,000 і привласнити змінної $ словом кожне слово у файлі 815 00:43:30,000 --> 00:43:32,000 від першої до другої до третьої на четверту всі шляхи 816 00:43:32,000 --> 00:43:35,000 так що я не повинен робити дратівливі [I] позначення тощо. 817 00:43:35,000 --> 00:43:38,000 І те, що я просто буду робити для кожного з цих слів 818 00:43:38,000 --> 00:43:43,000 буде зберігати його в моїй таблиці індексації в таблиці 819 00:43:43,000 --> 00:43:47,000 , А потім робити так, тому що згадати 820 00:43:47,000 --> 00:43:50,000 , Що слово в моєму словнику все, що мені дійсно потрібно зробити, 821 00:43:50,000 --> 00:43:55,000 це свого роду перевернути небагато, і кажуть, що це слово в моїй хеш-таблиця є, правда. 822 00:43:55,000 --> 00:43:58,000 І якщо його там немає, я не потрібно явно покласти помилковими, 823 00:43:58,000 --> 00:44:01,000 в іншому випадку я б поклав ложно для всіх можливих слів у Всесвіті. 824 00:44:01,000 --> 00:44:05,000 >> Досить для мене просто встановити значення індексу 825 00:44:05,000 --> 00:44:09,000 істинно, якщо слово насправді в моїй хеш-таблиці. 826 00:44:09,000 --> 00:44:12,000 Тепер, я резка пару кутів тут, що я буду махати руками на даний момент, 827 00:44:12,000 --> 00:44:15,000 але тепер функція завантаження зроблено. 828 00:44:15,000 --> 00:44:18,000 Я завантажую всі слова з файлу в масив. 829 00:44:18,000 --> 00:44:21,000 Я перебору масиву, і для кожного слова в масиві 830 00:44:21,000 --> 00:44:24,000 Я підключити його до моєї хеш-таблиця з 1 рядком коду. 831 00:44:24,000 --> 00:44:26,000 Це весело. Ви знаєте, як ми можемо реалізувати розміру зараз? 832 00:44:26,000 --> 00:44:28,000 Ну, розмір завжди досить легко, в справедливість. 833 00:44:28,000 --> 00:44:32,000 Тут ми можемо просто повернути кол-во столом. 834 00:44:32,000 --> 00:44:34,000 Це досить легко занадто, підрахувати кількість речей в таблиці. 835 00:44:34,000 --> 00:44:36,000 Це насправді вид не найефективніший. 836 00:44:36,000 --> 00:44:39,000 Я, ймовірно, слід мати змінну розміру таким чином, ми можемо зробити це 837 00:44:39,000 --> 00:44:41,000 У постійному часу, але це досить легко. 838 00:44:41,000 --> 00:44:45,000 Ох, і потім вивантажити, якщо ми дійсно хочемо бути анальний тут 839 00:44:45,000 --> 00:44:47,000 ми можемо сказати, що це, як ви вивантажити щось. 840 00:44:47,000 --> 00:44:49,000 Ви просто встановити величину, рівну порожній масив, 841 00:44:49,000 --> 00:44:51,000 і він позбувається всього, що було там. 842 00:44:51,000 --> 00:44:53,000 Не потрібно дзвонити безкоштовно. 843 00:44:53,000 --> 00:44:56,000 >> Знову ж таки, я скоротити деякі кути, і я прошу вибачення за присвоєння проблема безлічі 5 844 00:44:56,000 --> 00:45:00,000 можливо, в C, але якщо ми зараз іти вперед і виконати це, 845 00:45:00,000 --> 00:45:02,000 Я збираюся насправді запустити версію, яку я написав заздалегідь 846 00:45:02,000 --> 00:45:05,000 просто так, що я не робив ніяких синтаксичних помилок взагалі. 847 00:45:05,000 --> 00:45:08,000 Дозвольте мені йти вперед і працювати правопису. Використання те ж саме. 848 00:45:08,000 --> 00:45:12,000 Ось файл словника, який тільки містить слово Foo. 849 00:45:12,000 --> 00:45:15,000 Ось це текстовий файл, який містить тільки Foo Bar. 850 00:45:15,000 --> 00:45:19,000 Давайте перевірки орфографії це, так правопису, використовуючи цей файл словника на цьому текстовому файлі. 851 00:45:19,000 --> 00:45:21,000 Там один слово з помилкою, бар, і вуаля. 852 00:45:21,000 --> 00:45:23,000 Вчинено з PSET 5. 853 00:45:23,000 --> 00:45:30,000 Давайте 5-хвилинну перерву тут, і ми повернемося і більше на PHP. 854 00:45:30,000 --> 00:45:32,000 Гаразд, ми повернулися. 855 00:45:32,000 --> 00:45:34,000 Давайте робити-ненавидите мене на деякий час. 856 00:45:34,000 --> 00:45:37,000 Давайте тепер насправді побачити, якщо це не було позитивного 857 00:45:37,000 --> 00:45:39,000 насправді реалізації цієї речі в PHP. 858 00:45:39,000 --> 00:45:43,000 Звичайно, це зайняло 45 секунд, щоб реалізувати. 859 00:45:43,000 --> 00:45:45,000 >> Але давайте йти вперед тепер і запустити речі. 860 00:45:45,000 --> 00:45:49,000 Дозвольте мені йти вперед і запустити версію C 861 00:45:49,000 --> 00:45:52,000 з правопису, і ми будемо запускати його на одному з найбільших файлів, 862 00:45:52,000 --> 00:45:54,000 яка є Біблії короля Джеймса. 863 00:45:54,000 --> 00:45:57,000 І ось в давайте увійдемо в нашу папку C, 864 00:45:57,000 --> 00:46:01,000 спеллер на короля Джеймса 5-го. 865 00:46:01,000 --> 00:46:03,000 Багато слів з помилками. 866 00:46:03,000 --> 00:46:06,000 Добре, так ось висновок, який ви, ймовірно, отримали навіть якщо раз трохи по-іншому, 867 00:46:06,000 --> 00:46:09,000 Якщо ви отримали все працює правильно, і так раз в загальній складності для перевірки правопису 868 00:46:09,000 --> 00:46:13,000 Біблії короля Джеймса був 0,38 секунди, так що дуже добре за допомогою цієї реалізації. 869 00:46:13,000 --> 00:46:16,000 Тепер дозвольте мені перейти у версії PHP, яку ми тільки що написали. 870 00:46:16,000 --> 00:46:18,000 Дозвольте мені виконати правопису на короля Джеймса. 871 00:46:18,000 --> 00:46:21,000 Ой, ігнорувати цю помилку. Я в ту директорію. 872 00:46:21,000 --> 00:46:24,000 Speller на короля Джеймса 5-го. 873 00:46:46,000 --> 00:46:48,000 Майже готове. 874 00:46:48,000 --> 00:46:51,000 >> Добре, проникливий спостерігач зрозуміє, що був більш ніж на 3 секунди там. 875 00:46:51,000 --> 00:46:54,000 Це і є справжнє час роботи. 876 00:46:54,000 --> 00:46:58,000 Виявляється, що це займає час, щоб плюнути багато тексту з 877 00:46:58,000 --> 00:47:00,000 через буферизації питання, але коротше кажучи, 878 00:47:00,000 --> 00:47:04,000 , Яка була 3,15 секунди машинного часу, процесорний час, 879 00:47:04,000 --> 00:47:07,000 проти того, що було хвилину тому? 880 00:47:07,000 --> 00:47:09,000 Як .3. 881 00:47:09,000 --> 00:47:11,000 Я маю на увазі, це на порядок повільніше, так де це 882 00:47:11,000 --> 00:47:14,000 Смішно уповільнення приходить? 883 00:47:14,000 --> 00:47:17,000 Ну, як це було у випадку з більшістю будь-якого дизайнерського рішення ми зробили 884 00:47:17,000 --> 00:47:21,000 в класі за останні 9 тижнів там майже завжди це компроміс. 885 00:47:21,000 --> 00:47:24,000 Іноді тільки між простором, іноді між простором і часом, 886 00:47:24,000 --> 00:47:27,000 простору, часу і зусиль в області розвитку, та й тут, хоча 887 00:47:27,000 --> 00:47:31,000 Ми зберегли величезну кількість часу, може бути, потенційно 10-20-30 годин 888 00:47:31,000 --> 00:47:34,000 час розробки здійсненні перевірки орфографії 889 00:47:34,000 --> 00:47:36,000 батогами його всього за 45 секунд з цією мовою 890 00:47:36,000 --> 00:47:40,000 Ціна, яку ми заплатили те, що це на порядок повільніше, як наслідок, 891 00:47:40,000 --> 00:47:43,000 і це, як правило, у випадку з більшістю будь інтерпретована мова, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl або інші якої 893 00:47:46,000 --> 00:47:49,000 якщо ви збираєтеся запустити його через перекладача, а він читав код 894 00:47:49,000 --> 00:47:52,000 рядок за рядком, зверху вниз, зліва направо, 895 00:47:52,000 --> 00:47:55,000 , Що посередник збирається зайняти деякий час своє, 896 00:47:55,000 --> 00:47:59,000 і що ви відчували себе тут в 3 секунди, а не 0,3 секунди 897 00:47:59,000 --> 00:48:02,000 є той факт, що це посередник, який має в буквальному сенсі інтерпретувати наш код 898 00:48:02,000 --> 00:48:05,000 рядок за рядком, і не дай бог, якщо ви перебуваєте всередині циклу 899 00:48:05,000 --> 00:48:08,000 з величезним файл, що містить сотні тисяч слів. 900 00:48:08,000 --> 00:48:11,000 >> Це накладні збирається додати і скласти і додати й скласти. 901 00:48:11,000 --> 00:48:16,000 Для такий інструмент, як це, що це, ймовірно, не найкращий мову, щоб використовувати для реалізації 902 00:48:16,000 --> 00:48:20,000 перевірка орфографії, якщо безпосередність представляє інтерес для користувачів, і для вас. 903 00:48:20,000 --> 00:48:23,000 Але розкіш, яку ми маємо в даний момент є, якщо Ви 904 00:48:23,000 --> 00:48:27,000 використовувати мову, як PHP або багато різних мов 905 00:48:27,000 --> 00:48:30,000 в контексті Web, якщо на те пішло, у вас є вигода 906 00:48:30,000 --> 00:48:34,000 , Що Інтернет є набагато повільніше, ніж більшість комп'ютерів. 907 00:48:34,000 --> 00:48:38,000 У вас є GHz CPU в комп'ютері, 2 ГГц, може бути, навіть більше в ці дні. 908 00:48:38,000 --> 00:48:41,000 Але реальність така, в інтернеті існує велика кількість затримкою 909 00:48:41,000 --> 00:48:45,000 якої для браузера, щоб поговорити з сервером, хоча ми бачили минулого тижня 910 00:48:45,000 --> 00:48:47,000 , Що досить швидко, половину мілісекунди або так, 911 00:48:47,000 --> 00:48:51,000 , Що теж додає, і якщо ви завантажуєте речі, як зображення 912 00:48:51,000 --> 00:48:54,000 або фотографію Facebook або отримання миттєвих повідомлень через балаканину Facebook, 913 00:48:54,000 --> 00:48:57,000 Gchat і т.п., все це туди-назад раз 914 00:48:57,000 --> 00:49:00,000 між браузером і сервером початку складати, 915 00:49:00,000 --> 00:49:03,000 що робить ваш конкретний вибір мови у багатьох випадках 916 00:49:03,000 --> 00:49:07,000 Не все, що необхідно, так що ви відмінно з допомогою трохи повільніше мовою 917 00:49:07,000 --> 00:49:10,000 як PHP або Python або Ruby, 918 00:49:10,000 --> 00:49:13,000 але для яких є величезні розквитатися з вами і вашими колегами 919 00:49:13,000 --> 00:49:17,000 і ваші друзі, тому що ви можете реалізувати всі так, так набагато швидше. 920 00:49:17,000 --> 00:49:20,000 І більш того, у вас набагато менше ризик певних недоліків в безпеці. 921 00:49:20,000 --> 00:49:22,000 Там немає покажчиків в PHP. 922 00:49:22,000 --> 00:49:25,000 Там немає сегментам несправностей, які можна легко викликати 923 00:49:25,000 --> 00:49:27,000 таким же чином, ви могли б у C. 924 00:49:27,000 --> 00:49:29,000 З C ти супер близько до устаткуванню. 925 00:49:29,000 --> 00:49:33,000 За допомогою PHP і аналогічних мов ти начебто високому рівні, так би мовити, 926 00:49:33,000 --> 00:49:37,000 з великою кількістю оборону між вами і те, що відбувається насправді 927 00:49:37,000 --> 00:49:39,000 усередині машини, і це всього лише компроміс. 928 00:49:39,000 --> 00:49:42,000 >> Ми дійшли до точки, що мають ці більш сучасні, мови високого рівня 929 00:49:42,000 --> 00:49:47,000 як PHP, тому що з уроків, витягнутих у мовах, як PHP на C. 930 00:49:47,000 --> 00:49:50,000 Але якщо ви не розумієте, що відбувалося на під капотом все це час 931 00:49:50,000 --> 00:49:53,000 Ви, звичайно, не може приймати правильні рішення, дизайн, 932 00:49:53,000 --> 00:49:56,000 і, звичайно, коли справа доходить до роботи на місці, як Facebook або Google 933 00:49:56,000 --> 00:49:59,000 або будь-яке з цих місць, які все частіше грають з великими наборами даних 934 00:49:59,000 --> 00:50:01,000 навіть якщо ви повернутися назад і зробити СБУЕОБ і працюють з деякими MD 935 00:50:01,000 --> 00:50:04,000 на деяких великих наборів даних за участю пацієнтів і лікарів 936 00:50:04,000 --> 00:50:08,000 і як за допомогою правильних інструментів є надзвичайно переконливим 937 00:50:08,000 --> 00:50:11,000 тому що в противному випадку ваш аналіз деяких наборів даних може зайняти секунд, 938 00:50:11,000 --> 00:50:14,000 або він може буквально кілька годин. 939 00:50:14,000 --> 00:50:17,000 Це тільки один приклад, щоб не понищити вас з тим, як докласти набагато більше зусиль 940 00:50:17,000 --> 00:50:21,000 це було в C, але, щоб допомогти вам зрозуміти, що коли ви реалізувати щось в C 941 00:50:21,000 --> 00:50:24,000 Ви дійсно розумієте, ні в теорії, насправді розуміють 942 00:50:24,000 --> 00:50:28,000 як усі, або повинен працювати, і у вас майже повний контроль 943 00:50:28,000 --> 00:50:31,000 за те, що відбувається під капотом, і з цих мовах більш високого рівня 944 00:50:31,000 --> 00:50:34,000 Ви повинні відмовитися від більшого контролю до людей, які їх придумали 945 00:50:34,000 --> 00:50:37,000 і можуть бути більше за проектними рішеннями, ніж ваш. 946 00:50:37,000 --> 00:50:41,000 Але якщо ми вважаємо само собою зрозумілим, що продуктивність 947 00:50:41,000 --> 00:50:44,000 не настільки важливо на веб-за цих інших питань, 948 00:50:44,000 --> 00:50:47,000 тільки швидкість мережі трохи повільніше, ніж швидкість процесорів в будь-якому випадку, 949 00:50:47,000 --> 00:50:50,000 так що ми можемо сортувати дозволити собі використовувати трохи повільніше мовою 950 00:50:50,000 --> 00:50:55,000 якщо розквитатися ми може розвиватися речі в 10 разів швидше або навіть більше. 951 00:50:55,000 --> 00:50:57,000 >> Давайте подивимося, як ми можемо почати використовувати це. 952 00:50:57,000 --> 00:51:00,000 Відпустіть мене в папці 953 00:51:00,000 --> 00:51:03,000 Серед прикладів сьогодні називається frosh.ims, 954 00:51:03,000 --> 00:51:06,000 і це було насправді особисто мотивовані тим, що найперше, що 955 00:51:06,000 --> 00:51:10,000 Я написав для веб років тому після того, CS50 і CS51 956 00:51:10,000 --> 00:51:14,000 був сайт програми Frosh миттєві повідомлення, першокурсник очного спорту, 957 00:51:14,000 --> 00:51:16,000 який в той час це було досить років тому, що в той час, 958 00:51:16,000 --> 00:51:19,000 не було ніяких сайті програми, незважаючи на те що Web, 959 00:51:19,000 --> 00:51:22,000 і замість цього був супроводжуючий в Wigglesworth згідно з яким, якщо ви хочете 960 00:51:22,000 --> 00:51:26,000 зареєструватися для гри у волейбол або футбол, або як ви б заповнити аркуш паперу. 961 00:51:26,000 --> 00:51:28,000 Потім ви повинні йти через двір. 962 00:51:28,000 --> 00:51:31,000 Ви б тоді постукати у їхні двері і слайд у їхні двері або руку супроводжуючий 963 00:51:31,000 --> 00:51:34,000 аркуш паперу з вашим ім'ям на ній, чи дійсно ви хочете бути капітаном команди, 964 00:51:34,000 --> 00:51:37,000 яким видом спорту ви хотіли б зробити, і що гуртожитку ви були дюйма 965 00:51:37,000 --> 00:51:39,000 Це був свого роду старої школи робити речі, і це було просте 966 00:51:39,000 --> 00:51:41,000 можливість автоматизації багатьох цей процес. 967 00:51:41,000 --> 00:51:43,000 Ви просто зайдіть на веб-сайт. Ви набираєте щось дюйма 968 00:51:43,000 --> 00:51:46,000 Ви отримаєте підтвердження електронною поштою, і стріли, ви зробили. 969 00:51:46,000 --> 00:51:49,000 >> Це було саме перше, що я зробив, хоча і в мові під назвою Pearl, 970 00:51:49,000 --> 00:51:52,000 але це відносно легко зробити в PHP, і це є свого роду представником 971 00:51:52,000 --> 00:51:55,000 проблем ви можете приступити до вирішення, коли ви можете виразити себе 972 00:51:55,000 --> 00:51:58,000 програмно і не повинні покладатися на такі речі, як сайти Google 973 00:51:58,000 --> 00:52:01,000 або Excel або інструменти, які передали вам. 974 00:52:01,000 --> 00:52:03,000 Ви, хлопці, тепер є можливість зробити щось на зразок цього. 975 00:52:03,000 --> 00:52:06,000 Це супер потворні версію формі, 976 00:52:06,000 --> 00:52:09,000 Але давайте просто використовувати його для початку розмови яким це 977 00:52:09,000 --> 00:52:12,000 приблизно те, що форма виглядала років тому для нас 978 00:52:12,000 --> 00:52:14,000 щоб люди в інтернеті, щоб підписатися на Frosh Чат. 979 00:52:14,000 --> 00:52:18,000 Ми попросили ім'я, прапорець чи вони або не хотів бути капітаном, 980 00:52:18,000 --> 00:52:21,000 чоловіки чи жінки, і що тоді гуртожитку вони були, 981 00:52:21,000 --> 00:52:23,000 і тоді вони будуть представляти цю форму. 982 00:52:23,000 --> 00:52:27,000 Давайте спочатку подивимося під капотом на HTML, який представляє цю веб-сторінку. 983 00:52:27,000 --> 00:52:31,000 Відпустіть мене в froshims0, 984 00:52:31,000 --> 00:52:35,000 і як в стороні, для PSET 7 Я приймаючи як належне 985 00:52:35,000 --> 00:52:37,000 каталоги і теки, які я кладу речі дюйма 986 00:52:37,000 --> 00:52:40,000 Ми будемо йти Ви через саме там, де матеріал повинен піти в прилад, 987 00:52:40,000 --> 00:52:43,000 який мод команди ви повинні працювати, так що не хвилюйтеся про всі 988 00:52:43,000 --> 00:52:46,000 дурні подробиці синхронізації З самого початку йти тут. 989 00:52:46,000 --> 00:52:49,000 >> Гаразд, ось froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Дозвольте мені прокрутити вниз, і, що цікаво тут, 991 00:52:52,000 --> 00:52:56,000 це PHP файл, але те, що всередині нього, ясно? 992 00:52:56,000 --> 00:52:59,000 Це ціла багато HTML, і, дійсно, PHP, походження 993 00:52:59,000 --> 00:53:02,000 дійсно були за те, Web-орієнтована мова. 994 00:53:02,000 --> 00:53:04,000 Хвилину тому ми використовували його для реалізації пива, наприклад, 995 00:53:04,000 --> 00:53:07,000 умовах, наприклад, привіт приклад, і це нормально. 996 00:53:07,000 --> 00:53:11,000 Ви можете використовувати PHP в якості скриптової мови 997 00:53:11,000 --> 00:53:15,000 де сценарій насправді просто номенклатурі приділяється швидкої та брудної програми 998 00:53:15,000 --> 00:53:19,000 або те, що ви пишете в сценарії або в більш загальному інтерпретована мова. 999 00:53:19,000 --> 00:53:22,000 PHP це супер корисний для цього, тому що ви бачили, як швидко 1000 00:53:22,000 --> 00:53:24,000 Щодо ми можемо нагнітати програм в PHP. 1001 00:53:24,000 --> 00:53:27,000 Але це був дійсно призначений для використання в мережі Інтернет, 1002 00:53:27,000 --> 00:53:31,000 і призначена для веб-в тому сенсі, що помітив тут у верхній частині файлу 1003 00:53:31,000 --> 00:53:34,000 Я починаються з 00:53:38,000 Тоді у мене є купа непотрібних коментарів, правда, але тоді я закриваю PHP режимі. 1005 00:53:38,000 --> 00:53:41,000 Але потім я зайти в HTML режимі. 1006 00:53:41,000 --> 00:53:45,000 >> Що цікаво PHP є, навіть якщо файл має розширення. PHP 1007 00:53:45,000 --> 00:53:48,000 це взагалі повинно бути змішані з HTML, 1008 00:53:48,000 --> 00:53:50,000 код PHP, деякі HTML. 1009 00:53:50,000 --> 00:53:53,000 І ми побачимо, врешті-решт, що ми можемо почати дражнити один від одного тим, 1010 00:53:53,000 --> 00:53:56,000 і зберегти наш HTML окремий від наших PHP в цілому, 1011 00:53:56,000 --> 00:53:59,000 але походження PHP дійсно були, щоб дати вам цю гнучкість, 1012 00:53:59,000 --> 00:54:02,000 що, якщо ви хочете, щоб деякі HTML просто написати, і що буде 1013 00:54:02,000 --> 00:54:04,000 виплюнути однаково в браузері. 1014 00:54:04,000 --> 00:54:07,000 Але якщо вам потрібна технологія програмування, 1015 00:54:07,000 --> 00:54:12,000 деякі програмний код, ви також можете помістити його в точно такий же файл, як ми скоро побачимо. 1016 00:54:12,000 --> 00:54:14,000 Ось мій HTML. 1017 00:54:14,000 --> 00:54:16,000 У мене є назва цього для Frosh Чат. 1018 00:54:16,000 --> 00:54:20,000 У мене є тіло тега який отримав деякі CSS на нього в центрі все в середині, 1019 00:54:20,000 --> 00:54:23,000 , А потім тут у мене є форма, мабуть, буде представлений 1020 00:54:23,000 --> 00:54:27,000 в новий файл з ім'ям register0.php, тому ми бачимо, що в момент. 1021 00:54:27,000 --> 00:54:31,000 Вона використовує метод, званий пост, який ми ще повернемося, а також. 1022 00:54:31,000 --> 00:54:34,000 Тоді у мене є форма входу, один званої ім'я, тип якого є текст, 1023 00:54:34,000 --> 00:54:37,000 той, чиє ім'я капітана, чий тип прапорець, 1024 00:54:37,000 --> 00:54:40,000 і це, ми не бачили його раніше, але це саме те, що він говорить. 1025 00:54:40,000 --> 00:54:42,000 Ви отримаєте прапорець замість текстового поля. 1026 00:54:42,000 --> 00:54:46,000 Тут, внизу у вас є перемикач, який є одним з тих кругової кнопки 1027 00:54:46,000 --> 00:54:48,000 що ви можете вибрати цей або той. 1028 00:54:48,000 --> 00:54:52,000 >> Зверніть увагу, що це навмисне, що я дав як перемикачі ім'я підлогу. 1029 00:54:52,000 --> 00:54:55,000 Це, як ви отримаєте взаємне виключення, в якому ви повинні натиснути 1030 00:54:55,000 --> 00:54:58,000 або це один або, що одне і натиснувши на одного 1031 00:54:58,000 --> 00:55:01,000 це невстановленими інші, так що ви повинні дати їм тим же ім'ям 1032 00:55:01,000 --> 00:55:03,000 Якщо ви хочете, щоб вони взаємно виключають одне одного, як це. 1033 00:55:03,000 --> 00:55:07,000 І тоді для гуртожитку, я не думаю, що ми бачили це, але це вибір меню, що випадає меню. 1034 00:55:07,000 --> 00:55:09,000 Тег для цього є вибір. 1035 00:55:09,000 --> 00:55:11,000 Потім дати спадному меню ім'я, 1036 00:55:11,000 --> 00:55:13,000 і тоді у вас є ціла купа цих варіантів. 1037 00:55:13,000 --> 00:55:16,000 Перший з них, просто для естетики, є порожнім рядком. 1038 00:55:16,000 --> 00:55:20,000 Я просто хотів випадного бути порожнім за замовчуванням, 1039 00:55:20,000 --> 00:55:22,000 а там Apley, Canaday, сірі, і так далі. 1040 00:55:22,000 --> 00:55:24,000 І зверніть увагу, дихотомія тут. 1041 00:55:24,000 --> 00:55:27,000 Варіант в спадному має значення, 1042 00:55:27,000 --> 00:55:30,000 але тоді воно має зрозумілі людині назви, яка в даному прикладі 1043 00:55:30,000 --> 00:55:33,000 ідентичні, але якщо ми дійсно хотіли бути анальним ми могли б 1044 00:55:33,000 --> 00:55:36,000 Значення цього випадного бути просто коротка версія, 1045 00:55:36,000 --> 00:55:39,000 Сірі, але ми могли б дійсно сказати, сірий зал, що людина насправді бачить, 1046 00:55:39,000 --> 00:55:43,000 Але це не все, що цікаво, тому я просто продовжував він простий і зробити їх однаковими. 1047 00:55:43,000 --> 00:55:46,000 Тоді на дні у нас є кнопка відправки 1048 00:55:46,000 --> 00:55:49,000 що ми бачили і раніше, але зауважили, що я просто дав йому інше слово. 1049 00:55:49,000 --> 00:55:53,000 Замість того, щоб CS50 пошуку Я дав ярлик "Реєстрація". 1050 00:55:53,000 --> 00:55:56,000 >> У підсумку цій сторінці тут, і знову, 1051 00:55:56,000 --> 00:56:00,000 де ця отримаєте представлені? 1052 00:56:00,000 --> 00:56:04,000 Він отримує представлено декілька файлів, значення атрибута дії, 1053 00:56:04,000 --> 00:56:07,000 який був register0.php. 1054 00:56:07,000 --> 00:56:09,000 Давайте подивимося, що насправді тут відбувається. 1055 00:56:09,000 --> 00:56:13,000 Дозвольте мені йти вперед і заповнити цю форму, скажімо, Давида, 1056 00:56:13,000 --> 00:56:16,000 чоловіки, Matthews, і тоді я буду говорити зареєструйтеся. 1057 00:56:16,000 --> 00:56:18,000 Дозвольте мені масштаб і натисніть зареєструйтеся. 1058 00:56:18,000 --> 00:56:22,000 Отже, вид марно, але давайте подивимося, що відбувається насправді. 1059 00:56:22,000 --> 00:56:26,000 Зверніть увагу, що URL змінився, щоб бути register0.php. 1060 00:56:26,000 --> 00:56:34,000 Що цікаво відсутня в URL, хоча, навіть якщо ми просто представили форму? 1061 00:56:34,000 --> 00:56:37,000 [Нерозбірливо відповідь студента] 1062 00:56:37,000 --> 00:56:39,000 Добре, ось тільки Chrome бути зручним в ці дні. 1063 00:56:39,000 --> 00:56:42,000 Це насправді там. Вони просто заховати його, щоб заощадити місце. 1064 00:56:42,000 --> 00:56:44,000 Але гарна думка, гарна думка. 1065 00:56:44,000 --> 00:56:46,000 До іншого кінця URL, хоча, чого не вистачає? Так. 1066 00:56:46,000 --> 00:56:48,000 [Студент] рядок запиту. 1067 00:56:48,000 --> 00:56:51,000 Рядок запиту, так що пам'ятаєте з наших простих прикладах пошуку Google. 1068 00:56:51,000 --> 00:56:54,000 Як тільки я натискаю на кнопку відправки URL 1069 00:56:54,000 --> 00:57:00,000 взяв мене до Google, але потім було? Q = комп'ютерних наук або те, що я була ввели дюйма 1070 00:57:00,000 --> 00:57:04,000 Це тому, що ми використовували метод GET з пошуком приклад. 1071 00:57:04,000 --> 00:57:06,000 >> На цей раз ми використовуємо те, що замість методу? 1072 00:57:06,000 --> 00:57:10,000 Повідомлення, і одним з безпосередніх відмінностей 1073 00:57:10,000 --> 00:57:14,000 між отримати і опублікувати в тому, що повідомлення не ставить вході користувача в URL-адресі. 1074 00:57:14,000 --> 00:57:16,000 Він приховує це. Він як і раніше відправляє його. 1075 00:57:16,000 --> 00:57:19,000 У самому справі, що ми бачимо в браузері тут, як ми розкриємо в момент 1076 00:57:19,000 --> 00:57:22,000 дивлячись на register0, це я просто бачити вміст 1077 00:57:22,000 --> 00:57:25,000 масиву, які були представлені від браузера до сервера. 1078 00:57:25,000 --> 00:57:29,000 Але URL ні?, Не має ключових слів 1079 00:57:29,000 --> 00:57:31,000 або значень в ньому, і чому це? 1080 00:57:31,000 --> 00:57:35,000 Ну, пост дозволяє ще представити дані з форми на сервер, 1081 00:57:35,000 --> 00:57:38,000 але він не поклав його в URL, тому, якого роду інформація є пост 1082 00:57:38,000 --> 00:57:41,000 Особливо підходить для, можливо, коли ви запитуєте користувача 1083 00:57:41,000 --> 00:57:44,000 ввести вхідні дані для форми? 1084 00:57:44,000 --> 00:57:48,000 Щось на зразок пароля, щось подібне, що ще? 1085 00:57:48,000 --> 00:57:50,000 Номери кредитних карт. 1086 00:57:50,000 --> 00:57:53,000 Все це м'яко чутливі ви, ймовірно, не хочете потрапити в URL 1087 00:57:53,000 --> 00:57:56,000 якщо тільки тому, що це означає, що ваш сусід або член родини може просто троль через 1088 00:57:56,000 --> 00:57:59,000 ваші історії Інтернету, а потім буквально бачити ваші паролі, 1089 00:57:59,000 --> 00:58:02,000 буквально бачити ваші номери кредитних карт, оскільки більшість браузерів 1090 00:58:02,000 --> 00:58:05,000 Пам'ятається, в історії будь URL, ви були на, 1091 00:58:05,000 --> 00:58:09,000 так що якщо тільки тому, що це було б поганою ідеєю. 1092 00:58:09,000 --> 00:58:11,000 Використання повідомленням приховує, що подробиці від користувача. 1093 00:58:11,000 --> 00:58:14,000 >> Крім того, як ви завантажите фотографію в Facebook? 1094 00:58:14,000 --> 00:58:17,000 Ну, тільки 2 механізму ви можете дійсно використовувати, 1095 00:58:17,000 --> 00:58:21,000 хоча є кілька інших, більш таємними них, це отримати і опублікувати. 1096 00:58:21,000 --> 00:58:26,000 Як ви, можливо, завантажте фотографію за допомогою URL-адреси? 1097 00:58:26,000 --> 00:58:28,000 Ви дійсно можете це зробити. 1098 00:58:28,000 --> 00:58:30,000 Ви можете взяти JPEG або растрових або GIF, і ви можете уявити його в шістнадцяткову 1099 00:58:30,000 --> 00:58:32,000 або те, що називається базою 64. 1100 00:58:32,000 --> 00:58:35,000 Замість того, підстава 16 ви використовуєте базу 64, яка по суті виглядає 1101 00:58:35,000 --> 00:58:38,000 ASCII символи, і ви можете завантажити фото через URL 1102 00:58:38,000 --> 00:58:41,000 після знака питання, але, як правило, обмеження на розмір. 1103 00:58:41,000 --> 00:58:44,000 Більшість браузерів змусити URL-адрес, щоб бути не більше 1000 символів, 1104 00:58:44,000 --> 00:58:47,000 Може бути, 2000 символів і т.п., так що ви не можете завантажити 1105 00:58:47,000 --> 00:58:50,000 10 MB Facebook фото. 1106 00:58:50,000 --> 00:58:54,000 Для цього вам використовувати пост, так що на даний момент отримати ставить параметрів в URL, 1107 00:58:54,000 --> 00:58:57,000 що приємно і корисно іноді, але ні за що чутливі або великий 1108 00:58:57,000 --> 00:58:59,000 Повідомлення є шлях. 1109 00:58:59,000 --> 00:59:02,000 Що register0 насправді тут робиш? 1110 00:59:02,000 --> 00:59:05,000 Ну, якщо я відкриваю register0 зауважити, що це супер просто сторінка, 1111 00:59:05,000 --> 00:59:09,000 але це демонструє той факт, що я можу спільно змішуються, до кращого або до гіршого, 1112 00:59:09,000 --> 00:59:12,000 HTML з PHP. 1113 00:59:12,000 --> 00:59:15,000 Цей файл цілком, за винятком коментарів на вершині, є HTML 1114 00:59:15,000 --> 00:59:19,000 крім цього хлопця тут. 1115 00:59:19,000 --> 00:59:22,000 >> Зверніть увагу, в середині мого коду PHP, 1116 00:59:22,000 --> 00:59:26,000 У середині моєї HTML, у мене начебто тимчасово 1117 00:59:26,000 --> 00:59:28,000 вступив PHP режимі. 1118 00:59:28,000 --> 00:59:31,000 Я дзвоню спеціальна функція, звана друк р. 1119 00:59:31,000 --> 00:59:34,000 Це означає, друк рекурсивної, і що він робить це рекурсивно друкує 1120 00:59:34,000 --> 00:59:38,000 все, що змінну передати його, крапка з комою, з виходом PHP режимі. 1121 00:59:38,000 --> 00:59:40,000 І попередньо тег дає вам попередньо відформатований текст, 1122 00:59:40,000 --> 00:59:43,000 моно просторі текст так, щоб кожне місце, ви насправді побачити. 1123 00:59:43,000 --> 00:59:46,000 Вона не зникає. Що таке піст? 1124 00:59:46,000 --> 00:59:48,000 Ну, те, що цікаво і переконливу про PHP 1125 00:59:48,000 --> 00:59:52,000 є те, що всякий раз, коли ви відправляєте форму за допомогою отримати або відправити 1126 00:59:52,000 --> 00:59:56,000 нічого, що представляється Вам в браузері 1127 00:59:56,000 --> 01:00:00,000 PHP сам розбереться, що ці пари ключ-значення є, 1128 01:00:00,000 --> 01:00:02,000 цифри, якщо є знак рівності, цифри, якщо є знак питання. 1129 01:00:02,000 --> 01:00:07,000 Це робить всю важку роботу за вас, а потім він передає вам асоціативний масив 1130 01:00:07,000 --> 01:00:10,000 містить все, що користувач ввів у форму. 1131 01:00:10,000 --> 01:00:12,000 Ну, що ж поля цієї форми є? 1132 01:00:12,000 --> 01:00:14,000 >> Це було 4 поля. 1133 01:00:14,000 --> 01:00:16,000 Один з них був текстове поле з ім'ям ім'я. 1134 01:00:16,000 --> 01:00:18,000 Один з них був прапорець називають капітана. 1135 01:00:18,000 --> 01:00:22,000 Один з них був перемикач називається стать, 1136 01:00:22,000 --> 01:00:24,000 і один був у спадному меню називається гуртожитку, 1137 01:00:24,000 --> 01:00:27,000 так що помітити, коли я друкую рекурсивно 1138 01:00:27,000 --> 01:00:29,000 Зміст цього спеціальну змінну. 1139 01:00:29,000 --> 01:00:34,000 Це особлива глобальна змінна $ _POST буквально у всіх ковпачків. 1140 01:00:34,000 --> 01:00:39,000 Це особлива глобальна змінна, яка PHP просто створює для вас 1141 01:00:39,000 --> 01:00:42,000 і руки, щоб вас так, що ви можете отримати доступ до всього 1142 01:00:42,000 --> 01:00:45,000 , Який був представлений через форму користувачем. 1143 01:00:45,000 --> 01:00:48,000 І по телефону друку г-на ньому ви б не зробити це в звичайний додаток. 1144 01:00:48,000 --> 01:00:50,000 Ми робимо це, щоб бачити в цій змінній, 1145 01:00:50,000 --> 01:00:53,000 і що всередині нього, ну, 4 клавіші, 1146 01:00:53,000 --> 01:00:56,000 4 HTTP параметрів, так би мовити, 1147 01:00:56,000 --> 01:00:59,000 ім'я, капітан, стать, гуртожиток, а потім значення, які користувач 1148 01:00:59,000 --> 01:01:01,000 набрав у з одним винятком. 1149 01:01:01,000 --> 01:01:03,000 Я зробив типу D - V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Я перевірив коробку, хоча, для чоловіків, мабуть представлені значення 1151 01:01:05,000 --> 01:01:07,000 м за все, щоб бути коротким. 1152 01:01:07,000 --> 01:01:10,000 >> Коли я вибрав Matthews це значення, був обраний, 1153 01:01:10,000 --> 01:01:12,000 і це одна трохи безглуздо, але це конвенцію. 1154 01:01:12,000 --> 01:01:17,000 Коли я перевірив коробку, значення на "ON", отримав представлені на прапорець. 1155 01:01:17,000 --> 01:01:21,000 Якби я не перевірив його величина не був би посланий б то не було. 1156 01:01:21,000 --> 01:01:26,000 Це просто дає нам розуміння того, що знаходиться всередині цієї спеціальної глобальної змінної, 1157 01:01:26,000 --> 01:01:29,000 і це настільки особливим, що це називається супер глобальної змінної. 1158 01:01:29,000 --> 01:01:33,000 Вона існує скрізь тебе в коді, так що ви можете отримати до нього доступ. 1159 01:01:33,000 --> 01:01:36,000 Це не так переконливо, так що давайте насправді використовувати супер глобальним 1160 01:01:36,000 --> 01:01:38,000 а насправді намагаються зареєструвати когось. 1161 01:01:38,000 --> 01:01:41,000 У froshims1 я збираюся зробити одна зміна. 1162 01:01:41,000 --> 01:01:44,000 Я міняю дії, щоб бути register1.php, 1163 01:01:44,000 --> 01:01:46,000 і я роблю ще одну річ. 1164 01:01:46,000 --> 01:01:48,000 Я був трохи збентежений якість моїй сторінці там. 1165 01:01:48,000 --> 01:01:52,000 Це досить огидний, чесно кажучи, так виходить 1166 01:01:52,000 --> 01:01:56,000 , Який можна використовувати дуже легко в Інтернеті 1167 01:01:56,000 --> 01:01:59,000 інших людей JavaScript коду, CSS інших людей 1168 01:01:59,000 --> 01:02:02,000 що вони написані і з відкритим вихідним кодом і розповсюджується у вигляді бібліотеки, 1169 01:02:02,000 --> 01:02:06,000 так би мовити, і, наприклад, тут я використовую у вільному доступі бібліотеки, 1170 01:02:06,000 --> 01:02:08,000 купу коду, який написав хтось інший. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter трапилося писати цей код, і це називається початкового завантаження бібліотеки, 1172 01:02:11,000 --> 01:02:15,000 і це просто купа CSS стилів, купу. CSS файлів 1173 01:02:15,000 --> 01:02:19,000 що хтось написав і придумав, як отримати все добре і досить 1174 01:02:19,000 --> 01:02:22,000 так що люди, як ми можемо турбуватися трохи менше про естетику і зосередити набагато більше 1175 01:02:22,000 --> 01:02:24,000 на логіку і фактичні програмування. 1176 01:02:24,000 --> 01:02:30,000 Пов'язавши його з даним тегом, який є тим же тегом я запам'ятав styles3.css раніше, 1177 01:02:30,000 --> 01:02:34,000 Тепер у мене є доступ до файлу називається bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Мінімальна просто означає, що вони зменшена це, і вони позбавилися від всіх прогалин і т. д. 1179 01:02:37,000 --> 01:02:40,000 просто щоб переконатися, що вони не посилати мені більше байт, ніж я насправді потрібно. 1180 01:02:40,000 --> 01:02:45,000 Але є ціла купа CSS, так що якщо я зараз відкриваються версія 1 Frosh чати 1181 01:02:45,000 --> 01:02:49,000 помітив, що мій файл, безумовно, красивіше. 1182 01:02:49,000 --> 01:02:54,000 Тепер це ще тільки чорне і біле, але зауважив, що тільки за допомогою своїх стилів 1183 01:02:54,000 --> 01:02:58,000 і з використанням певних особливостей його на моїй формі це не дивно, 1184 01:02:58,000 --> 01:03:01,000 але це безумовно чистіше, ніж це було раніше, а проектор не роблять цього правосуддя. 1185 01:03:01,000 --> 01:03:05,000 Там мало сірі лінії навколо кнопок і навколо текстового поля прямо тут, 1186 01:03:05,000 --> 01:03:07,000 але це безумовно чистіше, ніж це було раніше. 1187 01:03:07,000 --> 01:03:09,000 >> Тепер, справедливості заради, я повинен змінити свою розмітку трохи. 1188 01:03:09,000 --> 01:03:12,000 Це версія 1, і помітили, що я використав кілька нових тегів, 1189 01:03:12,000 --> 01:03:17,000 і, чесно кажучи, я поняття не мав, як це зробити, поки я не прочитав документацію 1190 01:03:17,000 --> 01:03:20,000 для завантаження бібліотеки Twitter, і вони сказали мені, якщо ви хочете використовувати нашу бібліотеку 1191 01:03:20,000 --> 01:03:23,000 використовувати FIELDSET елемент всередині форми, 1192 01:03:23,000 --> 01:03:27,000 поставити слово, яке ви хочете показати поряд з полем усередині етикетки теги, 1193 01:03:27,000 --> 01:03:30,000 Потім дайте ввести ім'я, як і колись, 1194 01:03:30,000 --> 01:03:34,000 , А потім на прапорець, ви не тільки обернути його в мітці елемента, 1195 01:03:34,000 --> 01:03:36,000 Ви використовуєте те, що називається клас, тому ми не бачили цього раніше, 1196 01:03:36,000 --> 01:03:39,000 але ви побачите це в одному з шорт PSET 7 в. 1197 01:03:39,000 --> 01:03:43,000 Клас в CSS дозволяє вам робити щось дуже схоже на ID, 1198 01:03:43,000 --> 01:03:46,000 але раніше, коли ми були ID з символу # 1199 01:03:46,000 --> 01:03:48,000 це було для одного і тільки одного елемента. 1200 01:03:48,000 --> 01:03:51,000 Що приємно про класі є те, що кілька елементів можуть мати той же клас 1201 01:03:51,000 --> 01:03:54,000 або той же самий матеріал CSS застосовується до нього. 1202 01:03:54,000 --> 01:03:57,000 >> Але, знову ж таки, більше на тих, хто в короткостроковій, і решта це просто скопіюйте та вставте 1203 01:03:57,000 --> 01:04:00,000 з їхньою документацією, де я додав мітку тут і там. 1204 01:04:00,000 --> 01:04:03,000 І в кінці, тому що я включив посилання тега у верхній частині, 1205 01:04:03,000 --> 01:04:06,000 все виглядає красивіше автоматично 1206 01:04:06,000 --> 01:04:10,000 просто відзначивши мою сторінку таким чином, щоб 1207 01:04:10,000 --> 01:04:12,000 Twitter очікувалося, і є дуже багато різних способів 1208 01:04:12,000 --> 01:04:14,000 зробити це, і це дійсно дуже доречно. 1209 01:04:14,000 --> 01:04:17,000 На даний момент в семестр, як ви побачите в специфікації PSET 7 с, 1210 01:04:17,000 --> 01:04:20,000 Пошук в Google з усього, читав на бібліотеки, використовуючи CSS інших людей 1211 01:04:20,000 --> 01:04:23,000 і наявність вирішити проблеми допоміжних 1212 01:04:23,000 --> 01:04:26,000 до проблеми саме безліч, безумовно, заохочується і є способом 1213 01:04:26,000 --> 01:04:29,000 Web побудовано в ці дні, стоячи на плечах інших людей 1214 01:04:29,000 --> 01:04:32,000 так що ви можете зосередитися на дійсно нових і цікавих завдань. 1215 01:04:32,000 --> 01:04:34,000 Але давайте зосередимося на, знову ж таки, логіка. 1216 01:04:34,000 --> 01:04:38,000 >> Це був швидкий об'їзд по естетиці, щоб показати вам напрямок, в якому ви можете йти. 1217 01:04:38,000 --> 01:04:40,000 Я збираюся повернутися до потворним один для тепер тільки тому, що 1218 01:04:40,000 --> 01:04:44,000 немає ніяких відволікаючих речей з Twitter, і дозвольте мені йти вперед і відкривати 1219 01:04:44,000 --> 01:04:51,000 froshims2, який, знову ж таки, відрізняється тільки в акції, register2.php, 1220 01:04:51,000 --> 01:04:55,000 і давайте поглянемо на те, що відбувається тут. 1221 01:04:55,000 --> 01:04:57,000 Дозвольте мені піти далі і ввести Давида. 1222 01:04:57,000 --> 01:04:59,000 Я не буду капітаном на цей раз. 1223 01:04:59,000 --> 01:05:01,000 Я скажу чоловік, Matthews, реєстр. 1224 01:05:01,000 --> 01:05:05,000 Чорт візьми. Гаразд, це гвинт на моїй частині. 1225 01:05:05,000 --> 01:05:07,000 Режим очікування. 1226 01:05:07,000 --> 01:05:17,000 Register2, рядок 22, якщо порожній або, вибачте. 1227 01:05:17,000 --> 01:05:19,000 Давайте перезавантажити. 1228 01:05:19,000 --> 01:05:22,000 Гаразд, на цю форму, що тільки що відбулося? 1229 01:05:22,000 --> 01:05:25,000 Я набрав у Давида, перевірив чоловіки, натиснув Matthews, реєстр. 1230 01:05:25,000 --> 01:05:27,000 Ви зареєстровані. (Ну, не зовсім.) 1231 01:05:27,000 --> 01:05:32,000 Це, безумовно, крок за рамки просто роздрукувати вміст деяких змінних, 1232 01:05:32,000 --> 01:05:34,000 але те, що цей файл насправді робити? 1233 01:05:34,000 --> 01:05:37,000 У register2.php 1234 01:05:37,000 --> 01:05:40,000 помітив, що у мене є новий код. 1235 01:05:40,000 --> 01:05:44,000 Усередині мого тіла тега в мене є по суті, якщо ще побудувати, 1236 01:05:44,000 --> 01:05:47,000 але тому, що я спільно змішання це з деякими HTML 1237 01:05:47,000 --> 01:05:51,000 Я повинен увійти і вийти з режиму PHP і назад, так що давайте подивимося, що я роблю. 1238 01:05:51,000 --> 01:05:55,000 >> У першому рядку тут я кажу, якщо це має місце 1239 01:05:55,000 --> 01:06:00,000 що пост супер глобального пусто ключ ім'я, 1240 01:06:00,000 --> 01:06:04,000 Отже, іншими словами, якщо користувач не давав мені значення для ім'я в форму, 1241 01:06:04,000 --> 01:06:07,000 Потім порожні збирається повернутися вірно, тому що порожнє значення. 1242 01:06:07,000 --> 01:06:11,000 Або, зауважив вертикальні смуги, якщо підлога порожній 1243 01:06:11,000 --> 01:06:15,000 Усередині цього спеціального супер глобальний, який, знову ж таки, представляє собою вміст форми, 1244 01:06:15,000 --> 01:06:19,000 або в гуртожитку пусто, то я буду йти вперед і кричати на користувача. 1245 01:06:19,000 --> 01:06:22,000 Як? Ну, помітили, що я збираюся сказати, що ви повинні вказати своє ім'я, стать і гуртожитки. 1246 01:06:22,000 --> 01:06:24,000 Давайте насправді викликає цю помилку. 1247 01:06:24,000 --> 01:06:27,000 Дозвольте мені повернутися до моєї формі. Дозвольте мені перезавантажити, щоб очистити його. 1248 01:06:27,000 --> 01:06:30,000 І я просто хочу, щоб дати їм Давида, і вони не повинні знати, де я живу. 1249 01:06:30,000 --> 01:06:33,000 Зареєструйтесь. Мабуть, я дійсно повинні сказати їм, де я живу. 1250 01:06:33,000 --> 01:06:35,000 Ви повинні вказати своє ім'я, стать і гуртожитки. Повернутися назад. 1251 01:06:35,000 --> 01:06:39,000 >> І я міг натисніть, щоб повернутися до цієї форми, але навіщо це? 1252 01:06:39,000 --> 01:06:43,000 Ну, в такому випадку ім'я не було порожнім, але підлога була, і гуртожиток було, 1253 01:06:43,000 --> 01:06:47,000 так що це все вираз оцінюється в істинній, і, хоча синтаксис трохи нового, 1254 01:06:47,000 --> 01:06:51,000 Знову заходимо PHP режимі, знайомим, якщо заяву 1255 01:06:51,000 --> 01:06:54,000 але нова частина тут є саме ця товстої кишки, і я облажався, опускаючи дужки 1256 01:06:54,000 --> 01:06:57,000 випадково, але зверніть увагу на товстій кишці, і це означає, що 1257 01:06:57,000 --> 01:07:00,000 хоча ми виходом PHP режимі всі 1258 01:07:00,000 --> 01:07:03,000 що слід слід виплюнути дослівно в браузері 1259 01:07:03,000 --> 01:07:07,000 поки Ви не бачите іншого блоку, як це робимо ми тут, 1260 01:07:07,000 --> 01:07:10,000 У цьому випадку замість нього ви повинні плювати на це 1261 01:07:10,000 --> 01:07:13,000 поки ви не побачите ENDIF, тому деякі трохи нового синтаксису 1262 01:07:13,000 --> 01:07:16,000 , Що дозволяє мені перемикатися між HTML і PHP. 1263 01:07:16,000 --> 01:07:19,000 Ми можемо очистити це врешті-решт, але зараз, 1264 01:07:19,000 --> 01:07:22,000 це ніби переконливим способом перевірки помилок форми. 1265 01:07:22,000 --> 01:07:25,000 >> Тепер, я сказав, що ви насправді не зареєстрований, тому що очевидно, що ми не зробили нічого, але дані, 1266 01:07:25,000 --> 01:07:28,000 так що давайте насправді намагаються зробити щось прохолодне. 1267 01:07:28,000 --> 01:07:33,000 У froshims3 тією лише різницею, що я збираюся представити register3, 1268 01:07:33,000 --> 01:07:35,000 тому HTML відбувається те ж саме. 1269 01:07:35,000 --> 01:07:38,000 У register3 помітити цього. 1270 01:07:38,000 --> 01:07:40,000 Це один вид сексуально. 1271 01:07:40,000 --> 01:07:44,000 На вершині я використовую требо заяву, так це як # включити. 1272 01:07:44,000 --> 01:07:46,000 На цей раз це не stdio.h або що-небудь подібне. 1273 01:07:46,000 --> 01:07:50,000 Це бібліотеки PHP, і це одна називається PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Як я знаю, щоб включити саме цей рядок у лапках? 1275 01:07:53,000 --> 01:07:56,000 Я прочитав це в документації, тому, коли вони сказали мені, поклав це у верхній частині файлу 1276 01:07:56,000 --> 01:08:00,000 якщо ви хочете використовувати спеціальну бібліотеку під назвою PHPMailer, що робить те, що він говорить. 1277 01:08:00,000 --> 01:08:03,000 Вона дозволяє відправляти пошту через PHP. 1278 01:08:03,000 --> 01:08:05,000 Тепер прокрутіть вниз далі. 1279 01:08:05,000 --> 01:08:08,000 >> Зверніть увагу, щоб почати я перебуваю в режимі PHP весь цей час, 1280 01:08:08,000 --> 01:08:11,000 так що тепер зауважити тут, що після імпорту бібліотеки, 1281 01:08:11,000 --> 01:08:13,000  так сказати, я роблю деякі перевірки. 1282 01:08:13,000 --> 01:08:16,000 Якщо це так, що ім'я не порожній 1283 01:08:16,000 --> 01:08:19,000 і стать не з порожніми помітити знаком оклику- 1284 01:08:19,000 --> 01:08:24,000 і гуртожитки не порожній, то користувач логічно заповнив форму, принаймні достатньо. 1285 01:08:24,000 --> 01:08:28,000 Мене не хвилює, якщо вони капітана чи ні. Мені просто потрібно їх ім'я, стать і гуртожитки. 1286 01:08:28,000 --> 01:08:31,000 Якщо вони заповнили ті, так, що жодна з цих порожніх полів 1287 01:08:31,000 --> 01:08:33,000 це трохи нового синтаксису. 1288 01:08:33,000 --> 01:08:36,000 PHP, як в стороні, є об'єктно-орієнтованою мовою програмування 1289 01:08:36,000 --> 01:08:39,000 який деякі з вас, хлопці можете згадати з АСУ ТП і т.п.. 1290 01:08:39,000 --> 01:08:42,000 Зараз, якщо незнайомий, просто знаю, що використовувати цю бібліотеку 1291 01:08:42,000 --> 01:08:45,000 Ви повинні написати рядок коду, як це за допомогою нових ключових слів, 1292 01:08:45,000 --> 01:08:47,000 буквально нове ключове слово називається нова. 1293 01:08:47,000 --> 01:08:50,000 Але крім цього, у нас є знайомий синтаксис. 1294 01:08:50,000 --> 01:08:54,000 Це стрілка оператора, який схожий на те, що ми використовували для структур в контексті покажчиків. 1295 01:08:54,000 --> 01:08:57,000 На сьогоднішній день PHP не має покажчиків, 1296 01:08:57,000 --> 01:09:01,000 але знаю тепер, що всередині поштою змінну 1297 01:09:01,000 --> 01:09:05,000 істотно роду покажчиком на спеціальну бібліотеку 1298 01:09:05,000 --> 01:09:08,000 що хтось написав, і якщо я хочу отримати доступ до функціональності 1299 01:09:08,000 --> 01:09:12,000 Усередині цієї бібліотеці я, як і в C, використовуйте стрілки оператора, 1300 01:09:12,000 --> 01:09:14,000 навіть якщо вони не є насправді покажчики. 1301 01:09:14,000 --> 01:09:16,000 Це свого роду власну версію PHP для них. 1302 01:09:16,000 --> 01:09:20,000 Це означає, піти в бібліотеку і викликати IsSMTP функції. 1303 01:09:20,000 --> 01:09:23,000 SMTP, нагадаємо, від наших воїнів Чистий відноситься до електронної пошти, 1304 01:09:23,000 --> 01:09:28,000 і це просто означає використання поштового сервера для цього Frosh чати реєстрації. 1305 01:09:28,000 --> 01:09:30,000 >> Що господар я хочу використовувати? 1306 01:09:30,000 --> 01:09:34,000 Ну, Гарвард, якщо ви Google з усього, має поштовий сервер називається smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Якщо ви граєте разом у будинку або ви живете на Comcast мережі 1308 01:09:37,000 --> 01:09:40,000 це може бути щось на зразок smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Це повністю залежить від того, де ви живете і хто ваш провайдер. 1310 01:09:43,000 --> 01:09:47,000 Після цього я збираюся встановити мою адресу від довільно, щоб бути jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Я тоді збирався встановити на адресу, яку буде jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Єдиний шлях, я знав, що ці функції були викликані SetFrom і AddAddress 1313 01:09:55,000 --> 01:09:57,000 , Знову ж таки, я читав документацію. 1314 01:09:57,000 --> 01:09:59,000 Це не вид чарівним відомо всім програмістам. 1315 01:09:59,000 --> 01:10:02,000 Тоді я поставив питання на "реєстрацію". 1316 01:10:02,000 --> 01:10:07,000 І тепер ця лінія трохи потворні, тому що те, що робить оператор точка означає в PHP? 1317 01:10:07,000 --> 01:10:09,000 Хто знає? 1318 01:10:09,000 --> 01:10:11,000 З'єднати. 1319 01:10:11,000 --> 01:10:14,000 У C це біль в шиї, щоб об'єднати 2 рядки разом. 1320 01:10:14,000 --> 01:10:17,000 Ви повинні мати справу з Танос або перерозподілити або все, що матеріал 1321 01:10:17,000 --> 01:10:20,000 тільки збільшити довжину рядка. 1322 01:10:20,000 --> 01:10:22,000 У PHP, JavaScript і в інших мовах 1323 01:10:22,000 --> 01:10:24,000 Ви можете зазвичай зробити це за допомогою одного символу. 1324 01:10:24,000 --> 01:10:28,000 У цьому випадку точка означає прийняти цей рядок тут 1325 01:10:28,000 --> 01:10:30,000 і додати до неї цей рядок. 1326 01:10:30,000 --> 01:10:32,000 >> Так, і до речі, додати до нього цей рядок, 1327 01:10:32,000 --> 01:10:34,000 який буває змінної всередині цього супер глобальним. 1328 01:10:34,000 --> 01:10:37,000 Потім додати до нього нові лінії, так що всі ці точки просто означати, 1329 01:10:37,000 --> 01:10:39,000 продовжувати робити все більше і більше і більше рядків, 1330 01:10:39,000 --> 01:10:43,000 і вам не доведеться піклуватися взагалі про Танос або, як у мові, як це, 1331 01:10:43,000 --> 01:10:46,000 і є інші способи зробити це, але це один з найшвидших 1332 01:10:46,000 --> 01:10:48,000 способи закласти його. 1333 01:10:48,000 --> 01:10:50,000 Що це робиш? 1334 01:10:50,000 --> 01:10:55,000 Це створює електронний орган, який збирається сказати назва: Captain: Стать: Гуртожиток: 1335 01:10:55,000 --> 01:10:58,000 Все на окремих рядках, а потім, нарешті, 1336 01:10:58,000 --> 01:11:00,000 одного рядка коду, і я буду ігнорувати це зараз. 1337 01:11:00,000 --> 01:11:02,000 Якщо == помилкове просто означає, що якщо щось пішло не так, 1338 01:11:02,000 --> 01:11:04,000 але магія тут відбувається. 1339 01:11:04,000 --> 01:11:08,000 Пошта Надіслати означає, відправити цей лист. 1340 01:11:08,000 --> 01:11:10,000 Давайте подивимося, що чистий результат. 1341 01:11:10,000 --> 01:11:13,000 У нижній частині файлу, помітите, що він збирається сказати ви зареєструвалися насправді 1342 01:11:13,000 --> 01:11:15,000 якщо я отримую так далеко. 1343 01:11:15,000 --> 01:11:18,000 Якщо, проте, користувач гвинти вгору, зверніть увагу, що ми почали цю 1344 01:11:18,000 --> 01:11:21,000 якщо умова тут, якщо це не порожні і не порожні 1345 01:11:21,000 --> 01:11:24,000 і не з порожніми ми відправляємо поштою. 1346 01:11:24,000 --> 01:11:27,000 В іншому випадку ми збираємося написати цей рядок коду, 1347 01:11:27,000 --> 01:11:30,000 який матиме ефекту, як ви побачите в PSET 7, перенаправлення користувачів 1348 01:11:30,000 --> 01:11:35,000 туди, звідки вони прийшли, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Пальці перетнулися, в іншому випадку це буде самим розчаровує демо сьогодні. 1350 01:11:38,000 --> 01:11:40,000 Тут ми йдемо. 1351 01:11:40,000 --> 01:11:42,000 Дозвольте мені відкрити свою електронну поштову скриньку для jharvard в Gmail. 1352 01:11:42,000 --> 01:11:44,000 Ні електронну пошту прямо зараз. Добре. 1353 01:11:44,000 --> 01:11:53,000 Тепер дозвольте мені відкрити froshims3, який є третім і останнім прикладом ми розглянемо тут. 1354 01:11:53,000 --> 01:11:55,000 Добре, тут ми йдемо. 1355 01:11:55,000 --> 01:12:00,000 Nate, він буде капітаном, чоловіки, від, скажімо, Apley. 1356 01:12:00,000 --> 01:12:04,000 Зареєструйтесь. Отже, ви реєструвалися насправді. 1357 01:12:04,000 --> 01:12:07,000 Тепер, якщо я прокрутки на мою електронну пошту, о, мій Бог. 1358 01:12:07,000 --> 01:12:09,000 Я тільки динамічно направив лист в Інтернеті. 1359 01:12:09,000 --> 01:12:11,000 >> Давайте залишимо на цій ноті. 1360 01:12:11,000 --> 01:12:16,000 Відео для майбутньої лекції ми пропустили. Побачимося наступного тижня. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]