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 а затем нажмите ввод или нажмите на 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 и тогда я буду масштаб и нажмите ввод. 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 нажмите ввод, и из-за притон в самом начале файла 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]