1 00:00:00,000 --> 00:00:02,916 2 00:00:02,916 --> 00:00:04,860 >> [Играет музыка] 3 00:00:04,860 --> 00:00:10,210 4 00:00:10,210 --> 00:00:13,350 >> Дэвид Малан: Это CS50, и это начало недели восемь. 5 00:00:13,350 --> 00:00:17,510 И мы так рады приветствовать назад, большой сюрприз, собственный Рамон CS50 в 6 00:00:17,510 --> 00:00:22,160 Гальван, восходящая старший, который был Проведя последние несколько месяцев 7 00:00:22,160 --> 00:00:26,190 с июля в Лос-Анджелесе, в Голливуде, буквально работает на новом телевизоре 8 00:00:26,190 --> 00:00:31,930 шоу под названием Колония, создателем которого на самом деле сам Гарвардский квасцы. 9 00:00:31,930 --> 00:00:36,610 И поэтому мы очень рады видеть это Дебют в сети США в январе этого года. 10 00:00:36,610 --> 00:00:40,370 Так что следите за что, а для более Рамон для недель приехать. 11 00:00:40,370 --> 00:00:42,550 >> Знайте же теперь, что конец близок. 12 00:00:42,550 --> 00:00:47,400 И то, что это означает, что там не все, что многое осталось CS50, к сожалению. 13 00:00:47,400 --> 00:00:49,400 У нас есть только три проблемы наборы left-- есть 14 00:00:49,400 --> 00:00:52,510 Проблема установить six--, который находится в Ваши руки сейчас или в ближайшее время будет, 15 00:00:52,510 --> 00:00:56,080 в конце этого week-- призвана устранить наши миры в командной строке, где 16 00:00:56,080 --> 00:00:59,450 мы провели большую часть нашего времени, используя С, а мир веб-программирования. 17 00:00:59,450 --> 00:01:02,350 Ну, вы увидите много идей заимствованы из работы из командной строки, 18 00:01:02,350 --> 00:01:04,560 но также много нового и интересные идеи 19 00:01:04,560 --> 00:01:07,929 которые также будет уместна для мобильные приложения и технологии, для 20 00:01:07,929 --> 00:01:10,470 в более общем, с помощью которого Ребята все знакомы в настоящее время 21 00:01:10,470 --> 00:01:12,090 на ноутбуках и телефонах и тому подобное. 22 00:01:12,090 --> 00:01:15,220 >> Таким образом, вы будете осуществлять не веб-страницы, или веб-сайт 23 00:01:15,220 --> 00:01:17,620 как таковой, но фактически веб-сервер. 24 00:01:17,620 --> 00:01:21,590 Вы будете писать остальные веб-сервера написано в C, цель которого в жизни 25 00:01:21,590 --> 00:01:25,410 это получить HTTP запросов, эти виртуальные конверты мы продолжать говорить 26 00:01:25,410 --> 00:01:29,780 о, а на самом деле ответить либо некоторые статические content-- как точка HTML 27 00:01:29,780 --> 00:01:32,310 файл или точка JPEG или любое другое число файлов, 28 00:01:32,310 --> 00:01:37,070 или даже файл PHP посредством веб- сервер будет интерпретировать эту PHP 29 00:01:37,070 --> 00:01:38,332 Код и выплюнул результаты. 30 00:01:38,332 --> 00:01:40,540 Теперь, мы предоставили вам совсем немного рамках 31 00:01:40,540 --> 00:01:43,100 для it-- действительно Код распределения проблемы 32 00:01:43,100 --> 00:01:47,496 установить шесть длиной более 1000 линий, А многие из которых представлены отзывы, чтобы быть fair-- 33 00:01:47,496 --> 00:01:49,370 но это на самом деле означает быть возможность 34 00:01:49,370 --> 00:01:52,570 чтобы получить ваши руки грязные дайвинг в довольно большом проекте 35 00:01:52,570 --> 00:01:55,570 что мы очень конкретно вырезанные куски для вас, 36 00:01:55,570 --> 00:01:59,046 так что на самом деле, когда вы выходите CS50 и ввести реальный мир программирования 37 00:01:59,046 --> 00:02:00,920 и хотите, чтобы плескаться в любое количество проектов, 38 00:02:00,920 --> 00:02:03,253 Вы будете иметь гораздо больше комфорт скачивания некоторые источник 39 00:02:03,253 --> 00:02:05,020 Код, некоторые с открытым исходным кодом проекта в Интернете, 40 00:02:05,020 --> 00:02:08,174 и дайвинг в и делает Изменения, которые вы считаете нужным. 41 00:02:08,174 --> 00:02:11,340 Проблема установить семь будет о сделать свой собственный веб-приложение 42 00:02:11,340 --> 00:02:14,140 который принимает динамический ввод и производит динамический выход в виде 43 00:02:14,140 --> 00:02:16,920 веб-сайта etrade.com-как. 44 00:02:16,920 --> 00:02:20,800 И проблема установить восемь будут сосредоточены на еще другой язык известен как JavaScript. 45 00:02:20,800 --> 00:02:24,170 >> Между тем, окончательное Проект находится на горизонте. 46 00:02:24,170 --> 00:02:26,800 Так называемый предварительной заявки из-за неделю с сегодняшнего дня. 47 00:02:26,800 --> 00:02:29,930 Предварительно proposal-- в соответствии со спецификацией, который находится на website-- CS50 в 48 00:02:29,930 --> 00:02:33,260 является довольно случайный возможность для чтобы вы отправить письмо довольно краткий 49 00:02:33,260 --> 00:02:35,170 в учение товарища просто информировать его 50 00:02:35,170 --> 00:02:38,250 или ее, что вы думаете, в использовать его или ее в качестве рупора. 51 00:02:38,250 --> 00:02:40,980 И есть здравомыслие check-- ли вы думаете 52 00:02:40,980 --> 00:02:43,210 о откусывая слишком много или, может быть, слишком мало, 53 00:02:43,210 --> 00:02:46,480 или, может быть, вы понятия не имеете вообще и хотите участвовать в разговоре. 54 00:02:46,480 --> 00:02:48,480 >> После это предложение и отчет о состоянии, 55 00:02:48,480 --> 00:02:51,860 так называемый CS50 Hackathon здесь Кембридж для Гарварда и Йеля студентов 56 00:02:51,860 --> 00:02:52,362 похожи. 57 00:02:52,362 --> 00:02:54,320 Окончательный проект-х Реализация тогда из-за. 58 00:02:54,320 --> 00:02:59,290 А потом CS50 справедливо здесь, в Кембридже, а также еще один в Нью-Хейвене. 59 00:02:59,290 --> 00:03:02,500 Так предложению, взгляните на веб-сайт для тех частностей. 60 00:03:02,500 --> 00:03:06,530 >> Но более возбуждающе, тоже является возможность получить ваши руки грязные, 61 00:03:06,530 --> 00:03:09,350 и ваши умы, открытые для целого куча тем и инструментов 62 00:03:09,350 --> 00:03:12,920 и методы, которые являются вспомогательными к основной программе Курса, 63 00:03:12,920 --> 00:03:14,810 но тем не менее связаны между собой. 64 00:03:14,810 --> 00:03:18,400 А также замечательный ступеньками к делать действительно классные окончательные проекты, которые 65 00:03:18,400 --> 00:03:22,020 выходят далеко за рамки материала мы рассмотрели официально в задаче устанавливает или лекции. 66 00:03:22,020 --> 00:03:24,446 Так что на сайт CS50 для Весь список семинаров. 67 00:03:24,446 --> 00:03:26,070 Если вы еще не зарегистрировать, это нормально. 68 00:03:26,070 --> 00:03:29,860 Идите вперед и зарегистрироваться еще, и мы будем следить за живой связи потокового 69 00:03:29,860 --> 00:03:31,844 день и время на сайте. 70 00:03:31,844 --> 00:03:33,760 И все будет записан и поставить онлайн 71 00:03:33,760 --> 00:03:35,800 если вы не можете сделать в определенные дни недели и время. 72 00:03:35,800 --> 00:03:39,380 >> О том, что впереди thereafter-- хорошо, Конечно, есть CS50 Hackathon. 73 00:03:39,380 --> 00:03:43,560 Эта фотография, напомним, с нуля неделю приняты около 4 часов утра в один из вечеров прошлого года. 74 00:03:43,560 --> 00:03:46,900 CS50 ярмарка, которая снова состоится в обоих городах. 75 00:03:46,900 --> 00:03:49,760 А потом, на завод семян, хотя мы по-прежнему 76 00:03:49,760 --> 00:03:54,080 есть в месяц плюс слева от семестра, если Вы хотели бы присоединиться к собственной учение CS50 в 77 00:03:54,080 --> 00:03:56,770 персонал, и вы хотите, чтобы начать думать о становится CA, 78 00:03:56,770 --> 00:03:59,550 или учение молодец, знает, что мы начинаем говорить о том, что более 79 00:03:59,550 --> 00:04:00,630 позже в этом семестре. 80 00:04:00,630 --> 00:04:03,470 Но на фото здесь Наиболее команды в этом году. 81 00:04:03,470 --> 00:04:06,950 >> И так, PHP--, и я был так грустно на прошлой неделе, что [? Allyse?] Любезно 82 00:04:06,950 --> 00:04:09,370 пошел в усилия получения нас эти замечательные реквизит 83 00:04:09,370 --> 00:04:11,720 что я не в конечном итоге с помощью, так что на самом деле просто посмотрел рода глупо 84 00:04:11,720 --> 00:04:15,160 что у нас лопату сидя здесь все день в прошлую среду, и немного ложку. 85 00:04:15,160 --> 00:04:17,709 Но это был мой метафорический способ попытаться нарисовать 86 00:04:17,709 --> 00:04:21,600 картина, почему мы перехода из С в языке, как PHP. 87 00:04:21,600 --> 00:04:25,480 И то же самое можно сказать и о любой Количество languages-- Java, Python, Ruby 88 00:04:25,480 --> 00:04:31,270 или пучки others-- но в то время как в С, например, написать программу на С 89 00:04:31,270 --> 00:04:34,050 может быть, как правило, принимая ложку, как это 90 00:04:34,050 --> 00:04:36,770 и копать яму в земля, в песок или грязь. 91 00:04:36,770 --> 00:04:39,770 PHP позволяет занять гораздо большие укусы из проблемы, 92 00:04:39,770 --> 00:04:42,842 писать код гораздо меньше используя гораздо меньшую инструмент, 93 00:04:42,842 --> 00:04:45,050 потому что есть гораздо больше, Функциональность собрана в. 94 00:04:45,050 --> 00:04:47,633 >> Теперь, если мы действительно драматические, мы что-то лопатой 95 00:04:47,633 --> 00:04:48,760 здесь, но так оно и будет. 96 00:04:48,760 --> 00:04:51,370 Между тем, с другой Метафора мы придумали 97 00:04:51,370 --> 00:04:53,770 есть, конечно, вы могли бы использовать что-то вроде гаечного ключа 98 00:04:53,770 --> 00:04:56,610 забивать чем-то вроде гвоздя. 99 00:04:56,610 --> 00:04:58,980 Но, конечно, право инструмент для использования собирается 100 00:04:58,980 --> 00:05:01,360 быть не столько язык называется C-- 101 00:05:01,360 --> 00:05:03,590 и теперь я просто раздражен [? Сандерс,?] Возможно, 102 00:05:03,590 --> 00:05:07,890 мы это исправим later-- так правильный инструмент для часто используют 103 00:05:07,890 --> 00:05:09,640 не будет это самый низкий уровень инструментом. 104 00:05:09,640 --> 00:05:13,720 И в самом деле, С не является языком, который большинство из вас когда-нибудь использовать, 105 00:05:13,720 --> 00:05:15,590 или обязательно использовать снова. 106 00:05:15,590 --> 00:05:18,350 >> И в самом деле, немного secret-- единственный раз 107 00:05:18,350 --> 00:05:23,160 Я использую C я довольно много между Сентябрь и декабрь каждого падения 108 00:05:23,160 --> 00:05:23,870 семестр. 109 00:05:23,870 --> 00:05:25,790 И это потому, что мы использовать его как возможность 110 00:05:25,790 --> 00:05:27,852 чтобы научить основам программирования, 111 00:05:27,852 --> 00:05:29,810 а вместе с ним компьютера наука основы, данные 112 00:05:29,810 --> 00:05:32,435 структуры, алгоритмов и like-- но очень быстро будет вам 113 00:05:32,435 --> 00:05:35,010 видим, что синтаксис и идеи, лежащие C 114 00:05:35,010 --> 00:05:37,530 так чудесно передаче на более современные 115 00:05:37,530 --> 00:05:41,130 высокоуровневых языков, как PHP и Python и Perl, Java и 116 00:05:41,130 --> 00:05:46,750 и Objective-C-- самом деле, не так много Цель-C-- но Свифт, эти новые 117 00:05:46,750 --> 00:05:50,010 языки, что многие из вас будет то плескаться с вами окончательного проекта. 118 00:05:50,010 --> 00:05:55,070 >> Так что без дальнейших церемоний, давайте на самом деле использовать PHP, чтобы решить некоторые проблемы. 119 00:05:55,070 --> 00:06:00,230 Напомним, что на ранней стадии, в прошлом неделе мы просто использовали CS50 IDE, 120 00:06:00,230 --> 00:06:02,990 мы написали небольшую программу DINKY что только что сказал, "Привет, мир". 121 00:06:02,990 --> 00:06:05,680 И тогда я спас его в файл называется hello.php. 122 00:06:05,680 --> 00:06:07,280 И тогда я побежал эту команду. 123 00:06:07,280 --> 00:06:08,080 >> И почему? 124 00:06:08,080 --> 00:06:09,900 В английском языке, что здесь происходит? 125 00:06:09,900 --> 00:06:12,760 Что я делаю, когда Я побежал эту команду? 126 00:06:12,760 --> 00:06:13,405 >> Да? 127 00:06:13,405 --> 00:06:16,572 >> АУДИТОРИЯ: Там какая-то функция PHP который читает то, что in-- понимает. 128 00:06:16,572 --> 00:06:19,696 Дэвид Малан: Хорошо, есть некоторая функция PHP-- и позвольте мне быть более конкретным, 129 00:06:19,696 --> 00:06:21,810 есть программа под названием PHP, также известное, как 130 00:06:21,810 --> 00:06:25,872 Переводчик, который понимает содержимое hello.php, 131 00:06:25,872 --> 00:06:27,830 и интерпретирует его сверху снизу, слева направо, 132 00:06:27,830 --> 00:06:29,590 и делает то, что говорят эти команды. 133 00:06:29,590 --> 00:06:33,320 Команды в hello.php, конечно, только источник code-- функции 134 00:06:33,320 --> 00:06:35,750 и переменные и петли и и т.п., что мы сами 135 00:06:35,750 --> 00:06:37,460 начали писать в PHP. 136 00:06:37,460 --> 00:06:40,240 >> Но в отличие от C, который является компилируемый язык, 137 00:06:40,240 --> 00:06:42,810 PHP вы просто написать его, и запустить его. 138 00:06:42,810 --> 00:06:46,420 Вы пропустить этот шаг посредника преобразования его в нулей и единиц, 139 00:06:46,420 --> 00:06:47,790 а затем запустить его. 140 00:06:47,790 --> 00:06:50,510 И так, что с ног на это? 141 00:06:50,510 --> 00:06:52,690 Почему мы пропуская шаг? 142 00:06:52,690 --> 00:06:55,238 Почему более современные языки как правило, чтобы пропустить этот шаг? 143 00:06:55,238 --> 00:06:58,880 144 00:06:58,880 --> 00:07:01,220 Что выгода? 145 00:07:01,220 --> 00:07:02,080 >> Или просто интуитивно? 146 00:07:02,080 --> 00:07:04,200 Даже если мы не имею написано много PHP раньше, 147 00:07:04,200 --> 00:07:07,210 что выгодно не о компиляции кода вы думаете? 148 00:07:07,210 --> 00:07:08,520 Нет? 149 00:07:08,520 --> 00:07:09,610 Не совершении? 150 00:07:09,610 --> 00:07:11,350 Чесать голову? 151 00:07:11,350 --> 00:07:12,614 Да. 152 00:07:12,614 --> 00:07:13,600 >> АУДИТОРИЯ: более динамичным. 153 00:07:13,600 --> 00:07:14,683 >> Дэвид Малан: Более динамичный? 154 00:07:14,683 --> 00:07:16,032 Что ты имеешь в виду? 155 00:07:16,032 --> 00:07:17,000 >> АУДИТОРИЯ: [неразборчиво] 156 00:07:17,000 --> 00:07:20,349 157 00:07:20,349 --> 00:07:22,390 Дэвид Малан: ОК, хорошо, так в зависимости от входных данных, 158 00:07:22,390 --> 00:07:23,470 Вы не должны собрать его каждый раз. 159 00:07:23,470 --> 00:07:24,990 И это действительно так просто, как то, что that-- 160 00:07:24,990 --> 00:07:26,990 является точкой продолжения скомпилировать код? 161 00:07:26,990 --> 00:07:29,480 Это всего лишь один шаг, что это making-- это требует, 162 00:07:29,480 --> 00:07:31,900 В течение последних нескольких недели, в два раза больше шагов 163 00:07:31,900 --> 00:07:33,820 как только что выполнение программы. 164 00:07:33,820 --> 00:07:36,940 Это было полезно в том, что вы увидеть некоторые сообщения об ошибках и т.д., 165 00:07:36,940 --> 00:07:38,720 но это еще только раздражает шаг. 166 00:07:38,720 --> 00:07:41,810 >> И поэтому программисты поняли, в течение долгого времени, почему бы нам 167 00:07:41,810 --> 00:07:45,327 начать писать языках, которые не нужно что довольно механической шаг, 168 00:07:45,327 --> 00:07:47,160 так что можно просто написать код и запустить его. 169 00:07:47,160 --> 00:07:48,920 Но какой ценой что мы увидели мы заплатили 170 00:07:48,920 --> 00:07:50,910 на прошлой неделе, с одной конкретном примере? 171 00:07:50,910 --> 00:07:51,650 Да? 172 00:07:51,650 --> 00:07:52,370 >> Скорость. 173 00:07:52,370 --> 00:07:54,690 Так [? что?] переводчики немного медленнее, 174 00:07:54,690 --> 00:07:57,330 в том, что нули и единицы в красиво и быстро для компьютера 175 00:07:57,330 --> 00:08:00,070 чтобы понять, потому что Процессор Intel, или то, что есть, 176 00:08:00,070 --> 00:08:03,070 просто понимает, что происходит на с этими моделями бит. 177 00:08:03,070 --> 00:08:05,370 В то время как переводчика это программа, которая на самом деле 178 00:08:05,370 --> 00:08:07,980 должен прочитать источник Ascii код, который вы написали, 179 00:08:07,980 --> 00:08:12,700 и преобразовать его, так сказать, или выяснить, как она преобразует в конечном счете, 180 00:08:12,700 --> 00:08:13,525 в нулей и единиц. 181 00:08:13,525 --> 00:08:15,650 Так что просто занимает немного немного производительности. 182 00:08:15,650 --> 00:08:16,858 Так что это немного компромисс. 183 00:08:16,858 --> 00:08:21,570 Теперь, если мы делаем это здесь, позвольте мне идти вперед и делать пример следующим образом. 184 00:08:21,570 --> 00:08:26,610 Если я иду сюда, новый файл, я собираюсь сохранить это опять hello.php. 185 00:08:26,610 --> 00:08:31,450 А теперь я собираюсь идти вперед и сказать, "печать привет мир" - 186 00:08:31,450 --> 00:08:35,130 и вспомнить, что я могу использовать печать, я не должны использовать печать-F. А теперь сюда, 187 00:08:35,130 --> 00:08:42,039 если я PHP в hello.php, huh-- я кажется, не интерпретировали его. 188 00:08:42,039 --> 00:08:43,412 Что я сделал не так? 189 00:08:43,412 --> 00:08:44,710 >> Аудитория: угловые браслеты. 190 00:08:44,710 --> 00:08:47,015 >> Дэвид Малан: Да, вам нужно что скобка наверху. 191 00:08:47,015 --> 00:08:49,390 Так что это вид раздражает, но вы привыкнете к нему быстро. 192 00:08:49,390 --> 00:08:53,500 Если я должен написать PHP код, я как правило, необходимо, чтобы сообщить программе, 193 00:08:53,500 --> 00:08:56,950 или рассказать переводчика, эй PHP, вот некоторые PHP-код. 194 00:08:56,950 --> 00:09:00,440 И тогда для хорошей мерой, я бы закрыть это не с этого, а 195 00:09:00,440 --> 00:09:03,740 с углом марки просто вопрос кронштейн, так что теперь здесь, 196 00:09:03,740 --> 00:09:06,840 если я запускаю это снова, теперь Я получить желаемый результат. 197 00:09:06,840 --> 00:09:09,820 >> Теперь давайте сделаем небольшое оптимизации, просто так, что вы видели раньше. 198 00:09:09,820 --> 00:09:14,040 Это своего рода раздражает, что я должны работать PHP пространство hello.php, 199 00:09:14,040 --> 00:09:16,060 потому что в прошлом я может просто написать точка слэш 200 00:09:16,060 --> 00:09:17,560 Название программы, которая является своеобразной приятно. 201 00:09:17,560 --> 00:09:19,420 Это своего рода лучшего пользовательского опыта. 202 00:09:19,420 --> 00:09:24,160 >> Вот и получается, вы можете сделать это в PHP с following-- I 203 00:09:24,160 --> 00:09:28,780 можно использовать это довольно загадочным заклинание в верхней здесь, 204 00:09:28,780 --> 00:09:31,740 которые, как правило, называется притон, причем это резкое символ, 205 00:09:31,740 --> 00:09:34,270 так сказать, это взрыв или восклицательный знак. 206 00:09:34,270 --> 00:09:38,490 И это в настоящее время является путь к программе на обычной системе Linux, что 207 00:09:38,490 --> 00:09:41,500 называется среду, или окр. 208 00:09:41,500 --> 00:09:43,920 И это line-- длинную историю short-- одна линия только 209 00:09:43,920 --> 00:09:48,710 говорит, эй компьютер, найти PHP переводчик для меня в окружающей среде, 210 00:09:48,710 --> 00:09:50,610 найти его в памяти, так сказать. 211 00:09:50,610 --> 00:09:54,130 >> И что теперь приятно, это что если я иду сюда, 212 00:09:54,130 --> 00:09:57,750 Я могу сделать точка слэш привет точка PHP, или-- хм. 213 00:09:57,750 --> 00:09:59,000 Доступ запрещен. 214 00:09:59,000 --> 00:10:02,350 Ну, вы увидите даже больше этого с проблемой установить семь, если вы 215 00:10:02,350 --> 00:10:04,060 уже не имеете, с разрешениями. 216 00:10:04,060 --> 00:10:06,510 Оказывается, что мне нужно для выполнения этой команды 217 00:10:06,510 --> 00:10:10,779 называется [? chamod?] для изменения mode-- плюс х hello.php. 218 00:10:10,779 --> 00:10:13,820 Мне нужно [неразборчиво] это один дополнительный шаг, который говорит мой компьютер, 219 00:10:13,820 --> 00:10:16,400 сделать hello.php исполняемый файл. 220 00:10:16,400 --> 00:10:21,310 А теперь посмотрите, что happens-- точка сократить hello.php, он просто работает. 221 00:10:21,310 --> 00:10:23,310 Мне не нужно, чтобы указать интерпретатор больше. 222 00:10:23,310 --> 00:10:26,680 И я могу сделать это, даже красивее, еще, если я переименовать эту вещь. 223 00:10:26,680 --> 00:10:30,570 Если переместить hello.php просто Hello-- так заметить в левом верхнем углу, 224 00:10:30,570 --> 00:10:32,860 Название программы является действительно сейчас просто Привет. 225 00:10:32,860 --> 00:10:37,300 Теперь я могу сделать его похожим на программу C, даже если это написано в PHP-- 226 00:10:37,300 --> 00:10:39,210 или откровенно любое количество других языков. 227 00:10:39,210 --> 00:10:41,480 >> Так предельная повышение, нет функциональной разницы. 228 00:10:41,480 --> 00:10:44,460 Но это всего лишь немного любопытства Теперь, так что вы можете писать программы, 229 00:10:44,460 --> 00:10:48,989 на любом языке, и пользователь не должны знать, или все равно, что это такое. 230 00:10:48,989 --> 00:10:51,030 Ну, давайте посмотрим на более убедительным примером в настоящее время 231 00:10:51,030 --> 00:10:52,850 что я на скорую руку заранее. 232 00:10:52,850 --> 00:10:54,955 И это называется quote.php. 233 00:10:54,955 --> 00:10:56,740 И это доступно онлайн. 234 00:10:56,740 --> 00:11:00,299 И заметьте, что это довольно short-- но это программа командной строки, что это 235 00:11:00,299 --> 00:11:02,840 будет выглядеть цен на акции для меня, что на самом деле происходит 236 00:11:02,840 --> 00:11:04,230 быть уместны для проблем установить семь. 237 00:11:04,230 --> 00:11:05,396 >> Итак, давайте посмотрим, что я делаю. 238 00:11:05,396 --> 00:11:08,640 На самом верху я получил открывающая скобка знак вопроса PHP. 239 00:11:08,640 --> 00:11:13,372 Тогда я получил эту линию, в результате чего я требующих файл под названием functions.php-- 240 00:11:13,372 --> 00:11:15,080 мы собираемся, чтобы увидеть Подробнее об этом в немного, 241 00:11:15,080 --> 00:11:17,340 но это, как С-х версия резкое включают, 242 00:11:17,340 --> 00:11:19,090 куда ты хочешь пойти включить другой файл. 243 00:11:19,090 --> 00:11:23,720 PHP называет это требует, хотя это также имеет функцию включают в себя. 244 00:11:23,720 --> 00:11:26,861 И оказывается, что это function.php просто что-то я уже писал класса. 245 00:11:26,861 --> 00:11:29,860 Я положил его в том же каталоге, потому что Я хотел, чтобы вынести код 246 00:11:29,860 --> 00:11:31,800 что мы могли бы использовать в другом месте. 247 00:11:31,800 --> 00:11:34,560 >> Между тем, вы можете, вероятно, вывод, что здесь происходит. 248 00:11:34,560 --> 00:11:39,200 Это немного отличается от C-- но что я имею в виду гарантировать надлежащее использование? 249 00:11:39,200 --> 00:11:41,180 Перевести это более технически. 250 00:11:41,180 --> 00:11:45,950 При каких обстоятельствах это я выход из программы, или выходе? 251 00:11:45,950 --> 00:11:47,074 Да? 252 00:11:47,074 --> 00:11:47,990 >> АУДИТОРИЯ: Когда у вас нет два аргумента командной строки. 253 00:11:47,990 --> 00:11:49,480 >> Дэвид Малан: Когда я не командовать аргументы строки. 254 00:11:49,480 --> 00:11:52,396 И помните, что один из тех, Аргументы само название программы. 255 00:11:52,396 --> 00:11:55,340 И второй будет другое слово я печатаю после строке. 256 00:11:55,340 --> 00:11:57,460 Так же, как C, это это мой способ проверки, 257 00:11:57,460 --> 00:12:00,022 сделал пользователь сотрудничать и запустить программу как я собирался? 258 00:12:00,022 --> 00:12:01,730 Теперь, есть кое-что немного отличается 259 00:12:01,730 --> 00:12:04,020 с C-- в первую очередь мы есть этот знак доллара, 260 00:12:04,020 --> 00:12:07,710 и то, что делает доллар войдите обозначения в PHP? 261 00:12:07,710 --> 00:12:08,440 Просто переменная. 262 00:12:08,440 --> 00:12:11,731 Это all-- просто переменная последующим все, что вы хотите на самом деле назвать это. 263 00:12:11,731 --> 00:12:14,000 Обратите внимание, есть что-то отсутствует из моей программы PHP, 264 00:12:14,000 --> 00:12:18,210 так же, как это было в прошлом отсутствует неделю, по сравнению с C, который является что? 265 00:12:18,210 --> 00:12:21,620 >> А виды, но еще кое-что. 266 00:12:21,620 --> 00:12:26,409 Там нет то function-- основную функцию. 267 00:12:26,409 --> 00:12:27,450 Там нет основной функцией. 268 00:12:27,450 --> 00:12:29,680 Вы просто начать писать код без 269 00:12:29,680 --> 00:12:32,790 беспокоиться о довольно произвольное Конвенция именования по умолчанию некоторые 270 00:12:32,790 --> 00:12:33,880 Функция главный. 271 00:12:33,880 --> 00:12:36,720 Так аргумент С только действительно глобальная переменная 272 00:12:36,720 --> 00:12:39,049 что переводчика делает доступными для меня. 273 00:12:39,049 --> 00:12:40,090 Теперь, это интересно. 274 00:12:40,090 --> 00:12:41,140 Так что смотрите на вещи. 275 00:12:41,140 --> 00:12:43,370 Знак доллара акции на вышло, что моя переменная. 276 00:12:43,370 --> 00:12:45,120 На правой стороне, есть, видимо, 277 00:12:45,120 --> 00:12:50,270 функция в PHP называется поиск, что Я передаю свой последний командной строки 278 00:12:50,270 --> 00:12:51,902 Аргумент, целью которых все слово. 279 00:12:51,902 --> 00:12:53,610 И мы увидим, как это работает в данный момент. 280 00:12:53,610 --> 00:12:55,380 >> А потом, наконец, я сообщаю цену. 281 00:12:55,380 --> 00:12:58,650 Я печатаю одним Доля такой-то. 282 00:12:58,650 --> 00:13:02,082 И помните, что это способ PHP-- образом в PHP-- 283 00:13:02,082 --> 00:13:04,290 где вы не должны делать знак доллара S больше. 284 00:13:04,290 --> 00:13:06,782 Вы можете просто использовать фигурные скобки и подключить какой-либо переменной. 285 00:13:06,782 --> 00:13:09,240 Вы не должны беспокоиться о используя Printf таким же образом. 286 00:13:09,240 --> 00:13:13,530 >> И, как в сторону, когда вы кладете переменную внутри двойных кавычек, как это, 287 00:13:13,530 --> 00:13:17,370 Вы используете фантазии технику называется интерполяция переменных. 288 00:13:17,370 --> 00:13:20,380 Это просто означает, подключите переменную здесь. 289 00:13:20,380 --> 00:13:23,760 И, как в сторону, некоторые из вас, кто пришел от других слоев программирования, 290 00:13:23,760 --> 00:13:26,960 Вы не можете использовать одинарные кавычки вокруг струны, чтобы сделать это. 291 00:13:26,960 --> 00:13:30,290 Вы должны использовать двойные кавычки для интерполяция переменных, чтобы работать. 292 00:13:30,290 --> 00:13:32,740 В противном случае вы будете буквально увидеть эти фигурные скобки. 293 00:13:32,740 --> 00:13:34,500 >> Так, наконец, давайте идти вперед и работать в этом. 294 00:13:34,500 --> 00:13:36,690 Позвольте мне сделать мой терминал немного больше. 295 00:13:36,690 --> 00:13:41,940 Позвольте мне идти вперед и работать внутри моей цитатой каталоге. 296 00:13:41,940 --> 00:13:46,950 [? CDsource?] [? М.?] [? цитата?] PHP цитатой точка PHP, 297 00:13:46,950 --> 00:13:50,290 и я собираюсь искать что-то как GOOG, который является его тикер, 298 00:13:50,290 --> 00:13:55,510 и одна акция новым именем, Алфавит Inc, стоимость $ 717, как сегодня. 299 00:13:55,510 --> 00:13:58,680 Ладно, если мы хотим, чтобы Запустим, кто 300 00:13:58,680 --> 00:14:02,600 есть еще один биржевых сводок они хотят, чтобы посмотреть? 301 00:14:02,600 --> 00:14:06,770 >> Microsoft, я думаю, это одно, MSFT-- $ 53. 302 00:14:06,770 --> 00:14:09,720 Я думаю, что Yahoo является, может быть,. 303 00:14:09,720 --> 00:14:12,130 И в том, что Facebook. 304 00:14:12,130 --> 00:14:13,740 >> Так что эта программа делает? 305 00:14:13,740 --> 00:14:16,306 Магия, кажется, быть встроены в этой функции поиска. 306 00:14:16,306 --> 00:14:17,430 Итак, давайте взглянем. 307 00:14:17,430 --> 00:14:21,815 >> Получается, что не пришел с PHP, это в functions.php. 308 00:14:21,815 --> 00:14:23,690 И мы не будем идти через это очень подробно, 309 00:14:23,690 --> 00:14:28,040 но обратите внимание на оперативное слово здесь что на линии шестой functions.php-- 310 00:14:28,040 --> 00:14:29,440 Я буквально сказать, функцию. 311 00:14:29,440 --> 00:14:31,050 Я указать имя моей функции. 312 00:14:31,050 --> 00:14:34,330 Я тогда указать любой аргументы, или параметры, 313 00:14:34,330 --> 00:14:36,480 Я хочу, чтобы функция не take-- никакие типы. 314 00:14:36,480 --> 00:14:37,580 И тогда я его реализации. 315 00:14:37,580 --> 00:14:39,240 >> И я буду махать рукой на реализацию, 316 00:14:39,240 --> 00:14:42,115 так как это довольно продвинутый право сейчас, но мы будем видеть его снова на самом деле 317 00:14:42,115 --> 00:14:44,700 в неделю в задаче установить семь. 318 00:14:44,700 --> 00:14:47,490 Но я могу очистить это тоже. 319 00:14:47,490 --> 00:14:49,590 Я также включил в сегодня код версия 320 00:14:49,590 --> 00:14:52,340 цитаты, которая не имеет точка PHP файл. 321 00:14:52,340 --> 00:14:57,270 Потому что то, что, предположительно, на Верхняя часть программы под названием просто процитировать? 322 00:14:57,270 --> 00:15:00,140 Это так называемая shebang-- довольно загадочным заклинание 323 00:15:00,140 --> 00:15:04,590 что говорит найти PHP, а затем запустить его на своем коде здесь. 324 00:15:04,590 --> 00:15:07,360 >> Ладно, так что приносит нам, где мы остановились 325 00:15:07,360 --> 00:15:09,560 Последнее time-- хотя и с некоторые более продвинутые примеры. 326 00:15:09,560 --> 00:15:13,980 Любые вопросы до сих пор о PHP или то, что мы делаем? 327 00:15:13,980 --> 00:15:15,570 No-- все в порядке. 328 00:15:15,570 --> 00:15:16,180 Да? 329 00:15:16,180 --> 00:15:19,610 >> АУДИТОРИЯ: Внутри HTML файлы, делать you-- 330 00:15:19,610 --> 00:15:22,226 [? вы ?] [? просто назвать его?] а [неразборчиво] PHP файл? 331 00:15:22,226 --> 00:15:23,350 Дэвид Малан: Хороший вопрос. 332 00:15:23,350 --> 00:15:26,070 В контексте Веб, который мы находимся буквально о переходу к, 333 00:15:26,070 --> 00:15:28,028 Вы не используете так называемый притон в верхней части, 334 00:15:28,028 --> 00:15:31,980 потому что веб-server-- часто Программа называется Apache или Microsoft 335 00:15:31,980 --> 00:15:37,470 IIS, Internet Information Server, или любое количество другого программного обеспечения веб-сервера, 336 00:15:37,470 --> 00:15:40,636 знает, что, когда он видит файл точка PHP, что это 337 00:15:40,636 --> 00:15:42,010 следует запустить интерпретатор на нем. 338 00:15:42,010 --> 00:15:43,468 Это не смотрит на этой первой строки. 339 00:15:43,468 --> 00:15:45,580 Так первой линии трюк просто, когда вы 340 00:15:45,580 --> 00:15:48,330 писать командной строки programs-- который мы не будем делать супер часто, 341 00:15:48,330 --> 00:15:52,510 но это наш способ преодоления наши примеры C до сих пор нашей PHP. 342 00:15:52,510 --> 00:16:00,680 >> Так что давайте действительно преодолеть этот мир от мира из командной строки в Сети 343 00:16:00,680 --> 00:16:02,230 делая следующее. 344 00:16:02,230 --> 00:16:05,090 Позвольте мне идти вперед и делать здесь на мгновение. 345 00:16:05,090 --> 00:16:09,940 Так что, если у нас есть веб-сервер, или, вернее, если у нас есть свой ноутбук здесь, 346 00:16:09,940 --> 00:16:11,280 которые я буду рисовать, как это. 347 00:16:11,280 --> 00:16:14,250 И вот у нас есть Интернет в каком-то виде. 348 00:16:14,250 --> 00:16:18,210 А потом сюда, у нас есть сервер в building-- 349 00:16:18,210 --> 00:16:20,760 это, как Интернет works-- и здесь 350 00:16:20,760 --> 00:16:23,120 это сервер с некоторыми огнями, может быть. 351 00:16:23,120 --> 00:16:27,530 Что происходит на самом деле между этими двумя соединениями? 352 00:16:27,530 --> 00:16:29,240 >> Таким образом, в этом здании является веб-сервер. 353 00:16:29,240 --> 00:16:31,420 Это просто компьютер который работает в некоторых операционных 354 00:16:31,420 --> 00:16:34,561 система-- возможно свободное программное обеспечение под названием Apache, который работает CS50 IDE. 355 00:16:34,561 --> 00:16:36,310 Таким образом, вы можете фактически думаю, из этого здания 356 00:16:36,310 --> 00:16:38,579 как здание, в который хранится CSt0 IDE. 357 00:16:38,579 --> 00:16:40,870 Вот где у вас у всех счета, где вы все 358 00:16:40,870 --> 00:16:43,130 иметь свой собственный веб-сервер работает, вы все 359 00:16:43,130 --> 00:16:45,730 есть свои собственные уникальные адреса, как мы начали обсуждать, 360 00:16:45,730 --> 00:16:47,280 и вы будете видеть больше в П. установлены шесть. 361 00:16:47,280 --> 00:16:49,450 >> Вот мой ноутбук где-то еще в Интернете. 362 00:16:49,450 --> 00:16:54,550 И поэтому, когда я посещаю URL, который принадлежит мне, что интернет-трафик будет 363 00:16:54,550 --> 00:16:58,360 на сервер, сервер-х получения HTTP-request-- 364 00:16:58,360 --> 00:17:02,900 подобно получить index.html, и это отвечая на этой веб-странице. 365 00:17:02,900 --> 00:17:04,280 Так что это вообще парадигма. 366 00:17:04,280 --> 00:17:07,089 В то время как все до До сих пор сегодня, все 367 00:17:07,089 --> 00:17:09,660 происходит только в ограничивается этого здания. 368 00:17:09,660 --> 00:17:12,910 Я использовал свой ноутбук, но Я был связан с CS50 IDE, 369 00:17:12,910 --> 00:17:17,369 так что все из этих программ я бежал был внутри этого сервера, самой. 370 00:17:17,369 --> 00:17:22,660 >> Но теперь, давайте начнем повторного PHP написать несколько программ, которые фактические 371 00:17:22,660 --> 00:17:24,230 подаются до веб-сервером. 372 00:17:24,230 --> 00:17:30,320 А для этого, я собираюсь пойти в целой кучей примеров 373 00:17:30,320 --> 00:17:33,710 что ввести эту идею здесь. 374 00:17:33,710 --> 00:17:38,500 Так что это своего рода причудливый способ описания парадигмы программирования. 375 00:17:38,500 --> 00:17:41,540 >> И в самом деле, как вы выйдете CS50 или работать на конечных проектов, 376 00:17:41,540 --> 00:17:43,520 или взять некоторые следуют от класса, вы начнете 377 00:17:43,520 --> 00:17:45,740 видеть, что world-- особенно выросшие 378 00:17:45,740 --> 00:17:48,300 с языков, таких как C которые являются супер низкой level-- 379 00:17:48,300 --> 00:17:51,290 понимаю, что есть лучше способы написания программного обеспечения. 380 00:17:51,290 --> 00:17:53,290 Есть определенная шаблоны вы можете следовать, 381 00:17:53,290 --> 00:17:57,640 некоторые способы организации файлов и способы именования функций, 382 00:17:57,640 --> 00:18:00,300 так что короче говоря, мир пришел 383 00:18:00,300 --> 00:18:04,340 с целой кучей сокращений и имена путей программирования. 384 00:18:04,340 --> 00:18:06,260 Это всего лишь методы, которые Вы могли бы использовать. 385 00:18:06,260 --> 00:18:09,660 >> И один из них называется MVC, для модели View Controller. 386 00:18:09,660 --> 00:18:12,270 И это только для Теперь, чрезмерно сложным 387 00:18:12,270 --> 00:18:18,960 способ сказать, как вы должны выложить сайт PHP на основе, в нашем случае. 388 00:18:18,960 --> 00:18:22,140 Как вам организовать ваши файлы, как вы организовать вашу логику, 389 00:18:22,140 --> 00:18:26,220 таким образом, что делает его легче написать более сложные веб-сайты? 390 00:18:26,220 --> 00:18:28,550 И в самом деле, мы быстро попасть с р-ром семь. 391 00:18:28,550 --> 00:18:32,020 >> Таким образом, в мире MVC, вы собираетесь видеть, что наш код может вообще 392 00:18:32,020 --> 00:18:38,290 можно охарактеризовать как любой код модели, или код контроллера, или вид Код. 393 00:18:38,290 --> 00:18:40,200 И я собираюсь упрощать его как follows-- 394 00:18:40,200 --> 00:18:42,074 контроллер является мозги вашей программы, 395 00:18:42,074 --> 00:18:44,100 это, где все интересная логика бывает. 396 00:18:44,100 --> 00:18:46,110 Так что все мы были писать до сих пор в классе, 397 00:18:46,110 --> 00:18:48,210 вроде как контроллер code-- это контроль 398 00:18:48,210 --> 00:18:50,585 ваша программа, ваши петли, ваш условия, ваши функции 399 00:18:50,585 --> 00:18:52,100 и переменные и все такое. 400 00:18:52,100 --> 00:18:56,160 >> Просмотров, теперь, будут немного более очевидным в мире в Интернете. 401 00:18:56,160 --> 00:18:59,360 Вид эстетика вашего сайта. 402 00:18:59,360 --> 00:19:04,080 Это то, что пользователь sees-- изображения, HTML-столы, HTML теги и все 403 00:19:04,080 --> 00:19:08,220 того, что все пушистый эстетики вещи, которые не то, что трудно написать, 404 00:19:08,220 --> 00:19:11,380 но только то, что вы генерации, это так называемый вид, эстетика. 405 00:19:11,380 --> 00:19:13,880 И модель, в итоге, будет быть stuff-- база данных, которая 406 00:19:13,880 --> 00:19:16,510 мы начнем дайвинг во все тем более в эту среду. 407 00:19:16,510 --> 00:19:19,740 Так контроллер логика, взгляд эстетическое вещи, 408 00:19:19,740 --> 00:19:23,500 и модель будет где мы храним наши фактические данные. 409 00:19:23,500 --> 00:19:26,410 >> Итак, давайте посмотрим на это более конкретно на следующем примере. 410 00:19:26,410 --> 00:19:34,700 Я собираюсь пойти в мой каталог здесь сегодняшней источника code-- все из которых 411 00:19:34,700 --> 00:19:35,770 доступно онлайн. 412 00:19:35,770 --> 00:19:37,800 И я собираюсь идти в версии нулевой. 413 00:19:37,800 --> 00:19:41,500 А вот is-- давайте называть его на Версия нуль сайте CS50 в. 414 00:19:41,500 --> 00:19:43,010 Там не так много здесь вообще. 415 00:19:43,010 --> 00:19:46,810 Это очень простой веб-страницы, что это вероятно, используя то, что HTML-tags-- только 416 00:19:46,810 --> 00:19:48,970 догадаться из последних примеров? 417 00:19:48,970 --> 00:19:49,890 >> Что это? 418 00:19:49,890 --> 00:19:53,920 H1-- вероятно, что большой смелый Название, логотип, что наверху, CS50. 419 00:19:53,920 --> 00:19:55,080 И, что еще в игре? 420 00:19:55,080 --> 00:19:55,799 Да? 421 00:19:55,799 --> 00:19:56,840 АУДИТОРИЯ: Ненумерованный список. 422 00:19:56,840 --> 00:19:59,990 Дэвид Малан: Неупорядоченный list-- так UL тег и, возможно, пару LI тэгов. 423 00:19:59,990 --> 00:20:01,840 И если вы не помните, эти, это честно не имеет значения. 424 00:20:01,840 --> 00:20:04,170 Эти пушистые рода Детали реализации HTML 425 00:20:04,170 --> 00:20:06,378 что вы быстро искать и вы снова на вашем пути. 426 00:20:06,378 --> 00:20:10,040 Мы сосредоточиться на программировании идеи, которые являются более сочными штук. 427 00:20:10,040 --> 00:20:12,890 >> Так что давайте просто взять быстрый посмотреть на HTML-- и действительно 428 00:20:12,890 --> 00:20:16,880 если я открываю источник вид здесь, да, Это именно то, что происходит здесь. 429 00:20:16,880 --> 00:20:18,440 Там в тег UL. 430 00:20:18,440 --> 00:20:20,630 Вложенные внутри, что является LI тэгов. 431 00:20:20,630 --> 00:20:24,470 И тогда я заимствовал URL фактического программе здесь. 432 00:20:24,470 --> 00:20:27,570 >> И тогда в lectures.php по-видимому, 433 00:20:27,570 --> 00:20:31,640 другой динамически страница что будет иметь, давайте see-- ах, 434 00:20:31,640 --> 00:20:33,170 первые две недели лекции. 435 00:20:33,170 --> 00:20:36,600 Так нулю неделю и неделю из, давайте посмотреть на this-- если я посмотреть исходный код страницы, 436 00:20:36,600 --> 00:20:38,120 также супер просто. 437 00:20:38,120 --> 00:20:42,430 Они ведут к двух страниц называется week0.php и week1.php. 438 00:20:42,430 --> 00:20:44,040 Так что теперь рассмотреть, что происходит. 439 00:20:44,040 --> 00:20:50,630 >> Когда я нажимаю на week0.php, мой ноутбук делает запрос на week0.php. 440 00:20:50,630 --> 00:20:53,700 441 00:20:53,700 --> 00:20:58,110 Веб-сервер, также известное, как, CS50 IDE, получает виртуальный конверт что. 442 00:20:58,110 --> 00:21:01,040 Это отображается сообщение как, получить week0.php. 443 00:21:01,040 --> 00:21:05,060 Затем интерпретации файл, верхняя вниз, влево, чтобы right-- файл 444 00:21:05,060 --> 00:21:07,720 называется week0.php-- и выплевывая результатов. 445 00:21:07,720 --> 00:21:10,510 Так внутри этого файла, week0.php, должны быть 446 00:21:10,510 --> 00:21:15,410 логика управления, который генерирует Этот HTML-и мы скоро увидим, что. 447 00:21:15,410 --> 00:21:19,340 >> Но сейчас, позвольте мне нажмите на нулевой неделе, и теперь у нас есть среду и пятницу, 448 00:21:19,340 --> 00:21:25,260 и теперь у нас есть слайды медленно нулевой неделе. 449 00:21:25,260 --> 00:21:27,400 И вы помните это от пути назад, когда. 450 00:21:27,400 --> 00:21:29,340 Так вот этот веб-сайт делает. 451 00:21:29,340 --> 00:21:31,120 >> Итак, давайте рассмотрим, как это делает это. 452 00:21:31,120 --> 00:21:34,290 Я собираюсь вернуться в Исходный код здесь, в CS50 IDE, 453 00:21:34,290 --> 00:21:36,660 и я собираюсь открыть index.php. 454 00:21:36,660 --> 00:21:38,910 В верхней части этого файла это куча комментариев. 455 00:21:38,910 --> 00:21:43,000 И тогда в середине этого файла, его Оказывается, нет PHP кода бы то ни было. 456 00:21:43,000 --> 00:21:47,380 Потому что, если у вас нет какой-либо из открытый кронштейн знак вопроса PHP теги, 457 00:21:47,380 --> 00:21:49,180 Вы свободны просто поставить HTML. 458 00:21:49,180 --> 00:21:51,480 >> Потому что то, что PHP- переводчик должен делать, 459 00:21:51,480 --> 00:21:53,938 когда он читает эту file-- сверху вниз, слева right-- 460 00:21:53,938 --> 00:21:59,100 это только интерпретирует код он видит между эти скобки знак вопроса. 461 00:21:59,100 --> 00:22:02,380 И что-то еще, что это не признать PHP, он просто выплевывает. 462 00:22:02,380 --> 00:22:05,080 И HTML-ли среди вещей это будет просто выплюнуть. 463 00:22:05,080 --> 00:22:09,090 >> Так этот файл может иметь были index.html, 464 00:22:09,090 --> 00:22:11,690 но я все называя точка PHP как трамплин. 465 00:22:11,690 --> 00:22:15,960 Lectures.php-- аналогично восторг, это лишь некоторые HTML. 466 00:22:15,960 --> 00:22:19,840 Week0.php, аналогично лишь некоторые HTML. 467 00:22:19,840 --> 00:22:22,300 >> Но теперь давайте на пресловутый инженерно шляпа, 468 00:22:22,300 --> 00:22:24,400 и рассмотрим, как мы можем улучшить это. 469 00:22:24,400 --> 00:22:28,541 Это не трудно сделать, но я вроде из превратились в копии и пасты. 470 00:22:28,541 --> 00:22:31,540 И в самом деле, если я неделю два, вы знаю, что я, вероятно, буду делать? 471 00:22:31,540 --> 00:22:34,940 Я собираюсь поехать в week1.php, я собирается выделить все. 472 00:22:34,940 --> 00:22:39,110 Я собираюсь скопировать его, вставить его в новый файл с названием week2.php, 473 00:22:39,110 --> 00:22:42,440 изменить некоторые адреса, и быть на моем пути. 474 00:22:42,440 --> 00:22:45,240 >> Так на основе того, что мы видел в C уже 475 00:22:45,240 --> 00:22:46,860 это не чувствует себя хорошо, с надеждой. 476 00:22:46,860 --> 00:22:49,610 Копирование, вставка редко правильное решение. 477 00:22:49,610 --> 00:22:51,429 Так что мы можем начать сделать, чтобы улучшить это? 478 00:22:51,429 --> 00:22:53,345 Каковы возможности для лучшего дизайна? 479 00:22:53,345 --> 00:22:56,890 480 00:22:56,890 --> 00:22:58,760 >> К тому времени, я получаю, чтобы неделю восемь, это будет 481 00:22:58,760 --> 00:23:00,910 чтобы быть действительно раздражает если я хочу, чтобы изменить 482 00:23:00,910 --> 00:23:03,930 шрифт каждого из мои страницы, или если я хочу 483 00:23:03,930 --> 00:23:06,522 изменить структуру макета. 484 00:23:06,522 --> 00:23:08,396 Так где же возможность для лучшего дизайна? 485 00:23:08,396 --> 00:23:11,990 486 00:23:11,990 --> 00:23:15,160 Ну, давайте рассмотрим то, что поделился во всех этих файлов. 487 00:23:15,160 --> 00:23:21,696 >> Вот неделе один, вот неделю нулю, вот lectures.php, 488 00:23:21,696 --> 00:23:25,790 вот index.php-- что то же самое, и Чем отличается, грубо говоря, 489 00:23:25,790 --> 00:23:26,760 в каждом из этих файлов? 490 00:23:26,760 --> 00:23:30,560 491 00:23:30,560 --> 00:23:32,060 Да? 492 00:23:32,060 --> 00:23:34,560 >> АУДИТОРИЯ: [неразборчиво] 493 00:23:34,560 --> 00:23:41,244 494 00:23:41,244 --> 00:23:42,160 Дэвид Малан: ОК, хорошо. 495 00:23:42,160 --> 00:23:46,115 Так что картина, конечно же, в результате чего каждый раз, когда я выбираю лекции я, 496 00:23:46,115 --> 00:23:48,250 Я должен быть генерирования очень похожий, стр. 497 00:23:48,250 --> 00:23:50,375 И поэтому, возможно, я могу использовать тот факт, что на самом деле, 498 00:23:50,375 --> 00:23:53,060 мы сознательно численно индексируется наш lectures-- 499 00:23:53,060 --> 00:23:55,290 если я могу поставить еще слова в ответ. 500 00:23:55,290 --> 00:23:59,984 И то, что это единственное, что, на самом деле, что меняется между неделю одно-- 501 00:23:59,984 --> 00:24:02,400 и позвольте мне прокрутите вниз, чтобы это примерно в то же place-- 502 00:24:02,400 --> 00:24:05,480 так вот нулю неделю, примерно сверху. 503 00:24:05,480 --> 00:24:12,370 Вот неделе один, неделю нулю, неделе один, ноль неделю. 504 00:24:12,370 --> 00:24:14,370 ОК, буквально, если вы знаете, нет программы вообще, 505 00:24:14,370 --> 00:24:16,286 это теперь так же, как рисунок логической игре. 506 00:24:16,286 --> 00:24:17,200 Так чем же отличается? 507 00:24:17,200 --> 00:24:18,765 Да? 508 00:24:18,765 --> 00:24:19,777 >> АУДИТОРИЯ: [неразборчиво] 509 00:24:19,777 --> 00:24:22,360 Дэвид Малан: Хорошо, так что название меняется, чуть-чуть. 510 00:24:22,360 --> 00:24:24,010 Ноль будет, конечно, к одному. 511 00:24:24,010 --> 00:24:25,570 То же самое происходит в теге H1. 512 00:24:25,570 --> 00:24:28,790 И мы не совсем понимаю, как легко, потому что URL-адреса немного долго. 513 00:24:28,790 --> 00:24:30,670 Но эти URL-адреса меняются незначительно. 514 00:24:30,670 --> 00:24:34,490 >> Но то, что не меняется вне, смею сказать, большинство из содержимого page-- 515 00:24:34,490 --> 00:24:38,530 HTML-теги тот же, голова то же самое, что название почти то же самое, 516 00:24:38,530 --> 00:24:40,659 тело же, и почти все остальное 517 00:24:40,659 --> 00:24:42,450 то же самое, за исключением маленькие хитрости те. 518 00:24:42,450 --> 00:24:45,310 Так как мы можем идти о факторинг некоторые из это? 519 00:24:45,310 --> 00:24:48,740 >> Ну позвольте мне предложить именно что в следующей версии. 520 00:24:48,740 --> 00:24:53,890 Так вот в версии одной, у меня есть точная те же файлы, а также несколько других. 521 00:24:53,890 --> 00:24:59,730 Вот index.php-- и даже если Вы никогда не видели прежде, чем PHP, 522 00:24:59,730 --> 00:25:05,511 что я, вероятно, делать, чтобы решить этот problem-- основе того, что вы видите здесь? 523 00:25:05,511 --> 00:25:11,300 524 00:25:11,300 --> 00:25:12,760 Да, это то, что небольшим приверженности? 525 00:25:12,760 --> 00:25:13,450 Нет? 526 00:25:13,450 --> 00:25:16,020 Да, идти дальше. 527 00:25:16,020 --> 00:25:17,380 >> АУДИТОРИЯ: [неразборчиво] 528 00:25:17,380 --> 00:25:18,380 >> Дэвид Малан: Да. 529 00:25:18,380 --> 00:25:20,380 >> АУДИТОРИЯ: [неразборчиво] 530 00:25:20,380 --> 00:25:26,090 531 00:25:26,090 --> 00:25:28,669 >> Дэвид Малан: Я хочу, чтобы ты говорить только немного громче. 532 00:25:28,669 --> 00:25:31,084 >> АУДИТОРИЯ: [неразборчиво] 533 00:25:31,084 --> 00:25:35,744 534 00:25:35,744 --> 00:25:36,660 Дэвид Малан: ОК, хорошо. 535 00:25:36,660 --> 00:25:38,620 И я think-- было трудно услышать, но я you-- 536 00:25:38,620 --> 00:25:42,690 думаю, что вы получаете на это, что теги, которые были распространены до верхней, 537 00:25:42,690 --> 00:25:47,710 и теги, которые были распространены на снизу, в настоящее время вынесена, 538 00:25:47,710 --> 00:25:51,140 или низведена к тому, что файлы? 539 00:25:51,140 --> 00:25:53,476 Header.php и footer.php-- и мы собираемся 540 00:25:53,476 --> 00:25:55,600 чтобы сделать некоторые хитрости, чтобы устранить озабоченность вы просто 541 00:25:55,600 --> 00:25:59,370 поднят вопрос о смене номера, для Например, если я правильно услышал тебя. 542 00:25:59,370 --> 00:26:02,060 >> Но это, кажется, суть его. 543 00:26:02,060 --> 00:26:04,820 Если бы не было огромное количество резервирование в верхней части страницы, 544 00:26:04,820 --> 00:26:06,736 и огромное количество резервирование на дне, 545 00:26:06,736 --> 00:26:09,280 давайте буквально изюминкой и сократить это содержание из, 546 00:26:09,280 --> 00:26:13,270 поместить его в отдельную file-- просто как идея CSS, где мы факторизовали 547 00:26:13,270 --> 00:26:16,710 очень похожи эстетика, поставленные это в отдельном файле PHP точка, 548 00:26:16,710 --> 00:26:20,340 использовать требуют mechanism-- которые это как-диез включать: который 549 00:26:20,340 --> 00:26:23,570 по сути, как говорят идти захватить содержимое header.php, 550 00:26:23,570 --> 00:26:25,370 скопируйте и вставьте их здесь. 551 00:26:25,370 --> 00:26:29,490 >> Но то, что это означает, что в настоящее время в index.php, у меня есть эти две линии. 552 00:26:29,490 --> 00:26:32,130 В lectures.php, я также есть те две линии. 553 00:26:32,130 --> 00:26:35,230 В week0.php, я также есть те две линии. 554 00:26:35,230 --> 00:26:38,380 >> Так что теперь, если я хочу, чтобы изменить название всех моих страниц, 555 00:26:38,380 --> 00:26:40,530 или я хочу изменить фундаментальная структура, 556 00:26:40,530 --> 00:26:44,380 Я могу изменить его теперь только в одном месте, или два places-- верхний и нижний колонтитулы, 557 00:26:44,380 --> 00:26:45,429 соответственно. 558 00:26:45,429 --> 00:26:47,970 Теперь стартовая Кодекса смотреть немного больше загадочное, верно? 559 00:26:47,970 --> 00:26:53,590 Но если вы думаете, о том, что страница в doing-- если я с просьбой week0.php, 560 00:26:53,590 --> 00:26:59,880 так же, как на чертеже над here-- когда week0.php запрашивается, 561 00:26:59,880 --> 00:27:00,960 что это значит? 562 00:27:00,960 --> 00:27:04,410 >> Буквально этот файл просил в браузере. 563 00:27:04,410 --> 00:27:06,240 Веб-server-- также известное 564 00:27:06,240 --> 00:27:09,250 CS50 ID-- хватает этого Файл, week0.php, и читает 565 00:27:09,250 --> 00:27:10,780 это сверху вниз, слева направо. 566 00:27:10,780 --> 00:27:15,400 На первой линии, сразу же сталкивается с его открывающая скобка знак вопроса PHP, требуют 567 00:27:15,400 --> 00:27:17,872 Заголовок точка PHP, и так что РНР 568 00:27:17,872 --> 00:27:20,580 does--, что встроенный в веб Сервер, потому что мы предварительно настроен 569 00:27:20,580 --> 00:27:24,580 это для you-- он автоматически переходит в header.php, копирует содержимое, 570 00:27:24,580 --> 00:27:25,640 вставляет их здесь. 571 00:27:25,640 --> 00:27:28,790 >> Но тогда интерпретатор встречает знак вопроса рядом кронштейн, 572 00:27:28,790 --> 00:27:30,320 так что это все делается думать. 573 00:27:30,320 --> 00:27:33,400 Теперь он просто слепо плюет из линий второго по семь, 574 00:27:33,400 --> 00:27:35,240 потому что это просто сырой HTML. 575 00:27:35,240 --> 00:27:38,470 Получает в линию восемь, и делает, что же магия again-- открытия файла, 576 00:27:38,470 --> 00:27:41,460 захватывая содержимое, и требуя от них или вставляя их 577 00:27:41,460 --> 00:27:42,480 прямо тогда или там. 578 00:27:42,480 --> 00:27:44,210 >> Но я просто ссылался на ошибку. 579 00:27:44,210 --> 00:27:48,610 Это неполный шаг назад, потому что, если мы посмотрим в header.php, 580 00:27:48,610 --> 00:27:50,850 Я вроде отрезать уголок. 581 00:27:50,850 --> 00:27:56,250 Что функция я отказаться, чтобы чтобы получить эту спорную лучший дизайн? 582 00:27:56,250 --> 00:27:57,305 Да? 583 00:27:57,305 --> 00:27:58,180 АУДИТОРИЯ: [неразборчиво] 584 00:27:58,180 --> 00:28:00,570 Дэвид Малан: Да, я как бы Вырезать нетривиальное угол. 585 00:28:00,570 --> 00:28:04,489 Вы отметили, что то, что было изменение было название, количество в названии, 586 00:28:04,489 --> 00:28:05,530 и количество в H1. 587 00:28:05,530 --> 00:28:08,170 Так что мое решение было, хорошо, давайте просто переименовать страницу, 588 00:28:08,170 --> 00:28:10,080 а не заниматься тем, что Проблема вообще. 589 00:28:10,080 --> 00:28:12,130 Так вот неполный шаг назад наверняка. 590 00:28:12,130 --> 00:28:14,300 >> Но то, что примечательно здесь Это то, что я сделал 591 00:28:14,300 --> 00:28:17,200 в противном случае учтены из всего общего материала. 592 00:28:17,200 --> 00:28:21,520 И в footer.php, обратите внимание, я учтены из всех, что, хотя менее, 593 00:28:21,520 --> 00:28:22,790 общий материал. 594 00:28:22,790 --> 00:28:26,070 Так что я каким-то образом нужно теперь смогут сделать еще один шаг вперед, и исправить 595 00:28:26,070 --> 00:28:27,160 что вопросы название. 596 00:28:27,160 --> 00:28:28,180 Так давайте сделаем это. 597 00:28:28,180 --> 00:28:35,060 >> Позвольте мне идти в моем втором варианте здесь, что, опять же, имеет те же самые файлы 598 00:28:35,060 --> 00:28:36,825 для одного новое дополнение исключением. 599 00:28:36,825 --> 00:28:38,950 И это немного больше, многословен, но давайте посмотрим, если мы 600 00:28:38,950 --> 00:28:40,550 может дразнить друг от друга, что здесь происходит. 601 00:28:40,550 --> 00:28:45,370 Таким образом, вместо того, чтобы требовать header.php и footer.php, 602 00:28:45,370 --> 00:28:50,180 Я, кажется, только один требующий file-- называется, конечно, helpers.php. 603 00:28:50,180 --> 00:28:52,560 И позвольте мне предусматривают сейчас, что внутри helpers.php 604 00:28:52,560 --> 00:28:55,330 это всего лишь кучка функций что я написал, как и раньше. 605 00:28:55,330 --> 00:28:57,550 Но я назвал его helpers.php. 606 00:28:57,550 --> 00:29:00,370 >> Теперь, по-видимому, в линия три и 10, я 607 00:29:00,370 --> 00:29:02,840 вызова двух functions-- оказывать заголовок, оказывают колонтитулы. 608 00:29:02,840 --> 00:29:05,040 Те, не приходят с PHP, я написал те себя. 609 00:29:05,040 --> 00:29:07,880 И я положил их в helpers.php. 610 00:29:07,880 --> 00:29:11,210 >> Теперь, мы видели только этот синтаксис один раз, и это было супер кратким. 611 00:29:11,210 --> 00:29:15,330 Но это по-видимому аргумент оказывать заголовок, функции. 612 00:29:15,330 --> 00:29:16,450 Почему я это знаю? 613 00:29:16,450 --> 00:29:18,522 Ну вот близкий Парень, вот открытая скобка. 614 00:29:18,522 --> 00:29:21,230 И, конечно, как и в C, ничего между этими скобками 615 00:29:21,230 --> 00:29:23,350 является input-- или аргумент функции. 616 00:29:23,350 --> 00:29:26,710 >> Какой тип данных этого аргумента, на основе того, что я выделил? 617 00:29:26,710 --> 00:29:30,820 Что делать эти квадратные скобки указывают, на основе последней недели? 618 00:29:30,820 --> 00:29:33,390 Да, что это array-- специально ассоциативный массив. 619 00:29:33,390 --> 00:29:35,700 И это правда, синтаксис немного напуганный, 620 00:29:35,700 --> 00:29:38,860 но это просто проходил в одной ключевой пары значений. 621 00:29:38,860 --> 00:29:43,530 Ключ, цитата конец цитаты Название и значение CS50. 622 00:29:43,530 --> 00:29:46,220 >> Если мы сделали это в C, это могло бы вместо 623 00:29:46,220 --> 00:29:49,400 выглядеть примерно так, просто цитата конец цитаты CS50-- 624 00:29:49,400 --> 00:29:52,460 или на самом деле было бы вьющиеся брекеты, или что-то подобное в C, 625 00:29:52,460 --> 00:29:55,580 где ключ равен нулю, и значение CS50. 626 00:29:55,580 --> 00:29:59,840 Но, опять же, в PHP, хотя Синтаксис, опять же, немного странно, 627 00:29:59,840 --> 00:30:02,860 это позволяет передавать в слова вместо номера 628 00:30:02,860 --> 00:30:05,120 чтобы связать ключи со значениями. 629 00:30:05,120 --> 00:30:06,390 >> Итак, что же все это значит? 630 00:30:06,390 --> 00:30:09,750 Если я иду в helpers.php, давайте посмотрим на эту функцию. 631 00:30:09,750 --> 00:30:13,620 renderHeader.php, а renderHeader это моя функция, 632 00:30:13,620 --> 00:30:16,220 и я знаю, что, потому что вижу функция Ключевое слово здесь. 633 00:30:16,220 --> 00:30:19,450 Это новое от C-- его, по-видимому принимает аргумент с именем data-- 634 00:30:19,450 --> 00:30:22,400 но я мог бы назвать это что-нибудь, но я назвал его данные, 635 00:30:22,400 --> 00:30:25,090 просто быть немного clean-- и просто взять догадку, особенно 636 00:30:25,090 --> 00:30:28,173 если вы программировали в некоторых других выше уровень языка, прежде чем, что-то 637 00:30:28,173 --> 00:30:29,820 выше C, концептуально. 638 00:30:29,820 --> 00:30:33,820 >> Что делает равный открытый кронштейн квадратную скобку, вероятно, имеете в виду? 639 00:30:33,820 --> 00:30:35,540 Или то, что, возможно, это значит? 640 00:30:35,540 --> 00:30:39,660 Мы не видели это в С. Да? 641 00:30:39,660 --> 00:30:40,480 >> Пустой массив. 642 00:30:40,480 --> 00:30:45,440 В частности, это означает, что если пользователь не называть renderHeader 643 00:30:45,440 --> 00:30:49,340 с аргументом, я все еще собираюсь иметь аргумент с именем данных, 644 00:30:49,340 --> 00:30:52,327 но его значение по умолчанию будет пустой массив. 645 00:30:52,327 --> 00:30:53,660 Так что это просто хороший удобство. 646 00:30:53,660 --> 00:30:56,493 Я не должен кричать на пользователя, или сказать, что вы использовали моя функция не так. 647 00:30:56,493 --> 00:30:59,849 Я могу только дать пользователю по умолчанию значение, если я не особенно волнует. 648 00:30:59,849 --> 00:31:01,890 Теперь эта функция, я собирается махать руками в. 649 00:31:01,890 --> 00:31:07,620 Но этот экстракт функция позволяет нам передать эти переменные в данных 650 00:31:07,620 --> 00:31:10,360 в header.php следующим образом. 651 00:31:10,360 --> 00:31:13,100 И это последняя часть, Я думаю, что, фанки синтаксиса. 652 00:31:13,100 --> 00:31:15,860 Вот мой новая версия из header.php-- его 653 00:31:15,860 --> 00:31:20,140 говаривал, в буквальном смысле, открытым Кронштейн название CS50, и что это было. 654 00:31:20,140 --> 00:31:21,766 И то же самое для H1. 655 00:31:21,766 --> 00:31:24,310 >> Теперь, по-видимому, говорит он что-то очень напуганный. 656 00:31:24,310 --> 00:31:28,030 И позвольте мне упростить это на мгновение, как следует. 657 00:31:28,030 --> 00:31:31,020 Это то, что я изменил свой титул, чтобы быть. 658 00:31:31,020 --> 00:31:35,140 Тем не менее, это становится немного некрасиво постоянно открытых скобках с PHP, 659 00:31:35,140 --> 00:31:36,610 а затем использовать функцию печати. 660 00:31:36,610 --> 00:31:40,810 Получается, что PHP имеет сокращенную обозначения для этого, который является только 661 00:31:40,810 --> 00:31:45,050 знак равенства, который является технически Функция называется эхо вместо печати, 662 00:31:45,050 --> 00:31:46,800 но это то же самое, эффективно. 663 00:31:46,800 --> 00:31:48,440 >> Это просто выглядит лучше. 664 00:31:48,440 --> 00:31:50,510 Это просто синтаксический сахар, если хотите, 665 00:31:50,510 --> 00:31:52,260 что делает мой код выглядит немного лучше. 666 00:31:52,260 --> 00:31:54,010 Но, оказывается, и мы увидим это снова 667 00:31:54,010 --> 00:31:57,420 в скором времени, мы должны назвать это раздражающе долго функция называется 668 00:31:57,420 --> 00:32:00,582 HTML специальные символы в PHP, потому что он оказывается 669 00:32:00,582 --> 00:32:02,790 Есть определенные входы что пользователь может дать нам, 670 00:32:02,790 --> 00:32:05,160 или, что пользователи могут дать нам, что собираются разбить наш сайт. 671 00:32:05,160 --> 00:32:07,035 Но мы увидим, что в следующем неделю с JavaScript. 672 00:32:07,035 --> 00:32:10,740 Но сейчас, просто знаю, что этот файл, headers.php, просто 673 00:32:10,740 --> 00:32:13,040 принимает титул, который Я прошел в это сделать 674 00:32:13,040 --> 00:32:17,380 уверен, что это безопасно вводить в Интернете страница, и он выплевывает его, как мой титул 675 00:32:17,380 --> 00:32:18,640 и как мой H1. 676 00:32:18,640 --> 00:32:24,440 Так что, если я иду в этой версии сейчас, заметить, что лекции имеет титул назад, 677 00:32:24,440 --> 00:32:28,630 нулевой неделе имеет свое название назад, и в самом деле, HTML я генерации 678 00:32:28,630 --> 00:32:32,110 идентичен тому, что мой первый вариант was-- для моего пробелов, за исключением, 679 00:32:32,110 --> 00:32:35,150 потому что я начал форматирование мой код немного по-другому. 680 00:32:35,150 --> 00:32:38,082 Но я все генерируется код, который я волнует. 681 00:32:38,082 --> 00:32:39,790 Итак, позвольте мне остановиться на только на мгновение и увидеть 682 00:32:39,790 --> 00:32:42,200 если есть какие-либо вопросы или спутанность сознания я создал. 683 00:32:42,200 --> 00:32:44,970 684 00:32:44,970 --> 00:32:48,150 Ладно, так что давайте крутить немного сложнее здесь 685 00:32:48,150 --> 00:32:51,500 чтобы увидеть, если есть возможность для улучшения. 686 00:32:51,500 --> 00:32:56,130 Helpers.php также было это функция, называемая renderFooter. 687 00:32:56,130 --> 00:32:59,652 И то, что примечательно о renderHeader и renderFooter? 688 00:32:59,652 --> 00:33:02,610 И снова, для сегодняшних целей, знают, что функция экстракт просто 689 00:33:02,610 --> 00:33:08,280 мой способ передачи аргументов в header.php и footer.php. 690 00:33:08,280 --> 00:33:10,900 691 00:33:10,900 --> 00:33:11,780 >> Сожалею? 692 00:33:11,780 --> 00:33:13,056 >> АУДИТОРИЯ: [неразборчиво] 693 00:33:13,056 --> 00:33:15,180 Дэвид Малан: Да, я только изменен требуют линия. 694 00:33:15,180 --> 00:33:19,410 Так буквально, я совершил грех копирования и вставки, еще раз. 695 00:33:19,410 --> 00:33:21,920 Это не огромное количество линий, но приходят on-- 696 00:33:21,920 --> 00:33:25,220 если я копирования и вставки все просто изменить один словечко, 697 00:33:25,220 --> 00:33:28,610 и одна маленькая слово, что Алан указывает аут нижний колонтитул здесь, по сравнению с заголовка здесь. 698 00:33:28,610 --> 00:33:30,670 В противном случае, все идентичны, за исключением, 699 00:33:30,670 --> 00:33:32,180 Конечно, имена функции. 700 00:33:32,180 --> 00:33:33,690 Так что мы могли бы сделать лучше? 701 00:33:33,690 --> 00:33:39,810 >> Ну позвольте мне открыть эту версию здесь, в результате чего в helpers.php, 702 00:33:39,810 --> 00:33:42,300 почему я не просто получить немного умнее об этом? 703 00:33:42,300 --> 00:33:46,410 Написать чуть сложнее Код, но назвать это сделать? 704 00:33:46,410 --> 00:33:48,470 Так что я принципиально изменилось? 705 00:33:48,470 --> 00:33:51,770 >> Он принимает аргумент now-- два аргумента, данные по-прежнему. 706 00:33:51,770 --> 00:33:54,444 И тогда то, что первый Название, вероятно, используется для, 707 00:33:54,444 --> 00:33:55,860 на основе того, что вы читаете здесь? 708 00:33:55,860 --> 00:33:58,452 Даже если некоторые из синтаксиса все еще является новой. 709 00:33:58,452 --> 00:33:59,660 Что шаблона знак доллара? 710 00:33:59,660 --> 00:34:02,400 711 00:34:02,400 --> 00:34:03,016 >> Сожалею? 712 00:34:03,016 --> 00:34:03,710 >> АУДИТОРИЯ: верхний или нижний колонтитул. 713 00:34:03,710 --> 00:34:04,510 >> Дэвид Малан: верхний или нижний колонтитул. 714 00:34:04,510 --> 00:34:07,134 Таким образом, очевидно, я решил, что если Единственное, что меняется 715 00:34:07,134 --> 00:34:10,159 это то, что я хочу, шаблон чтобы print-- и по шаблону 716 00:34:10,159 --> 00:34:13,100 Я имею в виду, это проект для код, который я хочу для вывода, 717 00:34:13,100 --> 00:34:16,350 но я хочу, чтобы подключить некоторые values-- так что если это только заголовок 718 00:34:16,350 --> 00:34:20,440 или нижний колонтитул, почему я не параметризации что и называют знак доллара аргумент 719 00:34:20,440 --> 00:34:21,409 шаблон? 720 00:34:21,409 --> 00:34:26,250 И тогда это фанки синтаксис позволяет мне создать путь в переменной. 721 00:34:26,250 --> 00:34:28,030 >> Так знак доллара путь переменной. 722 00:34:28,030 --> 00:34:31,120 Что делает этот синтаксис делать, если вы знакомы? 723 00:34:31,120 --> 00:34:32,512 Да? 724 00:34:32,512 --> 00:34:34,065 >> АУДИТОРИЯ: [неразборчиво] 725 00:34:34,065 --> 00:34:34,940 Дэвид Малан: Точно. 726 00:34:34,940 --> 00:34:37,600 Если шаблон, цитата конец цитаты, Заголовок, или если шаблон, 727 00:34:37,600 --> 00:34:41,170 конец цитаты цитаты, подвал, эта линия существует что я выделил, линия восемь, 728 00:34:41,170 --> 00:34:46,330 просто принимая это имя, как заголовок, и объединения ее с точечной PHP. 729 00:34:46,330 --> 00:34:49,750 Таким образом, мы не должны этого оператора в C. Этот оператор является точка 730 00:34:49,750 --> 00:34:54,520 удивительная вещь в PHP-- если вы знакомы с JavaScript или Java, 731 00:34:54,520 --> 00:34:56,949 Вы можете использовать плюс войдите сделать конкатенацию. 732 00:34:56,949 --> 00:34:59,974 >> В C, это боль в neck-- и мне так жаль, в р-шесть установить, 733 00:34:59,974 --> 00:35:02,390 Вы будете иметь, чтобы сделать this-- это боль в шее 734 00:35:02,390 --> 00:35:03,930 для объединения строк. 735 00:35:03,930 --> 00:35:04,670 Зачем? 736 00:35:04,670 --> 00:35:06,580 Ну, потому что, если у вас есть строка это так долго, 737 00:35:06,580 --> 00:35:09,538 и еще строка это так долго, Вы не можете просто подключить их вместе. 738 00:35:09,538 --> 00:35:11,070 Что вы вместо этого сделать в C? 739 00:35:11,070 --> 00:35:11,680 Да? 740 00:35:11,680 --> 00:35:12,380 >> АУДИТОРИЯ: [неразборчиво] 741 00:35:12,380 --> 00:35:15,090 >> Дэвид Малан: Вы должны таНос памяти, или использовать массив в стеке. 742 00:35:15,090 --> 00:35:17,214 И вы на самом деле нужно сделать это достаточно большой массив 743 00:35:17,214 --> 00:35:20,940 чтобы соответствовать это плюс это, плюс обратный слеш нулю. 744 00:35:20,940 --> 00:35:24,994 Затем объединить их вместе с помощью перемешать вручную или кошку с цикл, 745 00:35:24,994 --> 00:35:26,160 или любое количество методов. 746 00:35:26,160 --> 00:35:27,760 И мы покажем вам несколько в р-установить шесть. 747 00:35:27,760 --> 00:35:29,080 >> Это боль в шее. 748 00:35:29,080 --> 00:35:34,190 И это действительно то, что я имею в виду это против this-- как C по сравнению с PHP. 749 00:35:34,190 --> 00:35:36,870 Вы просто получите гораздо больше Функциональность бесплатно, 750 00:35:36,870 --> 00:35:39,030 так что вы можете сосредоточиться, в идеале, на веселье 751 00:35:39,030 --> 00:35:41,190 часть кодировании Проект вы хотите решить, 752 00:35:41,190 --> 00:35:43,190 а не на уровне мелочей низкой. 753 00:35:43,190 --> 00:35:49,840 >> Так что это просто генерирует header.php или footer.php на основании которых я называю. 754 00:35:49,840 --> 00:35:52,280 И в самом деле, если я иду в index.php, уведомление 755 00:35:52,280 --> 00:35:56,230 все, что changed-- Вместо называя оказать заголовок или нижний колонтитул сделать, 756 00:35:56,230 --> 00:36:00,230 Я звоню сделать, за ним имя шаблона, что я хочу сделать. 757 00:36:00,230 --> 00:36:02,370 И вы увидите, это тоже, в задаче установить семь, 758 00:36:02,370 --> 00:36:05,530 в результате чего мы позволяем вам использовать та же функция, чтобы сделать букеты 759 00:36:05,530 --> 00:36:07,550 и гроздья различных веб-страниц. 760 00:36:07,550 --> 00:36:10,570 >> Таким образом, вместо останавливаться слишком больше на тех details-- 761 00:36:10,570 --> 00:36:13,210 которые вы увидите снова в Проблема набор seven-- давайте посмотрим 762 00:36:13,210 --> 00:36:16,850 на сейчас начала раствора к более интересной проблеме. 763 00:36:16,850 --> 00:36:19,310 До сих пор, мы ничего не имею сделать есть сохраненные данные. 764 00:36:19,310 --> 00:36:22,920 На самом деле, единственный раз, мы когда-либо сохранены то, что мы сделали в этом классе 765 00:36:22,920 --> 00:36:31,030 это когда у нас был очень простой демо некоторое время назад, в результате чего мы использовали файл IO в C, 766 00:36:31,030 --> 00:36:34,520 и я думаю, я набрал во имя Мое, и Имя Анны, и имя Марии, 767 00:36:34,520 --> 00:36:37,610 или, может быть, имя Энди, и тогда мы сохранили file-- CSV 768 00:36:37,610 --> 00:36:39,430 значения, разделенные запятыми файл. 769 00:36:39,430 --> 00:36:43,530 >> И мы использовали fopen-- Я думаю, мы использовали fprintf, как я помню, 770 00:36:43,530 --> 00:36:44,910 и мы сохранили файл. 771 00:36:44,910 --> 00:36:46,920 Теперь, что это самый простой Форма базы данных. 772 00:36:46,920 --> 00:36:50,230 Если вы хотите, чтобы сделать веб-сайт для Программа Фрош чаты, в результате чего первокурсников 773 00:36:50,230 --> 00:36:53,390 может зарегистрироваться на спорт, ты идеально хочу сделать что-то с этими данными. 774 00:36:53,390 --> 00:36:55,370 На прошлой неделе, мы ничего не делали с data-- мы просто сказал 775 00:36:55,370 --> 00:36:56,661 Вы зарегистрированы, не на самом деле. 776 00:36:56,661 --> 00:36:58,950 Или, может быть, я послал по электронной почте Проктор, и что это было. 777 00:36:58,950 --> 00:37:02,110 >> Но было бы неплохо, если бы я мог дать, что Проктор файл CSV, 778 00:37:02,110 --> 00:37:03,340 как файл Excel. 779 00:37:03,340 --> 00:37:05,090 Или, еще лучше, это было бы хорошо, если бы я мог 780 00:37:05,090 --> 00:37:08,830 поместить имена этих пользователей и общежития имена и все, что 781 00:37:08,830 --> 00:37:11,740 в базу данных, просто живет вечно, 782 00:37:11,740 --> 00:37:13,530 пока я не выбрать для удаления данных. 783 00:37:13,530 --> 00:37:15,645 База данных, которая позволяет мне запрос информации. 784 00:37:15,645 --> 00:37:18,070 И в самом деле, это то, что база данных. 785 00:37:18,070 --> 00:37:20,470 >> Введем сегодня, и на следующей неделе, тоже технология 786 00:37:20,470 --> 00:37:25,020 называется SQL-- структурный запрос Язык, который является другой язык. 787 00:37:25,020 --> 00:37:28,750 Это существенно программирования язык, но для баз данных. 788 00:37:28,750 --> 00:37:31,760 И база данных сейчас, просто думаю, как супер модные версии 789 00:37:31,760 --> 00:37:35,710 из Microsoft Excel или Google Таблицы, или яблочный чисел. 790 00:37:35,710 --> 00:37:39,950 Это в целом программа, которая позволяет хранить целую кучу данных 791 00:37:39,950 --> 00:37:43,960 в строках и столбцах, достаточно как вы могли бы в Excel. 792 00:37:43,960 --> 00:37:47,100 >> Но то, что приятно, особенно если мы не супер знакомы с Excel, 793 00:37:47,100 --> 00:37:52,040 то, что SQL позволяет сделать запрос это Информация в письменном виде строк кода 794 00:37:52,040 --> 00:37:55,220 где вы можете, даже если ваш база данных имеет миллион строк в нем, 795 00:37:55,220 --> 00:37:57,190 Вы можете найти вещи очень быстро. 796 00:37:57,190 --> 00:37:59,950 В самом деле, Excel особенно плохо на больших наборов данных. 797 00:37:59,950 --> 00:38:02,460 И в самом деле, до нескольких лет назад, оказалось 798 00:38:02,460 --> 00:38:08,890 Excel только позволит вам хранить до 65,535 строк, которые data-- 799 00:38:08,890 --> 00:38:12,020 звучит, как много, но в то раз я был аспирантом, 800 00:38:12,020 --> 00:38:14,920 и я помню, спотыкаясь это потому, что я был генерации 801 00:38:14,920 --> 00:38:17,900 Файлы CSV для моего исследования, и я хотел проанализировать их быстро 802 00:38:17,900 --> 00:38:19,530 просто открыв в Excel. 803 00:38:19,530 --> 00:38:23,730 Конечно, мой компьютер просто разбился, потому что я был более, чем 65000 строк. 804 00:38:23,730 --> 00:38:27,210 >> Но где же 65,535 пришли? 805 00:38:27,210 --> 00:38:29,670 Что делать Microsoft, по-видимому? 806 00:38:29,670 --> 00:38:32,430 Если вы хорошо с полномочиями двух? 807 00:38:32,430 --> 00:38:37,160 Да, они были с использованием 16-бит значение представляют число строк. 808 00:38:37,160 --> 00:38:41,310 И два 16 является 65,536-- минус одна, потому что если вы 809 00:38:41,310 --> 00:38:45,414 нулевой отметки означает, что был Наибольшее количество строк я мог бы. 810 00:38:45,414 --> 00:38:46,830 И это было только дизайнерское решение. 811 00:38:46,830 --> 00:38:52,760 При сохранении 16 бит, они ограничены меня 16000 строк, а не 4 млрд, 812 00:38:52,760 --> 00:38:54,322 которые я мог иметь в идеале. 813 00:38:54,322 --> 00:38:57,030 Но сейчас, мы собираемся ввести этот более в веб-контексте. 814 00:38:57,030 --> 00:39:00,390 И то, что приятно об SQL является то, что даже хотя это довольно мощная и довольно 815 00:39:00,390 --> 00:39:04,050 сложные, это действительно кипит до четырех ключевых операций, четыре 816 00:39:04,050 --> 00:39:08,060 Основные функции, если вы выберите, will-- для извлечения данных, поиска 817 00:39:08,060 --> 00:39:12,510 для данных; удалять или удаление данных; вставить для добавления строк в базе данных; 818 00:39:12,510 --> 00:39:13,410 и обновление. 819 00:39:13,410 --> 00:39:17,010 Так что если вы когда-либо использовали Google Таблицы, Apple, Microsoft Числа 820 00:39:17,010 --> 00:39:19,310 Excel, как Вы выполнили, скорее всего, все 821 00:39:19,310 --> 00:39:22,530 из этих операций, как человека по только с помощью клавиатуры и mouse-- 822 00:39:22,530 --> 00:39:26,050 вставки данных, используя свои глаза для выбора или поиска данных, 823 00:39:26,050 --> 00:39:28,360 или данные обновления или удаления данных. 824 00:39:28,360 --> 00:39:29,870 >> Итак, что же это значит? 825 00:39:29,870 --> 00:39:34,300 Ну, предварительно установлены в CS50 IDE является программа под названием MySQL. 826 00:39:34,300 --> 00:39:37,050 Это бесплатно, с открытым исходным кодом базы данных, что супер популярным. 827 00:39:37,050 --> 00:39:40,590 Facebook, например, использует его для этого день, среди прочих инструментов, которые они используют. 828 00:39:40,590 --> 00:39:44,300 И много очень популярных веб-сайтов использовать это в значительной степени потому, что это быстро, 829 00:39:44,300 --> 00:39:45,230 и потому, что это бесплатно. 830 00:39:45,230 --> 00:39:46,820 Хотя, безусловно, существуют альтернативы. 831 00:39:46,820 --> 00:39:49,580 И некоторые из вас, возможно, плескаться с альтернативы для конечных проектов. 832 00:39:49,580 --> 00:39:55,330 >> Это снимок экрана, тем временем, из веб-инструмент называется PhpMyAdmin. 833 00:39:55,330 --> 00:39:58,260 Это совпадение, что это веб-инструмент также 834 00:39:58,260 --> 00:40:01,720 написана на языке РНР, но то, что он хотел сделать 835 00:40:01,720 --> 00:40:04,620 это дать нам на основе веб- Интерфейс к базе данных. 836 00:40:04,620 --> 00:40:07,180 Поскольку MySQL, как правило, является то, исторически, вам 837 00:40:07,180 --> 00:40:08,770 будут взаимодействовать только с с командной строки. 838 00:40:08,770 --> 00:40:10,811 И это было бы супер раздражает и тайной иметь 839 00:40:10,811 --> 00:40:14,487 ввести текстовые команды для выбора Данные, вставить данные и удалять данные. 840 00:40:14,487 --> 00:40:16,820 Таким образом, некоторые люди в Интернете написал веб-программы 841 00:40:16,820 --> 00:40:18,900 что просто дайте нам управлять данные в нашей базе данных. 842 00:40:18,900 --> 00:40:23,040 Это как дважды щелкнув по Excel и работает их веб-разрядных версий. 843 00:40:23,040 --> 00:40:26,370 >> И то, что вы собираетесь использовать это для в конечном счете, на следующей неделе, а не в р-установить шесть, 844 00:40:26,370 --> 00:40:28,680 но что-то построить называется CS50 Финансы, которые 845 00:40:28,680 --> 00:40:32,630 будет иметь базу данных пользователи, с именами пользователей и паролями, 846 00:40:32,630 --> 00:40:34,860 доллар суммы, которые они имеют в своих банковских счетов. 847 00:40:34,860 --> 00:40:37,280 Это будет то, что вы используете для хранения 848 00:40:37,280 --> 00:40:39,910 символы и величины запасов, что пользователи 849 00:40:39,910 --> 00:40:42,567 купил с помощью виртуальной долларов, что вы будете давать им. 850 00:40:42,567 --> 00:40:44,900 И это происходит, чтобы позволить пользователям чтобы зарегистрироваться для вашего сайта, 851 00:40:44,900 --> 00:40:47,190 так что даже ваши друзья можете настроиться на свой веб-сайт 852 00:40:47,190 --> 00:40:49,360 а на самом деле зарегистрируйтесь, войти, и поиграть 853 00:40:49,360 --> 00:40:52,807 и попытаться найти неисправность в коде, и попытаться найти ошибки в свой веб-сайт. 854 00:40:52,807 --> 00:40:55,390 И они просто зарегистрироваться, добавив себя, по сути, 855 00:40:55,390 --> 00:40:58,120 с помощью кода вы пишете в базу данных. 856 00:40:58,120 --> 00:41:02,470 >> Например, это быстрый скриншот что база данных может выглядеть. 857 00:41:02,470 --> 00:41:05,190 Это с одной из solutions-- прошлогодние 858 00:41:05,190 --> 00:41:07,760 это как мини-Excel подать, хранится в нашей базе данных, 859 00:41:07,760 --> 00:41:09,950 хранятся в этом программное обеспечение под названием MySQL. 860 00:41:09,950 --> 00:41:13,260 На левой стороне, видимо, У меня учитывая каждому пользователю уникальный номер. 861 00:41:13,260 --> 00:41:16,200 Во второй колонке, я дал все пользователь name-- мое 862 00:41:16,200 --> 00:41:16,880 среди них. 863 00:41:16,880 --> 00:41:21,430 А на правой стороне, Я дал им хэш. 864 00:41:21,430 --> 00:41:26,760 >> Теперь это действительно пароля, но это не простой текстовый пароль. 865 00:41:26,760 --> 00:41:30,160 Это зашифрованный пароль, если Вы будете, или хэш пароля. 866 00:41:30,160 --> 00:41:32,000 Который мы вернемся к скором времени. 867 00:41:32,000 --> 00:41:34,340 >> Но если вы когда-либо читал статья о том, как 868 00:41:34,340 --> 00:41:37,950 пароль в какой-то банк или некоторые веб-сайт может быть скомпрометирована, 869 00:41:37,950 --> 00:41:39,630 он может, как правило означать одно из двух вещей. 870 00:41:39,630 --> 00:41:42,780 Так что это просто отрывок из шести пользователей. 871 00:41:42,780 --> 00:41:45,460 Все теперь вы можете понять из с помощью взлома или трещин 872 00:41:45,460 --> 00:41:47,690 какие пароли наших шести народные. 873 00:41:47,690 --> 00:41:49,720 Но если вы когда-либо получали предупреждение или извинение 874 00:41:49,720 --> 00:41:52,803 от компании или на сайте поговорке, извините, хакер ворвались в нашей базе данных, 875 00:41:52,803 --> 00:41:56,360 Вы, вероятно, следует изменить свой пароль, что может означать? 876 00:41:56,360 --> 00:41:59,670 >> Ну, один, может означать, что Компания была более идиотский, 877 00:41:59,670 --> 00:42:03,630 и был хранения пароль в колонке, как это, в незашифрованном виде. 878 00:42:03,630 --> 00:42:05,840 Что означает, что противник, кто украл базу данных, 879 00:42:05,840 --> 00:42:07,440 буквально знает ваши имя пользователя и пароль. 880 00:42:07,440 --> 00:42:08,960 Это худший сценарий. 881 00:42:08,960 --> 00:42:11,710 И, как вы увидите в р-набор семь, так легко избежать. 882 00:42:11,710 --> 00:42:15,624 Там нет абсолютно никакого оправдания за что форма глупости в современном Интернете. 883 00:42:15,624 --> 00:42:18,540 Two-- и мы найдем несколько статей чтобы свидетельствовать тот факт, что это по-прежнему 884 00:42:18,540 --> 00:42:21,710 бывает, nonetheless-- два, может быть, противник 885 00:42:21,710 --> 00:42:23,840 украл эту версию базы данных. 886 00:42:23,840 --> 00:42:27,110 Какие еще вид плохо, потому что теперь они знают, что у меня есть шесть клиентов, 887 00:42:27,110 --> 00:42:29,270 Я знаю имена пользователей из этих шести клиентов, 888 00:42:29,270 --> 00:42:32,910 и я знаю, зашифрованный версии, или версии, HASHED 889 00:42:32,910 --> 00:42:34,340 паролей этих шести клиентов. 890 00:42:34,340 --> 00:42:37,010 Но любой из вас, кто может сделал [? Хакер 2?] 891 00:42:37,010 --> 00:42:41,150 где вы трещины пароли, или взял Взгляд на этой версии проблемы 892 00:42:41,150 --> 00:42:46,280 набор, почему это до сих пор мало беспокоит если противник знает ваш хэш 893 00:42:46,280 --> 00:42:47,435 пароли? 894 00:42:47,435 --> 00:42:49,732 >> АУДИТОРИЯ: Потому что они могли введите целый словарь 895 00:42:49,732 --> 00:42:50,690 в хэш-функции. 896 00:42:50,690 --> 00:42:54,520 И если ваш пароль словарь слово, [? они могут просто match--?] 897 00:42:54,520 --> 00:42:57,640 >> Дэвид Малан: Ровно, противник можно просто написать код, как и некоторые из вас 898 00:42:57,640 --> 00:43:00,526 сделал для [? Хакер?] 2, в котором вы перебора 899 00:43:00,526 --> 00:43:03,400 все слова в словаре, или все возможные комбинации А 900 00:43:03,400 --> 00:43:06,610 через Z и один через nine-- которая звучит, как много, и это. 901 00:43:06,610 --> 00:43:08,361 Но для компьютера, это чертовски быстро. 902 00:43:08,361 --> 00:43:10,610 И в самом деле, что было точка [? Хакер 2,?] Был 903 00:43:10,610 --> 00:43:12,540 принять вещи, которые буквально выглядит так, 904 00:43:12,540 --> 00:43:14,900 и обратный инжиниринг то, что было на самом деле. 905 00:43:14,900 --> 00:43:17,270 >> Таким образом, мы будем смотреть на то, как мы можем хранить это более эффективно. 906 00:43:17,270 --> 00:43:20,210 Оказывается, к счастью, в MySQL, там собираются быть типы данных. 907 00:43:20,210 --> 00:43:22,800 И один из забавных частей о проектирование баз данных, чтобы быть честным, 908 00:43:22,800 --> 00:43:25,810 на самом деле решить для себя как вы должны представлять данные? 909 00:43:25,810 --> 00:43:29,630 Если вы представляете, как номер телефона целочисленное, как большой номер, или длинный? 910 00:43:29,630 --> 00:43:31,630 Или вы на самом деле сделать это как последовательность символов? 911 00:43:31,630 --> 00:43:33,780 И может быть очень нетривиальные последствия этого. 912 00:43:33,780 --> 00:43:36,714 >> На самом деле, один из ранние, веселые истории герман 913 00:43:36,714 --> 00:43:39,880 когда Марк Цукерберг строит Facebook, он был изначально написан на, 914 00:43:39,880 --> 00:43:42,300 и до сих пор в значительной степени написана в PHP. 915 00:43:42,300 --> 00:43:45,400 И одна из самых больших проблем, они столкнулись рано было масштабирования. 916 00:43:45,400 --> 00:43:48,820 Когда они продолжали добавлять школу после Школа после школы, по моим сведениям, 917 00:43:48,820 --> 00:43:51,639 один из оригинальных решений по сути, скопируйте и вставьте 918 00:43:51,639 --> 00:43:53,430 некоторые из баз данных и часть кода, 919 00:43:53,430 --> 00:43:55,346 так что Гарвард был работает на собственном сервере, 920 00:43:55,346 --> 00:43:56,995 и Массачусетского технологического института был запущен на собственном сервере. 921 00:43:56,995 --> 00:43:59,120 И это было, почему, для некоторых из вас, кто, возможно, помните, 922 00:43:59,120 --> 00:44:01,510 Вы не могли иметь друзей в других сетях. 923 00:44:01,510 --> 00:44:05,050 >> Вы, наверное, нет друзей на Массачусетский технологический институт Гарвардский или 10 или около того лет назад, 924 00:44:05,050 --> 00:44:07,467 но вы не могли занимать сетей для частично по этой причине. 925 00:44:07,467 --> 00:44:10,550 И одна из самых больших проблем для Марк и для компаний, таких как Facebook 926 00:44:10,550 --> 00:44:13,460 на самом деле обработки сотни и тысячи и миллионы 927 00:44:13,460 --> 00:44:14,460 запросов в секунду. 928 00:44:14,460 --> 00:44:16,501 Таким образом, то, что мы начнем говорить об этой неделе 929 00:44:16,501 --> 00:44:19,860 действительно будет уместно, чтобы написание хорошей программы, и в народе 930 00:44:19,860 --> 00:44:23,040 успешные инструменты, может обрабатывать большое количество пользователей. 931 00:44:23,040 --> 00:44:25,460 >> Таким образом, мы будем говорить о том, как индексации и поиска, 932 00:44:25,460 --> 00:44:26,910 но это на сегодня. 933 00:44:26,910 --> 00:44:28,780 Мы будем видеть Вас в течение более в среду. 934 00:44:28,780 --> 00:44:31,780 935 00:44:31,780 --> 00:44:33,902 >> [МУЗЫКА - "Seinfeld" ТЕМА] 936 00:44:33,902 --> 00:44:35,943 Дэвид Малан: вы можете это, и вычесть из него. 937 00:44:35,943 --> 00:44:38,859 И вы не должны придерживаться некоторые заранее определенные объем памяти. 938 00:44:38,859 --> 00:44:40,580 Ну, то, что, что будет называться? 939 00:44:40,580 --> 00:44:42,369 >> СПИКЕР 1: Ну, что происходит? 940 00:44:42,369 --> 00:44:43,535 СПИКЕР 2: Что вы имеете в виду? 941 00:44:43,535 --> 00:44:44,451 Он читал лекцию. 942 00:44:44,451 --> 00:44:47,650 Дэвид Малан: И мы можем использовать Функция называется таНос в memory-- 943 00:44:47,650 --> 00:44:50,050 >> СПИКЕР 1: Почему не руки движется? 944 00:44:50,050 --> 00:44:52,450 >> СПИКЕР 2: Ну that's-- Вы знаете, что это нормально. 945 00:44:52,450 --> 00:44:57,162 Это просто, как он только что сарделек висит. 946 00:44:57,162 --> 00:44:59,040 >> СПИКЕР 1: Это нормально? 947 00:44:59,040 --> 00:45:03,096 >> СПИКЕР 2: Да, я думаю, что мы только предположить, что он случайно 948 00:45:03,096 --> 00:45:06,840 заменить его дезодорант с суперклеем. 949 00:45:06,840 --> 00:45:07,608