[Powered by Google Translate] [Неделя 8]
[David J Малан] [Harvard University]
[Это CS50.] [CS50.TV]
>> Добро пожаловать обратно.
Это CS50, и это является началом 8-й неделе.
Пару возможности на этой неделе,
среди них этот разговор здесь, в которую еду будут обслуживаться.
Для получения дополнительной информации проверить слайды, которые находятся в сети.
А также еще одно событие этой недели наши собственные Томас Carriero.
Он один из бывший глава CS50 в обучении ребят, которые сейчас находится на Dropbox,
Он парень, который соединил нас с вами знаем, что,
так что если вы хотите больше, что голова их разговор этим днем ​​для Dropbox и многое другое.
CS50 обед в эту пятницу.
У присоединиться к нам, если вы сможете, 1:15, как обычно, Огонь и лед.
>> И теперь мы погрузиться в то, что называется семинары.
Наши CS50 семинары, напомним, эти факультативные занятия во главе с учением стипендиатов
и конечно помощники и друзья, конечно,
Люди из группы в кампусе называют ABCD, которая представляет собой группу
технофилы на территории кампуса, а также группа под названием ЖКХ,
Общество Гарвардского компьютер, студентов, которые аналогичным заинтересованы в вычислениях.
Реестр в этом году семинаров включает в себя семинары по Android и IOS и JavaScript
и PHP, Unix, Vim, и больше, так понимаю, что эти семинары идут вверх.
Если вы хотите, чтобы RSVP для любого из них отправиться в URL, что там.
Мы будем затем разместить на веб-сайте курса времена и места, как только они будут завершены.
Но знаю, стоит есть 5 году до семинары доступны в Интернете,
многие из которых все еще очень много текущей точки зрения технологии вы могли бы
хочу играть с для окончательного проекта, так что голова там в течение некоторого доступны видео их.
>> CSS, те из вас, кто знаком с CSS уже,
что это такое в двух словах?
Что такое CSS?
Это каскадные таблицы стилей, и что это значит?
Что это сделает для нас, CSS?
Ладно, давайте согреться проще один, HTML, язык разметки гипертекста.
Что это для нас сделать?
Любой вообще?
Это становится очень неудобно задавать эти вопросы.
HTML, язык разметки гипертекста.
Да? Нет?
[Неразборчиво ответ студента]
Хорошо, хорошо, это позволяет размечать текст для отображения в веб-браузере.
Это не язык программирования.
Это действительно язык разметки, который означает, что она предписывает браузеру, как отображать
Информация, таким образом, простейшие воплощение этого, как мы видели
это то, супер просто, как boldfacing, открывающая скобка б замкнутый кронштейн говорит
сделать этот текст жирным, и это на самом деле лишь один из многих способов
, в котором мы можем сделать это, и действительно, в эти дни лучше подход
для стилизации ваших веб-страниц, делая вещи, жирным шрифтом и курсивом
и по центру и обоснованным и тому подобное, не сделано с помощью HTML-тегов только
а с техникой называют CSS, каскадные таблицы стилей.
Это язык сам по себе.
Это тоже не является языком программирования, но-
всем, это Дэн, который держит присоединились к нам сегодня.
Некоторые технические трудности. Не проблема.
>> CSS позволяет стилизовать страницу
, установив, что называется свойствами, так что давайте посмотрим на эту
путем некоторые основные примеры.
Отпустите меня в прибор сегодня.
У меня есть источник 8 понедельник каталог здесь,
и я собираюсь идти в каталог CSS, где мы имеем целый букет
файлов ждет нас прямо здесь,
и в этой папке у нас есть, например, search0.html в прошлый раз.
Теперь вспоминаю с search0 мы вышли на эту заметку
от рода осуществлении Google или действительно только передний конец для него неделю назад,
и заметил, что у нас было несколько новых тегов нет.
У нас был h1 для большой, жирный заголовок,
формы, которые позволили нам на самом деле есть HTML форма для ввода данных пользователем.
Действия, какой был смысл действий атрибутом
на HTML тега формы?
В чем был смысл этого действия?
Я просто сделаю это сегодня.
Действие является местом, где форма будет представлена.
Дело в том, что говорит, действие = "google.com / поиск"
означает, что когда пользователь нажмет кнопку или эквивалент
все поля формы заполнены они будут отправлены не на нашем сервере
или наш прибор, а к этому конкретному URL в Google.
И метод, который он собирается использовать называют получить,
и получить, на данный момент, это просто техника для передачи информации по веб-серверу
путем URL, так что давайте бросим быстрый взгляд назад, как это работает.
>> Обратите внимание, что есть вход, чье имя д
, тип которого является текст, а затем второй вход типа представляют
, значение которого CS50 поиск, и действительно, если мы откроем этот файл здесь,
search0.html, это супер простой форме,
и если я ищу что-то вроде компьютерной науки
а затем нажмите ввод или нажмите на CS50 поиск
заметить, что то, что происходит за пределами добраться до Google
Я специально закончили в этом URL в верхней части,
google.com / поиск? Q = компьютер + наука,
и информатике, очевидно, что я набрал дюйма
+ Просто означает, что там пробел был,
и это сделано в браузере, просто чтобы убедиться, что нет никаких
путаница и пробелы в фактических URL.
И тогда д, конечно, имя параметра.
Мы не видели, как мы, программист, может на самом деле доступ Q пока нет.
Можно предположить, что Google знает, что делать с этим здесь,
но мы вернемся туда в свое время сегодня.
>> Но позвольте мне взглянуть, а не на search1.html,
, которая выглядит немного по-другому, потому что я решил, что эта форма здесь было немного хромает.
Я имею в виду, это в левом верхнем углу.
Там на самом деле никакой эстетики, и поэтому я хочу, чтобы стилизовать эту
немного больше, как Google, чья домашняя страница, напомним,
Даже если вы не можете посетить его, что часто, похоже, об этом сегодня на Хэллоуин.
Если мы вместо этого открывают версии 1 этого файла, поиск 1.html, я его центру.
Тем не менее довольно уродливые, но по крайней мере теперь я начал контролировать эстетику этой странице,
не только разметка их.
Давайте взглянем на поиск 1, и там действительно только одно различие здесь,
, которые могут выскочить на тебя, а может и нет,
но то, что одна строка или отрывок разница?
>> Там в это атрибут стиля, так что получается, что в HTML
большинство элементов, большинство тегов может иметь атрибут стиля на них,
и внутри этого стиля атрибута в кавычках,
и что строка в кавычках является CSS.
Вы можете поставить каскадных таблиц стилей там
, указав его в качестве имени свойства
двоеточия следует значение.
Это своего рода несчастных дизайнерское решение несколько лет назад
, что CSS это язык сам по себе,
но синтаксически это очень отличается от HTML.
В этом случае, мы видим, что внутри моего веб-страницы, которые написаны на HTML,
У меня есть CSS внутри этих кавычек, и Конвенции о CSS
является то, что у вас есть то, что называется свойство следует, опять же, толстой кишки,
после чего значение этого свойства, так что нет знака равенства.
Там нет дополнительных кавычки.
Это просто, это разделенных двоеточием пару ключей значение,
и текстовая строка делает именно то, что он говорит.
Это выравнивает текст в тело страницы, которые действительно кишки страницы,
в центре.
>> Хорошо, конечным результатом то, чтобы быть ясно, заключается в следующем.
Не все, что сексуальнее, но по крайней мере это по центру и немного больше похоже на реальную Google.
Но что, если я вместо этого открывают версия 2 настоящей
и указать здесь новый тег вообще?
Теперь в голове моей странице, которая ранее была только какой тег
Во всех предыдущих примерах?
Это просто было это, название.
Минуту назад глава теги выглядела следующим образом.
Теперь вместо него есть стиль внутри тега это,
и это тоже, я прошу прощения, синтаксически выглядит очень отличается от HTML,
но вы привыкнете к нему, в результате чего внутри стиля тега
Теперь я могу вынести за скобки то, что было минуту назад
атрибутов, атрибут стиля, и я могу поставить его на самый верх моей странице.
>> Почему?
Ну, это шаг к очистке вещей, так же, как в письменной форме C код
мы будем иногда писать функции для исключения общей функциональности.
Это просто немного чище, чтобы начать факторинга из таких вещах, как эстетика
в одном месте вместо того, чтобы все это пересыпать всей вашей HTML.
Это тоже делает то, что он говорит, хотя есть немного нового синтаксиса.
Это вот селектор, и тело просто означает, выберите элемент тела
и применить следующие свойства к нему.
Ну, собственность точно так же.
На всякий случай я добавил точку с запятой в конце концов,
которая имеет тенденцию быть конвенцией, и я обернут всю эту собственность
в фигурные скобки, потому что я действительно может иметь различные вещи.
Я мог бы на самом деле сказать что-то вроде цвета: синий;
>> Теперь это тоже не собирается быть на шаг в сторону все, что угодно красивее,
но если бы я сейчас вернуться к версии 2 я по крайней мере сейчас сделали тело мое
страницы текста все синие.
Кнопка остается тем же, потому что это вход. Это не чистый текст.
Но все остальное, что текст, как CS50 поиск наверху, на самом деле синие.
Опять же, все, что мы сделали сейчас, это удалить из организма тегов, заметьте,
атрибут стиля, и мы учитываться это здесь.
Это не огромный шаг вперед, но если мы возьмем это еще один шаг вперед
заметить, что мы можем сделать в этой третьей версии здесь.
>> В search3.html веб-страницы почти идентичны
кроме того, что новый тег сейчас?
Link, так что эта не очень метко назвал
потому что вы не связывая в смысле гиперссылка.
Скорее всего, вы делаете что-то вроде эквивалента # включить в C
причем ссылка тега с атрибутом HREF
и отн атрибута говорит, идти вперед
и копировать вставить содержимое файла с именем search3.css прямо здесь, по существу.
Это не совсем то, что, но это дух его.
Он говорит, что идти с открытым файлом, search3.css,
и относиться к нему, как будто пользователь набрал его прямо здесь, в главе страницу
так же, как я сделал в предыдущем примере.
Search3.css, между тем, довольно прост.
Это действительно просто содержит именно то, что было минуту назад
в стиле тега, но я учтены это здесь в свой собственный файл.
>> Даже если мы не потратили много времени на все это в HTML или веб-программированию
просто интуитивно то, что мотивация, пожалуй, вынося
это небольшой фрагмент даже CSS в отдельный файл
, а затем включить его с этой ссылке тега здесь?
[Неразборчиво ответ студента]
Ладно, это легче читать в том смысле, что у вас есть CSS в файле CSS.
У вас есть HTML в HTML файл, так что это более читаемым в этом смысле.
Что еще может быть убедительным? Да.
[Неразборчиво ответ студента]
Да, так что вы можете включить его много раз, так что сейчас мы делаем это
Основные примеры с отдельными файлами, но предположим, что вы на самом деле делает
реальный сайт, как вы будете на PSET 7 или ваш окончательный проект, возможно,
и вы хотите иметь несколько веб-страниц, как, безусловно, встречается на
фактические World Wide Web, и было бы вид хромого
иметь, чтобы скопировать и вставить тот же синий цвет
и тот же текст выровнен центром в каждой из этих страниц.
Скорее, это имеет смысл вынести за скобки, так же, как мы сделали в C
с. файл ч, положил его в одном месте,
В этом случае search3.css, а затем позволить любому файлу
В ваш сайт на самом деле включить этот файл через этот тег здесь, в строке 16.
Как это обычно и бывает, мы начали с версии 0, что вид работ
но не обязательно лучшие, и с каждым шагом,
Поиск 1, поиск 2, и теперь поиск 3 мы взяли эти шаги ребенка
на проекты, которые являются немного более чистым и более подготовительных
Для более сложных страниц, которые мы могли бы сделать в будущем.
>> Позвольте мне открыть один последний пример здесь, чтобы показать
еще более стилизованным страницы, но сначала давайте посмотрим на HTML.
Это search4.html, и заметил, что структурно это почти то же самое
за исключением введения нового тега Div.
Div тег, который вводит деление на этой странице.
Вы можете думать об этом как о невидимом прямоугольнике.
Это своего рода создает полосу область на веб-странице
, который можно стилизовать все сразу.
Что я сделал здесь заключается в следующем.
Внутри моего тела тега, который был там все время,
Я говорю, что создает подразделение странице здесь по линиям 45 до 47,
и это означает, по существу, дайте мне невидимый прямоугольник в верхней части страницы.
Тогда дайте мне второй прямоугольник, хотя и невидимым, ниже,
и идентифицировать его по имени содержимое, а затем, наконец,
дай мне третий раздел страницы в нижней части
называется ID.
Мы увидим, почему я сделал это через минуту,
но концептуально у меня есть заголовок дивизии.
У меня есть содержание подразделения, и у меня есть подвал разделение страницы
хотя это только в разметке.
Пользователь не увидит 3 прямоугольника,
но вроде структурно там, за кулисами
они на самом деле.
>> Теперь, кто заботится? Почему на самом деле это сделать?
Все остальное на странице так же, как мы видели раньше.
Вот моя форма. Вот мой вклад, мой вход, строки и так далее.
Вот изображение, хотя, таким образом, мы будем видеть, куда это пришло от всего минуту.
Вот подвал, который является новой, только потому, что я хотел бы представить
несколько содержанием здесь.
Если мы прокрутку вверх заметить, что ID этой дел является заголовок.
ID этой дел является содержание, и идентификатор это один колонтитул.
И, как следует из названия, когда у вас есть ID атрибута
в HTML, по определению, оно должно однозначно идентифицировать
один из элементов, один из тегов на странице.
Бремя полностью на вас помнить, что у вас есть заголовок ID уже.
У вас есть подвал. У Вас есть содержание ID уже.
Компьютер не собираюсь выяснить, что доступно ID для вас,
так что вы можете случайно дать 2 ID тегов заголовков,
и это было бы просто неправильно.
>> Вы должны иметь в виду, что вы создали,
но как только вы это сделали, обратите внимание, что мы можем сделать здесь.
Теперь я могу указать в моем стиле тегов в верхнем
или, что эквивалентно, в моем файле CSS, если бы я до сих пор используют эту версию,
Я могу сказать # заголовка, и что это означает, что все, что тег
В этом веб-страница имеет идентификатор заголовка
и #, просто человеческие конвенции, представляет ID.
Резкое знак или знак фунта представляет ID.
Заголовок это имя, которое я дал ему.
Это означает, что применять это свойство CSS
на любой тег на этой странице, носит идентификатор заголовка.
То же здесь дело.
Применить эту собственность, которая бывает то же самое, любой элемент
с идентификатором содержимого, а затем здесь
заметите, что я стал немного любитель с колонтитул.
Любой элемент с идентификатором подвал, из которого не может быть только один, по определению,
пойти дальше и сделать свой шрифт меньшего размера,
ее вес шрифта смелый, его маржа 20 пикселей.
>> Что это значит?
Это просто маржа по верхней, нижней и левой и правой.
Это означает, дайте мне 20-пиксель невидимым краем вокруг него
просто нажать все остальное от него немного, как вы могли бы сделать в Word,
Microsoft Word или страницы или тому подобное.
И тогда текст по центру.
Давайте посмотрим на конечный результат, а потом мы вернемся до одного оставшегося фрагмента CSS там.
Это 4-й версии, наш последний для поиска примеров, и это гораздо, гораздо сексуальнее.
Сейчас, честно говоря, я просто в поисковой системе Google "Google шрифта логотипа генератор".
И это позволило мне создать GIF, формат изображения, которое выглядит как, что там.
В самом деле, вы можете сделать это слишком.
У нас есть "Google шрифты, логотип генератор".
>> Давайте посмотрим, если мы можем это сделать.
Хорошо, я думаю, что это сайт который я использовал.
Мы можем сказать, EC 10, например, и сделать их самостоятельно.
Вы можете играть с этим в течение всего дня, а затем нажмите правой кнопкой мыши
, а затем загрузить фактического GIF, который это все, что я сделал.
И действительно, вот почему в моем HTML, напомним, сюда
У меня был образ тег, который мы видели на прошлой неделе кратко
источником которых является logo.gif.
И то, что снова была мотивация за то, что это альт атрибут,
это альтернативный атрибут?
Да.
[Неразборчиво ответ студента]
Хорошо, таким образом, 2 причинам действительно, если браузер не может потянуть изображение
потому что у вас медленное подключение к сети или изображений поврежден
или что-то подобное, по крайней мере, человек может видеть "CS50 поиск"
, а затем и доступности причинам.
Если у вас есть пользователь, который является слепым и используется для чтения с экрана
и поэтому, очевидно, не может видеть образы, которые они могут по крайней мере
услышать текст, если их компьютер говорит им.
>> В общем, это лучшая практика, когда речь заходит о доступности страниц
так что даже пользователи в этой ситуации может услышать или увидеть, так сказать,
что это такое, что это на вашей странице.
Там еще одна вещь, которую я сделал здесь
который немного интересной, и мы будем видеть больше об этом в задачу установлено 7
через один из шорт во главе с одним из учения товарищей.
Но # содержанию относится к тегу
ID которого является содержание, но тогда есть пробел, и затем есть слово вход.
Ну, что интересного CSS является то, что вы можете
см. тегов в страницу рода иерархически,
и то, что этот фрагмент средствами CSS, это найти тег
ID которого является содержание, а затем применить следующие свойства
для всех входных тегов, которые являются потомками содержания,
, что в том, что с отступом внутри него.
Отступы, опять же, важно только к компьютеру, а не к человеку,
но по соглашению мы отступ вещи, как мы углубиться в страницы,
таким образом, это означает, применяются край на 5 пикселей любого элемента ввода
что где-то внутри или вложены в
элемент с идентификатором содержания.
>> Кто что обратиться?
Ну, там на самом деле именно эти 2 парня здесь.
Обратите внимание, что внутри вида есть 2 входа,
как там было на все эти примеры.
Но обратите внимание, что эти 2 входа случится быть вложены,
хотя и немного глубоко, пару слоев отступы,
внутри тега с идентификатором содержания.
Что это значит?
Если мы идем в браузер здесь можно увидеть очень немного-
Позвольте мне увеличить, то есть немного отступов между кнопкой
и между текстовым полем.
>> Позвольте мне временно отключить эту функцию.
Отпусти меня до моего CSS, и позвольте мне идти вперед и только
изменить эту маржу от 5 до 0 пикселей пикселей.
Позвольте мне идти вперед, то и сохраните файл, вернуться к поисковой системе
и перезагрузить, и смотреть на середине страницы.
Все, что было сжаты вместе, и, когда я впервые взбитыми этом примере до
Я думал, что выглядело глупо с текстового поля, а затем кнопку непосредственно под ним.
Я хотел, чтобы дополнить его немного, так что я представил поля.
То, что мы не будем делать в лекции проходят через несколько десятков
CSS свойства, которые существуют, потому что, опять же, есть такие вещи, как размер шрифта,
шрифта, край, выравнивание текста, и несколько десятков других,
и мы будем называть вас проблемы установлено 7 различных учебники онлайн
и ссылки, которые позволяют подобрать эти вещи.
Но то, что действительно важно в конце дня
>> , чтобы понять, как эти вещи не применяются.
Опять же, если мы имеем в стиле теги которой
может пойти селекторы, вроде идентификаторов, которые определяют
к которому вы хотите применить эти свойства,
а затем вы кладете свойства как ключевые пары значений
разделенных двоеточием, а затем закончил с запятой,
или вы можете копировать все это, и положить его в отдельный файл CSS
сама по себе.
Ладно, любые вопросы по концепции
или большую картину CSS?
Вы будете снова видеть больше его в PSET 7,
но мы будем держать это вообще довольно просто.
Нет? Хорошо.
Это время для реального языка программирования,
и мы вернемся к немного CSS в виде примера.
PHP на самом деле удивительно доступным языком
в том, что это синтаксически почти эквивалентно C.
Другими словами, если вы знаете C, вы знаете, по большей части PHP,
по крайней мере, синтаксически, хотя есть некоторые новые функции
и некоторые новые понятия, которые мы должны будем посмотреть.
>> Но по большей части, теперь, когда мы переходим от С до PHP
Большинство новых вещей действительно по большому счету,
как вы используете язык для программ на веб-в отличие от
в командной строке или в строке мигает, как мы делали до сих пор.
Для сравнения, особенно с PSET 7 и окончательный проект вперед,
у воспользоваться этим URL здесь, если вы хотите, чтобы читать на формальности PHP.
Это на самом деле хотел бесплатный онлайн учебник эффективно,
и вы также обнаружите, что то, что действительно хорошо о PHP
является то, что существуют сотни функций, которые приходят с ней,
, тогда как в C вы не обязательно иметь доступ к
больше функций, чем было в математическую библиотеку, CS50 библиотеки.
В PHP и многие современные языки, Python и Ruby, среди них,
Вы получаете доступ к так много больше функций, а значит, вы получите писать
намного меньше кода, потому что вы можете стоять на плечи других людей
, которые уже написаны некоторые вещи для вас.
>> Давайте краткий обзор синтаксиса PHP, а затем написать несколько примеров.
Что приятно о PHP в первую очередь
Есть нет главной функции.
Если вы хотите написать программу в PHP вы только начинаете писать код,
и вам не придется беспокоиться о главном.
Там нет Int. Там нет возврата.
Там нет ARGV, агдс, что требуется, когда вы пишете программу.
Вместо этого вы можете просто начать писать код, и это частично
потому что PHP является то, что называется интерпретируемый язык.
C был составлен, и он был составлен в том смысле, что вы начинаете
с исходным кодом, запустить его через Clang, который является компилятором,
и в конечном итоге через некоторое количество шагов, которые вы получите код объекта, 0 и 1.
PHP и Python и Ruby, и Перл и др.
различные типы языков в том, что вы не компилировать их.
Вы не идете с исходным кодом 0 и 1.
Вы просто запустить исходный код, и вы запустите исходный код
пишите в обычный текстовый файл, заканчивающийся на. PHP в данном случае
вместо. с, что делает программа на компьютере
оно буквально интерпретирует код строка за строкой за строкой.
>> Другими словами, вместо того, чтобы писать программу и запустить программу
непосредственно вам, а написать программу с файлом заканчивающиеся на. PHP.
Затем вы запускаете программу под названием фактической php.exe, если вы на Windows,
или просто PHP, если вы на Mac OS или Linux,
и Вы предоставляете в качестве вклада в программе PHP собственного исходного кода,
и его цель в жизни, чтобы читать ваш код сверху вниз, слева направо,
и делать все, что вы сказали это делать.
>> Давайте посмотрим, что это будет означать, синтаксически.
В PHP у нас есть условия.
На этом слайде идентичен тому, что вы видели в неделю 1
потому что синтаксически условиях, IFS и IFS еще и еще в PHP
выглядеть точно так, как это.
Когда дело доходит до логические выражения, что они собираются выглядеть точно так, как это.
Когда дело доходит до логического умножения вещи вместе, как булевских это будет выглядеть именно так.
Переключатели выглядят одинаково, и вы получите дополнительное преимущество в PHP
, что переключатели в C можно было только включить символ или Int.
Вы не могли бы перейти на строку.
В PHP вы можете иметь выражение
, что является переменной, содержимое которого строка,
и вы реально можете сделать сравнение строк в реальном интуитивно понятным способом,
Не указателя сравнения, для того, чтобы решить, стоит ли делать случае я или J или что-то еще.
Мы увидим, что потенциально в скором времени.
>> Петли слишком чудесно то же самое.
Для петли имеют инициализация, условие, и некоторое количество обновлений.
В то время как петли, также существуют в PHP.
Сделайте то время как петли, также существуют в PHP,
и массивами существует в PHP, но вот где синтаксис начинает становиться немного по-другому,
но принципы те же, и понятия действительно одни и те же
как они были в неделю 0 с нуля.
Прежде всего, это знак $.
Это было дизайнерское решение в PHP которому любой переменной
В PHP дизайн начинается с $ знака.
Там нет больше X, Y, Z. Это теперь $ X, $ Y, $ Z просто так.
Это что-то держать в уме, и теперь на правой стороне
это похоже на массив,
но мы используем квадратные скобки здесь.
В PHP и JavaScript в, как мы видим в конечном итоге,
объявить массив вы открыты квадратные скобки и закрыл квадратные скобки,
и тогда у вас есть список разделенных запятыми значений, будь то целые
или строки символов или, что вы хотите, внутри этого выражения нет.
>> Теперь, как мы делали нечто подобное в C?
Что было синтаксис для статически объявлении массива известного числа?
Это было фигурные скобки, так что небольшая разница здесь, но и в PHP
и в конечном итоге наличие он просто использует квадратные скобки, так на самом деле
Только интересная деталь здесь является знаком $ на имя переменной
, а также в квадратных скобках, и есть одна любопытная вещь
, который был опущен, а на левой стороне знак =.
Чего не хватает, что мы были требующая уже несколько недель? Да.
[Неразборчиво ответ студента]
Размер, так что нет никакого упоминания о размере массива.
Честно говоря, нет никакого упоминания в квадратных скобках в левой части
знака =, и, что еще отсутствует в строке?
Да. >> [Неразборчиво ответ студента]
Типа, так что интересно, в частности, о PHP
является то, что она не является строго типизированных языков, как С,
и это сильно набрал в том смысле, что вы должны сказать символов,
Вы должны сказать INT, вы должны говорить поплавка.
>> В любое время вы хотите, чтобы переменная вы должны сказать Clang, что его тип.
PHP немного ленивее.
Он свободно набраны в том смысле, что
Вы можете иметь поплавки и символов и строк
и Интс и так далее, но сам язык
на самом деле не волнует, что вы положите внутрь переменной.
Вы не должны информировать его заранее, какой тип данных
собирается в переменную.
Это полностью зависит от вас, так что это хорошая
в том, что вам не придется беспокоиться, как много о типизации данных
и беспокоиться, что ваши аргументы и так далее.
Это также означает, в конечном счете функций в PHP собираетесь быть в состоянии вернуться
либо Int большую часть времени, и, возможно, раз в то время
они будут возвращать логическое значение, логическое значение FALSE, например, чтобы показать, что что-то пошло не так.
Это дает нам некоторый потенциал роста, но и сделает нас вроде дизайна
немного ленивее, когда дело доходит до ввода данных.
>> Что еще иметь в виду здесь?
Переменные выглядят вполне устраивает, так что $ S = "привет, мир".
Это, возможно, выводимой из предыдущего примера,
и у нас есть другой тип цикла.
Это одно мы на самом деле видим раз в то время, так как это очень удобно,
Еогеасп построить.
В этом случае цикл по каждому элементу происходит внутри его скобками 3 слова как правило,
$ То первое, что и массив вы хотите перебрать членов,
Затем буквально ключевое слово, а затем, наконец,
другой переменной имя, которое вы получаете на выбор.
Это может быть Foo, Bar, или элемент,
и то, что эта конструкция делает
, если массив $ содержит 10 элементов
на каждой итерации этого массива, простите, на каждой итерации этого цикла
переменную элемент будет обновляться
первым элементом массива, то второй элемент массива,
то третий элемент массива, тем самым устраняя необходимость
сделать немного раздражает квадратных обозначение кронштейна и
$ Я для того, чтобы индекс в массиве.
PHP делает все это за вас и на каждой итерации
просто вручает вам следующий элемент из массива
без необходимости знать или заботиться о его числовое расположению индекса.
>> И тогда, наконец, на данный момент, есть еще одна особенность PHP
что это будет очень полезно, особенно когда мы начинаем программирования в Интернете,
и это известно как ассоциативный массив.
Массивов, что мы знаем до сих пор, как 20 секунд назад
и в течение последних 8 недель массивы с числовыми индексами,
рода традиционных массивов, где индексы целых чисел,
0, 1, 2, на всем пути вверх.
Ассоциативные массивы являются гораздо более мощным.
Они позволяют иметь произвольные клавиши,
произвольных индексов и произвольные значения.
В то время как в традиционных массивов это 0, 1, 2,
в ассоциативный массив, вы можете иметь индекс
или ключ Foo, значением которого является бар.
Вы можете иметь еще один ключ, имя которого Баз и значение которого qux.
>> Опять же, глупые компьютерные науки общие имена переменных здесь,
но дело в том, что этот массив не имеет кронштейн 0 или кронштейн 1.
Это вместо того, придется Foo кронштейн и кронштейн Баз.
Это намного более универсальны в том, что мы собираемся, чтобы иметь возможность сопоставить
слова с другими словами, ключи со значениями совершенно произвольно,
и мы собираемся, чтобы иметь возможность получить эти значения обратно в фиксированное время
потому что под капотом, что ассоциативный массив
действительно представляет собой хэш-таблицу.
Напомним, что хеш-таблица позволяет разместить в некоторых входных
хотели положить в слова Давида, если вы хотите, чтобы вставить Давида в некий словарь,
и тогда вы получите обратно некоторое значение обычно.
В случае правописания, истинным или ложным.
Дэвид или что слово или нет в словаре.
Ассоциативный массив, на самом деле просто хэш-таблицы,
но это гораздо более удобным воплощением его.
Как мы увидим, это будет, чтобы позволить нам сделать некоторые вещи
Очень, очень легко.
>> Давайте взглянем на некоторые основные PHP
примеры и посмотрим, что мы можем сделать с этим языком.
Позвольте мне идти вперед и открывать в нашей исходный каталог сегодня
файл с именем hello1.php.
Этот файл больше комментариев, чем реальный код,
так что позвольте мне на самом деле удалить все комментарии из файла
и представить Вам возможно, самый простой PHP программу прямо здесь.
5 линий, а некоторые из них являются пробелы,
так что заметить некоторые ключевые различия здесь.
Файл называется hello1.php.
Самая первая строка, хотя, <? PHP.
Похожие по духу к HTML,
, что последовательность символов, сообщает компьютеру
"Эй, компьютер, вот программа, которую мы находимся в в PHP."
Он уверен, что это не смутило, что это какой-то другой язык.
Линия 2 является интересной пробел.
3-я линия наш старый друг Printf,
на этот раз в контексте PHP.
PHP имеет свою собственную версию Printf, который ведет себя точно так же,
Так что это только собирается печатать "Hello, World".
И тогда этот тег противоположной здесь,>, означает, что именно для моего PHP кода.
>> Давайте посмотрим, как управлять этим.
Я собираюсь вернуться в свою окне терминала здесь.
Я собираюсь пойти в мою PHP директорию.
Обратите внимание, что у нас есть целая куча файлов, первый из которых является hello.php.
Позвольте мне идти вперед и выполнить это, hello1.php, введите.
Доступ запрещен. Хорошо.
Как мы зафиксированы такие вещи, как это в прошлом?
Что это? >> [Неразборчиво ответ студента]
Нам нужна читать и писать, но позвольте мне сделать LS-л.
Помните об этом несколько загадочно выход которого hello1
кажется, для чтения и записи мной
но читается всеми остальными.
Оказывается, это на самом деле не является шагом в правильном направлении.
Разница, опять же, с интерпретируемый язык
это вы не запустите программу напрямую.
Вы, а не работать переводчиком и передать его код
что вы написали так что он может интерпретировать это строка за строкой.
В этом случае переводчик или программу, которую я на самом деле хотят работать
буквально называется PHP.
>> Где-то на этом жестком диске аппарата есть программа
написал кто-то другой называется PHP, или на ОС Windows php.exe.
Что я буду делать здесь, я буду реально работать PHP
но дать ему в качестве аргумента командной строки кода, который я написал,
и тогда я буду масштаб и нажмите ввод.
Она работает моя программа для меня, сверху вниз, слева направо.
Позвольте мне идти вперед и открывать небольшие отклонения от этого.
В hello2.php заметить, что это слишком
в основном комментарии, поэтому позвольте мне избавиться от тех, как отвлечение,
и то, что явно отличается сейчас об этом файле?
Там эта новая линия, несколько загадочным на самом верху.
В строке 1 это #! / Бен / PHP.
Бен является Конвенция о Linux и Mac OS для двоичных файлов,
так / бен означает, что это папка, содержащая кучу файлы
, который запрограммирован, одним из которых является PHP.
#! по прозвищу притон,
, которая является быстрым способом сказать это, и что это означает
является то, что, когда вы запустите эту программу теперь есть намек на начало файла
, которая говорит компьютеру, что переводчик в использовании.
>> Это становится немного раздражает, если вы должны были рассказать своим пользователям и клиентам
"Эй, мы написали эту программу под названием hello1.php".
Все, что вам нужно сделать, это навсегда запуска PHP, а затем имя этой программы.
Честно говоря, было бы просто приятнее работать hello1.php,
И действительно, мы можем, если мы делаем следующее.
Позвольте мне идти вперед и делать LS-л, а уведомление в hello2 это еще только чтения и записи
, а затем читать читать, так что я пока не могу это сделать, hello2.php.
Но мы ввели это очень кратко последнее время, команда CHMOD.
Если я CHMOD + х, который означает, что все плюс Исполнимость,
, а затем hello2.php, а затем сделать LS-л снова замечаем, что изменилось.
Один из них, Linux показывает мне имя файла в зеленую, чтобы передать идею
что это исполняемый файл, но что еще более важно, на левой стороне
заметить, что бит, представляющий х исполняемых в настоящее время установлена.
Что это означает теперь это я могу запустить ./hello2.php как обычно,
нажмите ввод, и из-за притон в самом начале файла
это намек, опять же, Linux, которая говорит
использовать этот переводчик, чтобы запустить этот файл.
Не беспокойтесь о заставляя пользователя вводить его на самом деле.
>> И что приятно сейчас это вроде не имеет отношения к моим клиентам или друзьям
какой язык я написал эту программу, поэтому я могу идти вперед с мв
и переименовать эту вещь hello2, например.
И теперь, если я ./hello2
и уменьшение моя программа продолжает работать.
Эти файловые расширения человеческих конвенции, что это необходимо
что-то вроде Clang и сделать, кто смотрит на них.
Но для PHP, я мог бы назвать это ничего расширение файла я хочу.
Я мог бы обмануть мир, думая, что я действительно хорошо Ruby,
и я мог бы написать hello2.rb, а затем запустить это,
и вуаля, теперь у меня есть версия Ruby, которая является полной ложью.
Но расширений файлов, не имеют смысла
если файл является исполняемым и имеет специальную этом намек на начало файла.
>> Теперь, как и в сторону, позвольте мне показать вам быстро версии 3,
которая является своего рода полезный трюк знать.
В hello3 я сделал что-то немного неправильно
что я буду обновлять онлайн исходным кодом.
В версии 3 и получается, что на большинстве компьютеров Linux
есть программа под названием окр для окружающей среды,
и что вы можете делать здесь, если вы не знаете, где PHP
установлен на локальный жесткий диск, потому что это действительно может меняться в зависимости от компьютера
что кто-то использует, ENV просто говорит работать ENV,
, который находится на большинстве систем, и выяснить, где PHP есть.
Просто обычный прием, поэтому вам не придется беспокоиться о выяснить, где программа.
Но если вы заботитесь, чтобы выяснить, где программа и вы не заботился до сих пор
Вы можете использовать которую команда.
>> Позвольте мне масштаб и тип которых PHP,
и обратите внимание, он говорит мне, что это на самом деле в USR / бен / PHP.
Это своего рода ложь. Это находится также в мусорное ведро.
Это просто показывает мне первый удар.
Если вы когда-нибудь задавались вопросом, где Clang есть, что Clang, который в USR / бен / лязг,
, которые делают, USR / бен / сделать, и что это значит, все это время
Вы могли вводить USR / бен / лязг ввести для запуска Clang,
но это вроде утомительной, чтобы сделать это, поэтому некоторые папки
как USR / бен и бен предполагаются по умолчанию
так что компьютер знает, искать в них для вас.
Любые вопросы по написанию супер, супер просто Hello программы Всемирного
В PHP, а затем запустить его?
Потому что сейчас мы начнем внедрять более убедительным синтаксиса.
Ладно, здесь мы идем.
Эти программы, которые мы видели на самом деле все из них раньше.
>> Если я открываю, например, давайте сделаем beer1.php,
Мы не пройдет через несколько версий, но то, что я сделал
был я сел и вылил ее или преобразованы
мой C код, код PHP здесь.
Большинство из верхней части файла комментарии здесь.
Оказывается, есть еще одна новая функция, мы должны называть Readline.
GetString, напомним, от недели 0 вперед было CS50 вещь.
PHP поставляется со своей собственной удобной функцией называется Readline
, что занимает 1 аргумент, который определяет строки
что вы хотите показать пользователю, и то, что делает Readline
оно возвращает все, что пользователь набирает дюйма
В этом случае, я объявлении переменной $ п.
Я хранении в нем возвращаемого значения Readline
После запроса пользователя с этой строкой.
Просто для резервного копирования, чтобы фактически выполнить эту вещь, отпусти меня впереди
и запустить PHP beer1.php.
Сколько бутылок будет? Давайте просто сделать 2 в этот раз.
Enter. Вот и все.
>> Программа является функционально идентичны версии C от недели назад.
Но синтаксически давайте посмотрим, что по-другому.
После того как я получаю Int от пользователя заметили, что я делаю несколько ошибок,
а если п составляет менее 1 я ушел, и я распечатать
извините сообщение пользователю и выход с 1.
Это тоже немного отличается.
В C Что же нам делать? В C мы вернулись 1.
В PHP вы выйдете с 1, который откровенно, я думаю, немного более интуитивным
потому что вы буквально выходе из программы.
Ладно, а затем сюда раздражает песни идентичны синтаксически
за исключением переменной, так что здесь, в строке 24 вперед
заметит моего цикла почти то же самое,
но у меня есть $ в передней части я и п,
и что также отсутствует строка 26, которые мы имели в прошлом
при объявлении переменной я?
Там нет тип.
Это неверно в PHP сказать Int.
Вы просто не нужно этого делать.
Компьютер, РНР достаточно умен, чтобы понимать,
что если вы положите номер в $ I он будет относиться к нему
как номер для вас.
А потом здесь мы вилку в $ я, $ I $ - 1.
Все, что то же самое, а затем здесь мы делаем "Ничего себе, это раздражает" Printf
, а затем выйти (0).
>> Опять же, вынос в том, что даже если мы собираемся провести относительно
мало времени на PHP, конечно, против того, что мы сделали на C,
это почти то же самое, и так, что мы будем делать сегодня и на следующей неделе
и за это действительно сосредоточиться на некоторых из новых идей.
Просто чтобы посмотреть, что еще одна вещь делает перевод более из C,
это было супер просто программа, которую мы сделали в неделю 1
или 2, что в кубе значение.
Но что интересно, в то время об этой программе является то, что
введено понятие пользовательского написал функции, которые мы сами писали.
Синтаксис в PHP почти то же самое.
Вот моя программа наверху.
Обратите внимание, опять отсутствует любое понятие основного.
Я начинаю писать код, и это то, что собирается получить выполнен интерпретатором.
Я распечатайте х теперь 2, по-видимому.
Тогда я утверждаю, кубатуры ...
Тогда я называю куб функции и передать в $ х
и присвоить возвращаемое значение $ х.
Тогда я утверждаю, что это кубе, и тогда я говорю об этом, которое, мы надеемся,
скажу х сейчас 8.
Синтаксис функции в PHP является очень немного другая.
Снова хватает возвращаемого типа.
Опять же пропавших без вести возвращаемого типа, а также отсутствует, так это то, что другой тип?
[Неразборчиво ответ студента]
Ну, ладно, это хорошо. Давайте вернемся к этому в секунду.
>> У нас нет, например, INT здесь.
Мы не, например, были Int здесь, потому что, опять же, в PHP
Вы просто не должны и не должны делать,
а там это новое ключевое слово называется функцией.
В PHP это почти немного понятнее, потому что, когда вы хотите функция
Вы буквально говорят функцию, вы даете ему имя, а затем через запятую
если какое-либо из ее аргументов.
Нет необходимости говорить, недействительным или что-то в этом роде, а потом вернуться и то же,
$ * $ * $.
Что же не хватает? Сэмми указал на это здесь.
В верхней части файла полностью отсутствует в PHP также является прототипом.
Это тоже по дизайну.
Языки и переводчики, как PHP умнее, чем когда-либо C
В компиляторы, как Clang.
>> Напомним, что Clang, если вы не сообщите ему, что куб существует,
если вы не сообщите ему, что Printf существует в виде прототипа с
или с # включить, ну, он собирался кричать на вас и даже не компиляции кода.
PHP и более современные языки намного умнее, когда дело доходит до этого.
Они возьмут на себя прочитать весь код
, а затем кричать на вас, только если он находит куб никуда.
Это не имеет значения, если куба находится на нижней или верхней или даже в некоторых отдельном файле.
PHP и подобных языков в настоящее время достаточно умны, чтобы смотреть в будущее
на все, прежде чем считая вас, как допустив ошибку.
Где это оставляет нас?
>> Давайте сделаем один пример здесь, в условиях,
и если я открываю conditions2.php уведомления тоже
Синтаксис здесь почти то же самое.
Я использую Readline вместо GetString, но эту линию так же, как и раньше,
"Я хотел бы целое, пожалуйста".
Я тогда, если условие, иначе, если, а затем другое,
но функционально эта программа также идентично тому, что мы сделали недель назад
так что если я запускаю эту вещь, PHP из conditions2,
и я даю ему номер, как 23 -
Я выбрал положительное число. Если я даю ему -1 Я выбрал отрицательное число.
Если я даю хорошо 0 действительно взял 0.
Так кто же заботится обо всем этом?
Ну, один из забавных рода упражнения здесь
Для меня по крайней мере, должен был вернуться и посмотреть, как быстро я мог бы осуществлять PSET 5,
опечатками PSET.
Напомним, что там был этот файл под названием speller.c,
и там был файл с именем dictionary.c.
То, что я сделал, я как бы потратил несколько минут, и я превратил код C
в коде PHP, и мы не будем тратить много времени на спеллер
потому как в PSET 5 вы действительно не нужно, чтобы
тратить много времени на спеллер себя, потому что ваше внимание было приковано к словарю.
>> Достаточно сказать, что если вы прочитали правописания,
Этот файл здесь, это в значительной степени эквивалентно код C
мы дали вам для PSET 5.
Я только что добавили около $ на местах.
Я изменил некоторые имена функций, если они не существуют в PHP.
Там одна дополнительная вещь здесь, preg_match,
который немного любитель способ делать что-то, но мы вернемся к этому в конце концов.
Но в общем, правописания почти идентичны, и если вы посмотрите на самое дно
то, что он в конечном итоге выплевывает это здесь,
слова с ошибками, слова в словарь, слова в тексте.
Ладно, так что интересно сейчас заключается в следующем.
В верхней части моего файла Я требующих dictionary.php.
Так же, как C # был включают PHP есть специальная функция, называемая требуют
что в значительной степени делает то же самое, требует файл с именем dictionary.php.
Как я могу идти о реализации PSET 5?
Позвольте мне идти вперед и открывать файл здесь.
Позвольте мне немного ссылкой здесь.
И позвольте мне создать новый файл и начать называть это dictionary.php.
Позвольте мне сказать это в другой папке, так что мы можем сделать это жить.
А теперь я изменить масштаб изображения
Я собираюсь начать свое PHP файлов с открытым кронштейн PHP закрыто кронштейн.
И тогда здесь было несколько функций Мне нужно реализовать для PSET 5,
так что позвольте мне начать реализацию некоторых из тех,
так что функция проверки, которые должны были взять слово в качестве аргумента.
Мы будем делать это и вернуться к нему в данный момент.
>> Существовал функции нагрузку, которая состоялась в том, что в качестве аргумента?
Словарь, поэтому файл, что я на самом деле хотел, чтобы загрузить.
Существовал функции размере, который не принимает аргументов
и там была функция-то, что было другим?
Unload, который не принимает аргументов либо.
Эти 4 функции, что я должен был бы сейчас реализовать в PHP,
и то, что я собираюсь сделать, это идти вперед и делать это.
Многие из вас использовать хэш-таблицу в PSET 5,
так что позвольте мне пойти дальше и создать хэш-таблицы в PHP.
Готово.
Это дает мне хэш-таблицы. Ну, почему?
Один из них, переменная называется $ таблицы, просто чтобы вызвать в воображении идею хэш-таблицы.
Квадратные скобки, хотя, напомним, представляют собой что?
Массиве, но в массивах PHP не должны быть числовыми индексами.
Они также могут быть ассоциативными массивами,
которая означает, что вы можете иметь произвольную ключей и значений.
>> Многое, как в PSET 5, те из вас, кто это сделал хэш-таблицы реализаций
Вы, вероятно, вставил слово, а затем вставить его в цепочку связанных списков,
или вы сохранили значение истина где-то или что-то в этом роде.
Вы почему-то вспомнил тот факт, что слово не было.
На данный момент, это будет мой хэш-таблицы,
И вот теперь идти о реализации функции контроля
Мне просто нужно, чтобы заглянуть внутрь этого хэш-таблицы
и посмотреть, если слово есть.
То, что я собираюсь сделать, это я собираюсь говорить, если-
скажем, Исеть, которая является PHP функция, которая буквально означает, набор ключей,
так Исеть ($ таблицу [$ словом],
и если да, вернуть истинный.
Вот и все. Вот PSET 5 в PHP.
Ну, справедливости ради, все в порядке.
Остальное вернуться ложным, так что это не было.
Что на самом деле происходит?
Ну, если таблицы или хэш-таблицы здесь в более общем-
представляет собой ассоциативный массив, что означает, что вы можете индексировать в него
словом, как «слово», и вы должны вернуть некоторое значение.
>> Мы вроде получаю один шаг впереди нас.
Было бы отчасти хорошо, если бы мы на самом деле загружается файл первым,
так что нагрузка не так просто, но позвольте мне идти вперед и на скорую руку
очень быстро осуществление нагрузки.
Позвольте мне идти вперед и сказать словами получает файл словаря.
Файл функцию в PHP открывает файл
и возвращается к вам массив все слова в этом файле,
просто передает их вам.
Это была большая боль тоже, не так ли?
Теперь по каждому элементу, это наша новая конструкция, Еогеасп ($ слова $ словом).
Этот цикл будет начинаться итерации по массиву слов
и присвоить переменной $ словом каждое слово в файле
от первой до второй к третьей на четвертую все пути
так что я не должен делать раздражающие [I] обозначения и тому подобное.
И то, что я просто буду делать для каждого из этих слов
будет хранить его в моей таблице индексации в таблице
, а затем делать так, потому что вспомнить
, что слово в моем словаре все, что мне действительно нужно сделать,
это своего рода перевернуть немного, и говорят, что это слово в моей хеш-таблица есть, правда.
И если его там нет, я не нужно явно положить ложными,
в противном случае я бы положил ложно для всех возможных слов во Вселенной.
>> Достаточно для меня просто установить значение индекса
истинно, если слово на самом деле в моей хэш-таблицы.
Теперь, я резка пару углов здесь, что я буду махать руками на данный момент,
но теперь функция загрузки сделано.
Я загружаю все слова из файла в массив.
Я перебора массива, и для каждого слова в массиве
Я подключить его к моей хеш-таблица с 1 строкой кода.
Это весело. Вы знаете, как мы можем реализовать размера сейчас?
Ну, размер всегда довольно легко, в справедливость.
Здесь мы можем просто вернуть кол-во столом.
Это довольно легко слишком, подсчитать количество вещей в таблице.
Это на самом деле вид не самый эффективный.
Я, вероятно, следует иметь переменную размера таким образом, мы можем сделать это
В постоянном времени, но это довольно легко.
Ох, и затем выгрузить, если мы действительно хотим быть анальный здесь
мы можем сказать, что это, как вы выгрузить что-то.
Вы просто установить величину, равную пустой массив,
и он избавляется от всего, что было там.
Не нужно звонить бесплатно.
>> Опять же, я сократить некоторые углы, и я прошу прощения за присвоение проблема множества 5
возможно, в C, но если мы сейчас идти вперед и выполнить это,
Я собираюсь на самом деле запустить версию, которую я написал заранее
просто так, что я не делал никаких синтаксических ошибок вообще.
Позвольте мне идти вперед и работать правописания. Использование то же самое.
Вот файл словаря, который только содержит слово Foo.
Вот это текстовый файл, который содержит только Foo Bar.
Давайте проверки орфографии это, так правописания, используя этот файл словаря на этом текстовом файле.
Там один слово с ошибкой, бар, и вуаля.
Совершено с PSET 5.
Давайте 5-минутный перерыв здесь, и мы вернемся и больше на PHP.
Ладно, мы вернулись.
Давайте делать-ненавидите меня на некоторое время.
Давайте теперь на самом деле увидеть, если это не было положительного
на самом деле реализации этой вещи в PHP.
Конечно, это заняло 45 секунд, чтобы реализовать.
>> Но давайте идти вперед теперь и запустить вещи.
Позвольте мне идти вперед и запустить версию C
из правописания, и мы будем запускать его на одном из крупнейших файлов,
которая является Библии короля Джеймса.
И вот в давайте войдем в нашу папку C,
спеллер на короля Джеймса 5-го.
Много слов с ошибками.
Хорошо, так вот вывод, который вы, вероятно, получили даже если раз немного по-другому,
Если вы получили все работает правильно, и так раз в общей сложности для проверки правописания
Библии короля Джеймса был 0,38 секунды, так что очень хорошо с помощью этой реализации.
Теперь позвольте мне перейти в версии PHP, которую мы только что написали.
Позвольте мне выполнить правописания на короля Джеймса.
Ой, игнорировать эту ошибку. Я в ту директорию.
Speller на короля Джеймса 5-го.
Почти готово.
>> Хорошо, проницательный наблюдатель поймет, что был более чем на 3 секунды там.
Это и есть истинное время работы.
Оказывается, что это занимает время, чтобы плюнуть много текста из
из-за буферизации вопросы, но короче говоря,
, которая была 3,15 секунды машинного времени, процессорное время,
против того, что было минуту назад?
Как .3.
Я имею в виду, это на порядок медленнее, так где это
Смешно замедление приходит?
Ну, как это было в случае с большинством любого дизайнерского решения мы сделали
в классе за последние 9 недель там почти всегда это компромисс.
Иногда только между пространством, иногда между пространством и временем,
пространства, времени и усилий в области развития, да и здесь, хотя
Мы сохранили огромное количество времени, может быть, потенциально 10-20-30 часов
время разработки осуществлении проверки орфографии
плетьми его всего за 45 секунд с этим языком
Цена, которую мы заплатили то, что это на порядок медленнее, как следствие,
и это, как правило, в случае с большинством любой интерпретируемый язык,
PHP, Python, Ruby, Pearl или другие которой
если вы собираетесь запустить его через переводчика, а он читал код
строка за строкой, сверху вниз, слева направо,
, что посредник собирается занять некоторое время свое,
и что вы чувствовали себя здесь в 3 секунды, а не 0,3 секунды
является тот факт, что это посредник, который имеет в буквальном смысле интерпретировать наш код
строка за строкой, и не дай бог, если вы находитесь внутри цикла
с огромным файл, содержащий сотни тысяч слов.
>> Это накладные собирается добавить и сложить и добавить и сложить.
Для такой инструмент, как это, что это, вероятно, не самый лучший язык, чтобы использовать для реализации
проверка орфографии, если непосредственность представляет интерес для пользователей, и для вас.
Но роскошь, которую мы имеем в данный момент является, если Вы
использовать язык, как PHP или много интерпретируемых языков
в контексте Web, если на то пошло, у вас есть выгода
, что Интернет является намного медленнее, чем большинство компьютеров.
У вас есть GHz CPU в компьютере, 2 ГГц, может быть, даже больше в эти дни.
Но реальность такова, в интернете существует большое количество задержкой
которой для браузера, чтобы поговорить с сервером, хотя мы видели на прошлой неделе
, что довольно быстро, половину миллисекунды или так,
, что тоже добавляет, и если вы скачиваете вещи, как изображение
или фотографию Facebook или получение мгновенных сообщений через болтовню Facebook,
Gchat и т.п., все это туда-обратно раз
между браузером и сервером начала складывать,
что делает ваш конкретный выбор языка во многих случаях
Не все, что необходимо, так что вы отлично с помощью немного медленнее языке
как PHP или Python или Ruby,
но для которых есть огромные расквитаться с вами и вашими коллегами
и ваши друзья, потому что вы можете реализовать все так, так намного быстрее.
И более того, у вас гораздо меньше риск определенных недостатков в безопасности.
Там нет указателей в PHP.
Там нет сегментам неисправностей, которые можно легко вызвать
таким же образом, вы могли бы в C.
С C ты супер близко к оборудованию.
С помощью PHP и аналогичных языков ты вроде высоком уровне, так сказать,
с большим количеством оборону между вами и то, что происходит на самом деле
внутри машины, и это всего лишь компромисс.
>> Мы дошли до точки, имеющие эти более современные, языки высокого уровня
как PHP, потому что из уроков, извлеченных в языках, как PHP на C.
Но если вы не понимаете, что происходило на под капотом все это время
Вы, конечно, не может принимать правильные решения, дизайн,
и, конечно, когда дело доходит до работы на месте, как Facebook или Google
или любое из этих мест, которые все чаще играют с большими наборами данных
даже если вы вернуться назад и сделать СБУЭОБ и работают с некоторыми MD
на некоторых больших наборов данных с участием пациентов и врачей
и как с помощью правильных инструментов является чрезвычайно убедительным
потому что в противном случае ваш анализ некоторых наборов данных может занять секунд,
или он может буквально несколько часов.
Это только один пример, чтобы не расстроить вас с тем, как приложить гораздо больше усилий
это было в C, но, чтобы помочь вам понять, что когда вы реализовать что-то в C
Вы действительно понимаете, ни в теории, на самом деле понимают
как все, или должен работать, и у вас почти полный контроль
за то, что происходит под капотом, и с этих языках более высокого уровня
Вы должны отказаться от большего контроля к людям, которые их придумали
и могут быть больше по проектным решениям, чем ваш.
Но если мы считаем само собой разумеющимся, что производительность
не столь важно на веб из-за этих других вопросов,
только скорость сети немного медленнее, чем скорость процессоров в любом случае,
так что мы можем сортировать позволить себе использовать немного медленнее языке
если расквитаться мы может развиваться вещи в 10 раз быстрее или даже больше.
>> Давайте посмотрим, как мы можем начать использовать это.
Отпустите меня в папке
Среди примеров сегодня называется frosh.ims,
и это было на самом деле лично мотивированы тем, что самое первое, что
Я написал для веб лет назад после того, CS50 и CS51
был сайт программы Frosh мгновенные сообщения, первокурсник очного спорта,
который в то время это было достаточно лет назад, что в то время,
не было никаких сайте программы, несмотря на то что Web,
и вместо этого был сопровождающий в Wigglesworth согласно которому, если вы хотите
зарегистрироваться для игры в волейбол или футбол, или как вы бы заполнить лист бумаги.
Затем вы должны идти через двор.
Вы бы тогда постучаться в их дверь и слайд в их дверь или руку сопровождающий
лист бумаги с вашим именем на ней, действительно ли вы хотите быть капитаном команды,
каким видом спорта вы хотели бы сделать, и что общежитии вы были дюйма
Это был своего рода старой школы делать вещи, и это было простое
возможность автоматизации многих этот процесс.
Вы просто зайдите на веб-сайт. Вы набираете что-то дюйма
Вы получите подтверждение по электронной почте, и стрелы, вы сделали.
>> Это было самое первое, что я сделал, хотя и в языке под названием Pearl,
но это относительно легко сделать в PHP, и это является своего рода представителем
проблем вы можете приступить к решению, когда вы можете выразить себя
программно и не должны полагаться на такие вещи, как сайты Google
или Excel или инструменты, которые передали вам.
Вы, ребята, теперь есть возможность сделать что-то вроде этого.
Это супер уродливые версию форме,
Но давайте просто использовать его для начала разговора которым это
примерно то, что форма выглядела лет назад для нас
чтобы люди в интернете, чтобы подписаться на Frosh Чат.
Мы попросили имя, флажок ли они или не хотел быть капитаном,
мужчины или женщины, и что тогда общежитии они были,
и тогда они будут представлять эту форму.
Давайте сначала посмотрим под капотом на HTML, который представляет эту веб-страницу.
Отпустите меня в froshims0,
и как в стороне, для PSET 7 Я принимая как должное
каталоги и папки, которые я кладу вещи дюйма
Мы будем идти Вы через именно там, где материал должен пойти в прибор,
который мод команды вы должны работать, так что не волнуйтесь обо всех
глупые подробности синхронизации С самого начала идти здесь.
>> Ладно, вот froshims0.php.
Позвольте мне прокрутить вниз, и, что любопытно здесь,
это PHP файл, но то, что внутри него, ясно?
Это целая много HTML, и, действительно, PHP, происхождение
действительно были за то, Web-ориентированный язык.
Минуту назад мы использовали его для реализации пива, например,
условиях, например, привет пример, и это нормально.
Вы можете использовать PHP в качестве скриптового языка
где сценарий на самом деле просто номенклатуре уделяется быстрой и грязной программы
или то, что вы пишете в сценарии или в более общем интерпретируемый язык.
PHP это супер полезный для этого, потому что вы видели, как быстро
Относительно мы можем нагнетать программ в PHP.
Но это был действительно предназначен для использования в сети Интернет,
и предназначена для веб-в том смысле, что заметил здесь в верхней части файла
Я начинаются с <? PHP.
Тогда у меня есть куча бесполезных комментариев, правда, но тогда я закрываю PHP режиме.
Но потом я зайти в HTML режиме.
>> Что интересно PHP является, даже если файл имеет расширение. PHP
это вообще должно быть смешаны с HTML,
код PHP, некоторые HTML.
И мы увидим, в конце концов, что мы можем начать дразнить друг от друга тем,
и сохранить наш HTML отдельный от наших PHP в целом,
но происхождение PHP действительно были, чтобы дать вам эту гибкость,
что, если вы хотите, чтобы некоторые HTML просто написать, и что будет
выплюнуть одинаково в браузере.
Но если вам нужна технология программирования,
некоторые программный код, вы также можете поместить его в точно такой же файл, как мы скоро увидим.
Вот мой HTML.
У меня есть название этого для Frosh Чат.
У меня есть тело тега который получил некоторые CSS на него в центре все в середине,
, а затем здесь у меня есть форма, по-видимому, будет представлен
в новый файл с именем register0.php, поэтому мы видим, что в момент.
Она использует метод, называемый пост, который мы еще вернемся, а также.
Тогда у меня есть форма входа, один называемой имя, тип которого является текст,
тот, чье имя капитана, чей тип флажок,
и это, мы не видели его раньше, но это именно то, что он говорит.
Вы получите флажок вместо текстового поля.
Здесь, внизу у вас есть переключатель, который является одним из тех круговой кнопки
что вы можете выбрать этот или тот.
>> Обратите внимание, что это преднамеренное, что я дал как переключатели имя пол.
Это, как вы получите взаимное исключение, в котором вы должны нажать
либо это один или, что одно и нажав на друга
это неустановленными другие, так что вы должны дать им тем же именем
Если вы хотите, чтобы они взаимно исключают друг друга, как это.
И тогда для общежития, я не думаю, что мы видели это, но это выбор меню, выпадающем меню.
Тег для этого является выбор.
Затем дать раскрывающемся меню имя,
и тогда у вас есть целая куча этих вариантов.
Первый из них, просто для эстетики, является пустой строкой.
Я просто хотел выпадающего быть пустым по умолчанию,
а там Apley, Canaday, серые, и так далее.
И обратите внимание, дихотомия здесь.
Вариант в раскрывающемся имеет значение,
но тогда оно имеет понятные человеку названия, которое в данном примере
идентичны, но если мы действительно хотели быть анальным мы могли бы
Значение этого выпадающего быть просто короткая версия,
Серые, но мы могли бы действительно сказать, серый зал, что человек на самом деле видит,
Но это не все, что интересно, поэтому я просто продолжал он прост и сделать их одинаковыми.
Тогда на дне у нас есть кнопка отправки
что мы видели и раньше, но заметили, что я просто дал ему другое слово.
Вместо того, чтобы CS50 поиска Я дал ярлык "Регистрация".
>> В итоге этой странице здесь, и снова,
где эта получите представлены?
Он получает представлено несколько файлов, значение атрибута действия,
который был register0.php.
Давайте посмотрим, что на самом деле здесь происходит.
Позвольте мне идти вперед и заполнить эту форму, скажем, Давида,
мужчины, Matthews, и тогда я буду говорить зарегистрируйтесь.
Позвольте мне масштаб и нажмите зарегистрируйтесь.
Итак, вид бесполезно, но давайте посмотрим, что происходит на самом деле.
Обратите внимание, что URL изменился, чтобы быть register0.php.
Что любопытно отсутствует в URL, хотя, даже если мы просто представили форму?
[Неразборчиво ответ студента]
Хорошо, вот только Chrome быть удобным в эти дни.
Это на самом деле там. Они просто спрятать его, чтобы сэкономить место.
Но хорошая мысль, хорошая мысль.
К другому концу URL, хотя, чего не хватает? Да.
[Студент] строку запроса.
Строка запроса, так что помните из наших простых примерах поиска Google.
Как только я нажимаю на кнопку отправки URL
взял меня к Google, но потом было? Q = компьютерных наук или то, что я была ввели дюйма
Это потому, что мы использовали метод GET с поиском пример.
>> На этот раз мы используем то, что вместо метода?
Сообщение, и одним из непосредственных различий
между получить и опубликовать в том, что сообщение не ставит входе пользователя в URL-адресе.
Он скрывает это. Он по-прежнему отправляет его.
В самом деле, что мы видим в браузере здесь, как мы раскроем в момент
глядя на register0, это я просто видеть содержимое
массива, которые были представлены от браузера к серверу.
Но URL нет?, Не имеет ключевых слов
или значений в нем, и почему это?
Ну, пост позволяет еще представить данные из формы на сервер,
но он не положил его в URL, поэтому, какого рода информация является пост
Особенно подходит для, возможно, когда вы спрашиваете пользователя
ввести входные данные для формы?
Что-то вроде пароля, что-то вроде, что еще?
Номера кредитных карт.
Все это мягко чувствительные вы, вероятно, не хотите попасть в URL
если только потому, что это означает, что ваш сосед или член семьи может просто тролль через
ваши истории Интернета, а затем буквально видеть ваши пароли,
буквально видеть ваши номера кредитных карт, поскольку большинство браузеров
Помнится, в истории любой URL, вы были на,
так что если только потому, что это было бы плохой идеей.
Использование сообщению скрывает, что подробности от пользователя.
>> Кроме того, как вы загрузите фотографию в Facebook?
Ну, только 2 механизма вы можете действительно использовать,
хотя есть несколько других, более тайными них, это получить и опубликовать.
Как вы, возможно, загрузите фотографию с помощью URL-адреса?
Вы действительно можете это сделать.
Вы можете взять JPEG или растровых или GIF, и вы можете представить его в шестнадцатеричную
или то, что называется базой 64.
Вместо того, основание 16 вы используете базу 64, которая по существу выглядит
ASCII символы, и вы можете загрузить фото через URL
после знака вопроса, но, как правило, ограничения на размер.
Большинство браузеров заставить URL-адресов, чтобы быть не более 1000 символов,
Может быть, 2000 символов и т.п., так что вы не можете загрузить
10 MB Facebook фото.
Для этого вам использовать пост, так что на данный момент получить ставит параметров в URL,
что приятно и полезно иногда, но ни за что чувствительные или большой
Сообщение является путь.
Что register0 на самом деле здесь делаешь?
Ну, если я открываю register0 заметить, что это супер просто страница,
но это демонстрирует тот факт, что я могу совместно смешиваются, к лучшему или к худшему,
HTML с PHP.
Этот файл целиком, за исключением комментариев на вершине, являются HTML
кроме этого парня здесь.
>> Обратите внимание, в середине моего кода PHP,
В середине моей HTML, у меня вроде временно
вступил PHP режиме.
Я звоню специальная функция, называемая печать р.
Это означает, печать рекурсивной, и что он делает это рекурсивно печатает
все, что переменную передать его, точка с запятой, с выходом PHP режиме.
И предварительно тег дает вам предварительно отформатированный текст,
моно пространстве текст так, чтобы каждое место, вы на самом деле увидеть.
Она не исчезает. Что такое пост?
Ну, то, что интересно и убедительную о PHP
является то, что всякий раз, когда вы отправляете форму с помощью получить или отправить
ничего, что представляется Вам в браузере
PHP сам разберется, что эти пары ключ-значение есть,
цифры, если есть знак равенства, цифры, если есть знак вопроса.
Это делает всю тяжелую работу за вас, а затем он передает вам ассоциативный массив
содержащий все, что пользователь ввел в форму.
Ну, что же поля этой формы есть?
>> Это было 4 поля.
Один из них был текстовое поле с именем имя.
Один из них был флажок называют капитана.
Один из них был переключатель называется пол,
и один был в раскрывающемся меню называется общежитии,
так что заметить, когда я печатаю рекурсивно
Содержание этого специальную переменную.
Это особая глобальная переменная $ _POST буквально во всех колпачков.
Это особая глобальная переменная, которая PHP просто создает для вас
и руки, чтобы вас так, что вы можете получить доступ ко всему
, который был представлен через форму пользователем.
И по телефону печати г-на нем вы бы не сделать это в обычное приложение.
Мы делаем это, чтобы видеть в этой переменной,
и что внутри него, ну, 4 клавиши,
4 HTTP параметров, так сказать,
имя, капитан, пол, общежитие, а затем значения, которые пользователь
набрал в с одним исключением.
Я сделал типа D--V-I-D.
Я проверил коробку, хотя, для мужчин, по-видимому представлены значения
м всего, чтобы быть кратким.
>> Когда я выбрал Matthews это значение, был выбран,
и это одна немного глупо, но это конвенцию.
Когда я проверил коробку, значение на "ON", получил представленные на флажок.
Если бы я не проверил его величина не был бы послан бы то ни было.
Это просто дает нам понимание того, что находится внутри этой специальной глобальной переменной,
и это настолько особенным, что это называется супер глобальной переменной.
Она существует везде тебя в коде, так что вы можете получить к нему доступ.
Это не так убедительно, так что давайте на самом деле использовать супер глобальным
а на самом деле пытаются зарегистрировать кого-то.
В froshims1 я собираюсь сделать одно изменение.
Я меняю действия, чтобы быть register1.php,
и я делаю еще одну вещь.
Я был несколько смущен качество моей странице там.
Это довольно отвратительный, честно говоря, так получается
, который можно использовать очень легко в Интернете
других людей JavaScript кода, CSS других людей
что они написаны и с открытым исходным кодом и распространяется в виде библиотеки,
так сказать, и, например, здесь я использую в свободном доступе библиотеки,
кучу кода, который написал кто-то другой.
>> Twitter случилось писать этот код, и это называется начальной загрузки библиотеки,
и это просто куча CSS стилей, кучу. CSS файлов
что кто-то написал и придумал, как получить все хорошо и довольно
так что люди, как мы можем беспокоиться немного меньше об эстетике и сосредоточить гораздо больше
на логику и фактические программирования.
Связав его с данным тегом, который является тем же тегом я запомнил styles3.css ранее,
Теперь у меня есть доступ к файлу называется bootstrap.min.css.
Минимальная просто означает, что они уменьшенная это, и они избавились от всех пробелов и т. д.
просто чтобы убедиться, что они не посылать мне больше байт, чем я на самом деле нужно.
Но есть целая куча CSS, так что если я сейчас открываются версия 1 Frosh чаты
заметил, что мой файл, безусловно, красивее.
Теперь это еще только черное и белое, но заметил, что только с помощью своих стилей
и с использованием определенных особенностей его на моей форме это не удивительно,
но это определенно чище, чем это было раньше, а проектор не делают этого правосудия.
Там мало серые линии вокруг кнопок и вокруг текстового поля прямо здесь,
но это определенно чище, чем это было раньше.
>> Теперь, справедливости ради, я должен изменить свою разметку немного.
Это версия 1, и заметили, что я использовал несколько новых тегов,
и, честно говоря, я понятия не имел, как это сделать, пока я не прочитал документацию
для загрузки библиотеки Twitter, и они сказали мне, если вы хотите использовать нашу библиотеку
использовать FIELDSET элемент внутри формы,
поставить слово, которое вы хотите показать рядом с полем внутри этикетки теги,
Затем дайте ввести имя, как и прежде,
, а затем на флажок, вы не только обернуть его в метке элемента,
Вы используете то, что называется класс, поэтому мы не видели этого раньше,
но вы увидите это в одном из шорт PSET 7 в.
Класс в CSS позволяет вам делать что-то очень похожее на ID,
но раньше, когда мы были ID с символа #
это было для одного и только одного элемента.
Что приятно о классе является то, что несколько элементов могут иметь тот же класс
или тот же самый материал CSS применяется к нему.
>> Но, опять же, больше на тех, кто в краткосрочной, и остальные это просто скопируйте и вставьте
с их документацией, где я добавил метку здесь и там.
И в конце, потому что я включил ссылку тега в верхней части,
все выглядит красивее автоматически
просто отметив мою страницу таким образом, чтобы
Twitter ожидалось, и есть очень много различных способов
сделать это, и это действительно очень уместно.
На данный момент в семестр, как вы увидите в спецификации PSET 7 с,
Поиск в Google по всему, читал на библиотеки, используя CSS других людей
и наличие решить проблемы вспомогательных
к проблеме само множество, безусловно, поощряется и является способом
Web построено в эти дни, стоя на плечах других людей
так что вы можете сосредоточиться на действительно новых и интересных задач.
Но давайте сосредоточимся на, опять же, логика.
>> Это был быстрый объезд по эстетике, чтобы показать вам направление, в котором вы можете идти.
Я собираюсь вернуться к уродливым один для теперь только потому, что
нет никаких отвлекающих вещей с Twitter, и позвольте мне идти вперед и открывать
froshims2, который, опять же, отличается только в акции, register2.php,
и давайте взглянем на то, что происходит здесь.
Позвольте мне пойти дальше и ввести Давида.
Я не буду капитаном на этот раз.
Я скажу мужчина, Matthews, регистр.
Черт возьми. Ладно, это винт на моей части.
Режим ожидания.
Register2, строка 22, если пустой или, простите.
Давайте перезагрузить.
Ладно, на эту форму, что только что произошло?
Я набрал в Давида, проверил мужчины, нажал Matthews, регистр.
Вы зарегистрированы. (Ну, не совсем.)
Это, безусловно, шаг за рамки просто распечатать содержимое некоторых переменных,
но то, что этот файл на самом деле делать?
В register2.php
заметил, что у меня есть новый код.
Внутри моего тела тега у меня есть по существу, если еще построить,
но потому, что я совместно смешение это с некоторыми HTML
Я должен войти и выйти из режима PHP и обратно, так что давайте посмотрим, что я делаю.
>> В первой строке здесь я говорю, если это имеет место
что пост супер глобального пусто ключ имя,
Итак, другими словами, если пользователь не давал мне значение для имя в форму,
Затем пустые собирается вернуться верно, потому что пустое значение.
Или, заметил вертикальные полосы, если пол пустой
Внутри этого специального супер глобальный, который, опять же, представляет собой содержимое формы,
или в общежитии пусто, то я буду идти вперед и кричать на пользователя.
Как? Ну, заметили, что я собираюсь сказать, что вы должны указать свое имя, пол и общежития.
Давайте на самом деле вызывает эту ошибку.
Позвольте мне вернуться к моей форме. Позвольте мне перезагрузить, чтобы очистить его.
И я просто хочу, чтобы дать им Давида, и они не должны знать, где я живу.
Зарегистрируйтесь. Видимо, я действительно должны сказать им, где я живу.
Вы должны указать свое имя, пол и общежития. Вернуться назад.
>> И я мог нажмите, чтобы вернуться к этой форме, но зачем это?
Ну, в таком случае имя не было пустым, но пол был, и общежитие было,
так что это все выражение оценивается в истинной, и, хотя синтаксис немного нового,
Снова заходим PHP режиме, знакомым, если заявление
но новая часть здесь является именно эта толстой кишки, и я облажался, опуская скобки
случайно, но обратите внимание на толстой кишке, и это означает, что
хотя мы выходом PHP режиме все
что следует следует выплюнуть дословно в браузере
пока Вы не видите другого блока, как это делаем мы здесь,
В этом случае вместо него вы должны плевать на это
пока вы не увидите ENDIF, поэтому некоторые немного нового синтаксиса
, что позволяет мне переключаться между HTML и PHP.
Мы можем очистить это в конце концов, но сейчас,
это вроде убедительным способом проверки ошибок формы.
>> Теперь, я сказал, что вы на самом деле не зарегистрирован, потому что очевидно, что мы не сделали ничего, но данные,
так что давайте на самом деле пытаются сделать что-то прохладное.
В froshims3 той лишь разницей, что я собираюсь представить register3,
поэтому HTML происходит то же самое.
В register3 заметить этого.
Это один вид сексуально.
На вершине я использую требо заявление, так это как # включить.
На этот раз это не stdio.h или что-нибудь подобное.
Это библиотеки PHP, и это одна называется PHPMailer.
Как я знаю, чтобы включить именно эту строку в кавычках?
Я прочитал это в документации, поэтому, когда они сказали мне, положил это в верхней части файла
если вы хотите использовать специальную библиотеку под названием PHPMailer, что делает то, что он говорит.
Она позволяет отправлять почту через PHP.
Теперь прокрутите вниз дальше.
>> Обратите внимание, чтобы начать я нахожусь в режиме PHP все это время,
так что теперь заметить здесь, что после импорта библиотеки,
так сказать, я делаю некоторые проверки.
Если это так, что имя не пустой
и пол не с пустыми заметить восклицательным знаком-
и общежития не пустой, то пользователь логически заполнил форму, по крайней мере достаточно.
Меня не волнует, если они капитана или нет. Мне просто нужно их имя, пол и общежития.
Если они заполнили те, так, что ни одна из этих пустых полей
это немного нового синтаксиса.
PHP, как в стороне, является объектно-ориентированным языком программирования
который некоторые из вас, ребята можете вспомнить из АСУ ТП и т.п..
Сейчас, если незнакомый, просто знаю, что использовать эту библиотеку
Вы должны написать строку кода, как это с помощью новых ключевых слов,
буквально новое ключевое слово называется новая.
Но помимо этого, у нас есть знакомый синтаксис.
Это стрелка оператора, который похож на то, что мы использовали для структур в контексте указателей.
На сегодняшний день PHP не имеет указателей,
но знаю теперь, что внутри почте переменную
существенно рода указателем на специальную библиотеку
что кто-то написал, и если я хочу получить доступ к функциональности
Внутри этой библиотеке я, как и в C, используйте стрелки оператора,
даже если они не являются на самом деле указатели.
Это своего рода собственную версию PHP для них.
Это означает, пойти в библиотеку и вызвать IsSMTP функции.
SMTP, напомним, от наших воинов Чистая относится к электронной почте,
и это просто означает использование почтового сервера для этого Frosh чаты регистрации.
>> Что хозяин я хочу использовать?
Ну, Гарвард, если вы Google по всему, имеет почтовый сервер называется smtp.fas.harvard.edu.
Если вы играете вместе в доме или вы живете на Comcast сети
это может быть что-то вроде smtp.comcast.net.
Это полностью зависит от того, где вы живете и кто ваш провайдер.
После этого я собираюсь установить мой адрес от произвольно, чтобы быть jharvard@cs50.net.
Я тогда собирался установить на адрес, который будет jharvard@cs50.net.
Единственный путь, я знал, что эти функции были вызваны SetFrom и AddAddress
, опять же, я читал документацию.
Это не вид волшебным известно всем программистам.
Тогда я поставил вопрос на "регистрацию".
И теперь эта линия немного уродливые, потому что то, что делает оператор точка означает в PHP?
Кто знает?
Соединить.
В C это боль в шее, чтобы объединить 2 строки вместе.
Вы должны иметь дело с таНос или перераспределить или все, что материал
только увеличить длину строки.
В PHP, JavaScript и в других языках
Вы можете обычно сделать это с помощью одного символа.
В этом случае точка означает принять эту строку здесь
и добавить к ней эту строку.
>> Да, и кстати, добавить к нему эту строку,
который бывает переменной внутри этого супер глобальным.
Затем добавить к нему новые линии, так что все эти точки просто означать,
продолжать делать все больше и больше и больше строк,
и вам не придется заботиться вообще о таНос или, как в языке, как это,
и есть другие способы сделать это, но это один из самых быстрых
способы заложить его.
Что это делаешь?
Это создает электронный орган, который собирается сказать название: Captain: Пол: Общежитие:
Все на отдельных строках, а затем, наконец,
одной строки кода, и я буду игнорировать это сейчас.
Если == ложное просто означает, что если что-то пошло не так,
но магия здесь происходит.
Почта Отправить означает, отправить это письмо.
Давайте посмотрим, что чистый результат.
В нижней части файла, заметите, что он собирается сказать вы зарегистрировались на самом деле
если я получаю так далеко.
Если, однако, пользователь винты вверх, обратите внимание, что мы начали эту
если условие здесь, если это не пустые и не пустые
и не с пустыми мы отправляем почтой.
В противном случае мы собираемся написать эту строку кода,
который будет иметь эффекта, как вы увидите в PSET 7, перенаправление пользователей
туда, откуда они пришли, froshims3.php.
>> Пальцы пересеклись, в противном случае это будет самым разочаровывающим демо сегодня.
Здесь мы идем.
Позвольте мне открыть свой электронный почтовый ящик для jharvard в Gmail.
Нет электронную почту прямо сейчас. Хорошо.
Теперь позвольте мне открыть froshims3, который является третьим и последним примером мы рассмотрим здесь.
Хорошо, здесь мы идем.
Nate, он будет капитаном, мужчины, от, скажем, Apley.
Зарегистрируйтесь. Итак, вы зарегистрировались на самом деле.
Теперь, если я прокрутки на мою электронную почту, о, мой Бог.
Я только динамически направил письмо в Интернете.
>> Давайте оставим на этой ноте.
Видео для предстоящей лекции мы пропустили. Увидимся на следующей неделе.
[CS50.TV]