[Играет музыка] СПИКЕР 1: Это CS50 и это конец недели семь. Сегодня, пожалуй, где мы действительно учит вас языков. Мы ввели в последние пару недель HTML и CSS, ни один из которых языки программирования. И в самом деле, даже если мы не посмотреть на почти все теги что HTML-поставляется с и почти все из свойств, которые УС поставляется с, это своего рода ней HTML и CSS. Мы будем просто вообще начать предполагая, что вы понять общие идеи, тегов и атрибутов,, и страницы отправляются от клиента к серверу. Потому что сегодня мы начинаем смотреть на другой язык программирования РНР. Мы собираемся сделать это очень быстро. Мы не собираемся учить вас PHP таковой, так же, как мы не стремимся научить вас С таковой, а, скорее, программирование. И в самом деле, одним из Цели данного курса не научить вас C, или HTML, CSS или, или PHP, или любое количество других умные слова или аббревиатуры, а информатики и, как программировать принципиально. И в самом деле, сегодня мы начинаем принимать эти учебные диски прочь все дальше, пролетев через язык называется PHP, следующим образом. Вот то, что этот язык выглядит. Оказывается, что нет необходимости в главная функция в программе написано на языке, называемом PHP. Так что уже звучит немного проще чем C, с которой мы знакомы. Оказывается, что если вы хочу объявить переменную, Вы делаете это почти идентично С. Но есть ясно одно различие здесь когда я объявляю строку, или, может быть, два различия. То, что выглядит по-другому? Аудитория: знак доллара. СПИКЕР 1: Да, есть доллар подписи, который мы никогда не видели прежде. И чего не хватает? Да? АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: Да, нет типа данных. Так что получается, что PHP является то, что мы вызвать слабо типизированный язык, где С сильно типизированных. Свободно набрали просто означает, что Существуют различные типы данных, Есть строки и Интс, поплавки и. Но компьютер цифры, что из. Ты же человек программист не должны в этом разобраться. Все, что Вам нужно сделать, объявить переменная знак доллара, название вашей Переменная, а затем, например, конец цитаты цитаты, привет мир. Ну это то, что состояние выглядит в PHP. Любые различия? Нет. Вот и получается, они идентичны. И вы, возможно, придется меньше филиалы или больше ветвей, но синтаксис повороты точно так же. Логические выражения могут заказать вместе. Логические выражения может быть операция AND вместе. У вас еще есть переключатели. Даже если вы не использовали это, они существуют в C и они функционально эквивалент в PHP. И в самом деле, в PHP, они немного мощнее. В C, вы можете сравнить только определенное типы данных, такие как Интс и символов, в то время как в PHP вы можете сравнить полная строки оперять, не имея беспокоиться об указателях и тому подобное. Так вот для петли. Это просто псевдокод Код, если вы будете. Но структурно это совпадает с С Вот в то время как цикл, псевдокод therefore-- идентичны С Вот делать, пока loop-- идентичны. И вот вроде эта модель здесь в результате чего есть несколько других синтаксических Особенности мы действительно увидим. На самом деле, здесь хороший способ PHP в результате чего, если вы хотите, чтобы итерации над массивом, и вы не хотите, чтобы перейти через психические и синтаксические обручи наличия INT я равна 0, я меньше п, я плюс plus-- которые это просто много раздражающих синтаксиса. Вы можете сказать немного больше плавно для каждого номера как номер, где в данном случае доллар числа знак, я предполагаю,, это как массив называется цифрами. И тогда я предполагаю, что номер, единственном числе, будет переменная. А что PHP будет делать для меня, как я перебора по этой петли, на каждой итерации, это будет обновлять номер переменной в быть элементом Ith в цифрах, во множественном числе. Так что просто обрабатывает все, что для меня. Нет квадратные скобки, не знак доллара, не точка с запятой. Это немного проще. Ну, если вы хотите, Массив, оказывается вы может что-то сделать очень похоже на С. Синтаксис немного отличается. Но вот массив называется доллар подписал номера. И я использую, в PHP, квадрат кронштейны, оказывается. И мы собираемся, чтобы увидеть эти опять в JavaScript-- еще один язык. Я просто использовать квадратный обозначения кронштейн иметь запятую целых чисел, в этом случае. Но это дает мне массива. Но еще более мощным в PHP, у нас также есть, что, как правило, называется ассоциативные массивы. И много языков есть эти, а также. Дело в том, C массивы является то, что индексы для массива, то, что вам использовать в квадратных скобках, через который Вы получить доступ к элементам, должны быть и что? АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: Они должны быть номера или целые числа, в частности, от нуля и выше. Ну, в PHP, и, получается из, на других языках, Вы можете начать есть Индексы, которые не числовое. Но на самом деле они слова или Фразы, так что вместо Постарайтесь вспомнить, где что-то есть, или хранится в переменной I, вы можете использовать слово и сказать, that-- вы можете сказать такое слово, как это. Так знак доллара цитатой это имя переменной. Это несколько фанки синтаксис это общение двух ключевое значение пары для этой переменной. В частности, это дает мне массив, который имеет длину 2. Но индексы не 0 и 1. Индексы являются цитатой конец цитаты Символ и цитаты цена конец цитаты. И значения этих индексов, соответственно, FB для Facebook и $ 79.53, когда я в последний проверил цену для этого. Что это значит? Ну, это означает, что вместо написания кода как это, где я что-то сделать как доллар sign-- или, скорее, в C Я бы даже не имеют знак доллара. Я хотел бы сделать что-то как цитаты и затем Я хотел бы сделать кронштейн я получить некоторые произвольно численно индексированный значение. Начиная с сегодняшнего дня в PHP, если вы хотите получить при некотором значении, мы вроде есть более семантическая выразительность. Просто причудливый способ сказать, что мы можем просто называть вещи, каковы они. И если вы хотите, чтобы получить на что-то символом, Теперь вы в буквальном смысле сделать цитировать Unquote символ в квадратных скобках вместо простого числа. Так что это хороший удобство. И это своего рода его сейчас. Там же гроздья другие особенности в PHP. И в самом деле, PHP поставляется с пресловутый раковина. Десятки, сотни функций оснащены PHP-- так много больше, чем пришел с С. И это не предназначены для сокрушить а помочь не понимаешь, что мы не больше не придется писать код это своего рода здесь концептуально. Теперь мы можем просто начать воспользовавшись гораздо более расширенные возможности что языки, как PHP есть. Таким образом, мы не должны беспокоиться о двигаться вещи вокруг в памяти. Мы не должны беспокоиться о таНос и все эти более низком уровне, мощные детали, которые вы будете бороться с, если не бороться с, pset5, но вы можете начать скоро само собой разумеющимся. В самом деле, давайте напишем супер простая программа в PHP, как следует. Я собираюсь идти голова в CS50 IDE здесь, и то, что я собираюсь сделать создать новый файл, который очень просто будет называться привет точка PHP. Таким образом, вместо многоточия с, это будет называться точка PHP. И тогда в этом файле, Я могу начать печатать. Но оказывается, что Единственное, что я должен знать, является то, что любой файл PHP в целом, нуждается в начать с какой-то специальный синтаксис. Похожие по духу HTML, но опять же, PHP это язык программирования, а не язык разметки. Таким образом, каждый файл, и это своего рода глупо глядя я признаю. Открыть кронштейн, знак вопроса, PHP. И это только способ языка сказать, эй, компьютер тут приходит какой-то код написана на языке PHP под названием. И тогда в самом конце файла, вы вроде рода противоположность. Вы не написать PHP снова, вам просто сделать вопросительный знак, скобку. И тогда все, что вы положить внутрь из этих двух тегов, так сказать, будет, или должно быть, PHP код. Итак, давайте что-то делать супер просто. Я собираюсь идти вперед и делать отпечаток Def, привет мир, обратная косая черта н, сохранить. А теперь у меня строке, я иду сделать, сделать hello-- нет, я собираюсь сделать, точка слэш привет. Нет, точка слэш, хм. Так что-то другое. И в самом деле, это ключевая разница между PHP и языках, как C C. был так называемый составлен язык. Что это значит для C для компиляции? Что было следствием? Да. АУДИТОРИЯ: Написал его в машинный код поэтому он может быть запущен на компьютере. СПИКЕР 1: Точно. Мы должны сначала преобразовать его в так называемая машина код, нули и единицы, прежде чем он на самом деле будет исполняемый и понятны компьютеру. По Intel внутри. ЦП внутри компьютера. PHP, напротив, то, что называется интерпретируемый язык, который означает, что вы не скомпилировать его в нулей и единиц, машинный код, Вы вместо оставить его в качестве исходного кода. И вы, вместо передать его в качестве входных данных к программе, переводчик что кто-то написал лет назад, что это понимает построчно, характер для характера. Итак, другими словами, люди там написал программа, которая будет выглядеть в вашем кода строка за строкой, и выяснить, что компьютер должен сделать, без преобразования непосредственно нулей и единиц. Так что, если он видит, что цикл, это так называемое переводчик будет, как, все в порядке, я должен сделать что-то снова и снова, и снова. Что я должен делать? Дай мне посмотреть на следующей строке. Дай мне посмотреть на следующей строке. И это действительно интерпретирует это построчно. Таким образом, чтобы выполнить его, я не использую марку. Я не использовать точечную черту в этом случае. Я вместо сделать PHP, который является название программы, также известное, как Переводчик, что это предварительно установлены в CS50 IDE, и теперь мне нужно пропускать Аргумент командной строки, что это довольно просто; имя файл, который я хочу, чтобы интерпретировать. Или более небрежно, что я хочу, чтобы бежать. И если я ударил Enter, там у нас есть это. Привет мир. Теперь выясняется, что я б печати Def намеренно чтобы преодолеть нас от С до PHP. Большинство PHP программистов, как вы увидите, даже не потрудились с помощью печати размораживание. Они просто использовать функцию под названием печать, которая не имеет С. И поэтому, если я повторно это сейчас, это на самом деле ведет себя функционально то же самое. Я не могу использовать процентное S и процент I и так далее, но есть и другие способы в PHP делать это. Но это только сказать, что синтаксически, кроме некоторых странных вещей до сверху, а некоторые странные символы вниз на дне, концепции теперь программирование в этом другом языке будут точно такими же. В самом деле, давайте делать один другой пример. Так что я собираюсь идти вперед и закройте этот файл. Позвольте мне создать еще один, что Я позвоню условия 1 точка PHP. Так что не нулю, потому что то, что я сделал был я оглянулся несколько недель назад, у нас был файл с именем Условия 1 точка С. А что Я был преобразован его в моем голова, и здесь на бумаге, и в ближайшее время на курс-х сайт, строка за строкой в ​​PHP. Таким образом, в C версии, мы сделали что-то как строки с получает получить строку. Так что это немного отличается сделать это в PHP. Вместо этого, я просто хочу делать, или, скорее, я могли бы сделать Int N получает получить INT, в этом примере ранее. Таким образом, вместо того, что я собираюсь сделать п получает прочитать строку, я хотел бы целое, Пожалуйста. Так что это только мое приглашение. И так получается, а Я бы только знаю, что это от того, читать или видеть функцию прежде, читать строки из функции в PHP принимает аргумент, который является быстрое для человека, и его цели в жизни это прочитать строку текста что он или она типа в. И тогда он сохраняет, что текст в переменной п. А теперь я бы хотел, чтобы что-то сделать как я сделал недель назад, в неделю, как один из класса. Если п больше нулю, то, что я собираюсь брать что синтаксис мы только что видели, печать четкости, вы выбрали положительное число, Обратная косая черта п. Иначе, если N равно равна нулю, я идти вперед и сказать, печати Def, Вы выбрали нулевой обратной косой п. В противном случае, в данном случае следует Конечно будет, печать четкости, Вы выбрали отрицательное число. И, конечно, мы можем реализовать логика этой вещи в кучу разные пути, но дело здесь является то, что синтаксически, почти ничего нового. Это просто знак доллара и новая функция и читать линии. Но принципиально, что нового сейчас я интерпретации это. Я передаю его в качестве входных данных на другую программу. Так что, если я хочу, чтобы запустить это, если Я не сделал ни одной ошибки, Я собираюсь запустить PHP, из Условия 1 точка PHP, Enter, Я собираюсь ввести номер 50, и давайте предположим, теперь он работает. Поскольку логика является же материал, как неделю один. Ладно, так что это довольно восторг, верно? Мы могли бы сделать это в любом Количество языков. Давайте что-то делать намного больше, мощный. Давайте проблема отделка установить пять. Так что я собираюсь идти вперед и делать это. Я собираюсь создать файл называется словарь точка PHP, и склонен, как вы могли бы быть карабкаться вниз много нот, ноты только поможет Вы, если вы позволили осуществить проблемы установите пять в PHP. Но мы увидим, как быстро теперь мы может реализовать тот же набор проблем. Таким образом, в словаре точка PHP, я собираюсь предположить, что уже есть файл в мире называется Speller. И в самом деле, я сделал это заранее, и мы не будем ходить через эту линию по линии, но если вы Любопытно, позже и действительно хотите обернуть свой ум вокруг различия между С и PHP, буквально сравнить этот файл, орфографии, с сегодняшнего исходного кода что мы будем создавать позже сегодня, против р множества пять правописания точка с, что мы даем вам, и это почти то же самое построчно. Там еще некоторые знаки доллара. Пару функции немного отличается. Но это хороший способ из рода, видя, как вы переводите с одного языка на другой. И это почти идентичны линия для линии. Но я буду считать, что что существует, и то, что я собираюсь сделать здесь это попытаться взорвать ваш против с помощью повторной реализации полнота задачи установить пять способ быстрее, чем вы делали до сих пор. Так, например, я собираюсь сначала объявить глобальную переменную размер, и установить ее равной нулю. Теперь это не так много сбережений. Коэффициенты вы реализованы Размер почти то же самое, или намек намек, будет сегодня или завтра, только с помощью глобальной переменной под названием Размер и установив его равным нулю. Это не особенно Удивительно, спойлер. Так каковы были ваши данные структуры выбор, те из вас, кто нырнул в и прочитать спецификацию, структуры данных, что уже многие из вас уже используют? Хэш-таблица или попробовать, может быть, некоторые варианты. Так реализации хэш-таблицу, по крайней мере, это своего рода много строк кода, правильно? И не все из них могут быть функционален в этот момент в неделю, но это нормально. Потому что в PHP, если я хочу хэш-таблицу, сделано. Правильно? Так этой переменной, что я только что объявили, очевидно, называется знак доллара стол, за введения раньше. Но я просто хочу, на конец день, массив. Но не индексируются численно Массив, потому что это, как недели две материал, когда мы говорили о массивах. Я хочу хэш-таблицу. Но хэш-таблицы на самом деле только конкретный способ сказать, Вы хотите ассоциативный массив. Вы хотите, чтобы иметь возможность ассоциированные клавиши со значениями. Ключи со значениями. Что представляет собой словарь, на самом деле? Ну, это целая связка ключей. Такие слова, как яблоко, груша, банан и, и все эти английские слова что мы передаем вам. И ценности, которые вы эффективно вставки в словаря либо правда, либо отсутствие, ложно. Другими словами, вы вставляете целая куча пар ключ-значение, яблоко, правда, груша, правда, банан, правда. Так что, когда вы извлекаете или искать до этого данные в вашей хэш-таблицы с функцией проверки, вы либо получить обратно ответ, да, я нашел его в моей комплекса хеш-таблицы, или нет, это не там, так что вы вернуться ложным. Таким образом, чтобы сделать это, все что мне нужно это данные Структура, как я предложил ранее. Мне просто нужно, чтобы быть в состоянии чтобы связать слова как, цитата конец цитаты, символ, со значением, как, истинного. Так что мой хэш-таблица. Давайте на самом деле использовать его. Таким образом, есть несколько функций Мне нужно реализовать. Я собираюсь идти вперед и кусать от функции называется размера. Он не принимает никаких аргументов. Я не возиться с слово, недействительным в PHP. Я просто собираюсь вернуться размер. И, как в сторону, PHP имеет это minorly раздражает деталь, где, если что-то глобальное, вы должны скажите функцию, в которой вы используете это, эй, это глобальная переменная. Так, несовершеннолетний глупость, но вам должны сделать это, тем не менее. Так что о нагрузке? Я собираюсь реализовать функция называется нагрузка который принимает в названии словаря, так же, как в задаче установить пять. И прежде, чем я продолжу, заметить, что я не печатал довольно те же самые вещи. Что, очевидно, отличается в PHP о как вы объявляете функцию против C? Да. АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: Нет Тип возврата. И в самом деле, это так, PHP поскольку это слабо типизированным, Также немного небрежен в этом смысле. Вам не нужно указывать, как программиста то, что эта функция возвращает. Вы должны были бы на самом деле выглядят на код, чтобы понять это. Или читать комментарии или документацию. Так плюсов и минусов эти виды решений. Но я должен сказать, ключевое слово, функция. И когда мы узнаем, JavaScript через пару недель мы собираемся, чтобы увидеть то же самое снова, но это та же самая идея. Имя функции, аргумент или аргументы или их отсутствие, и теперь здесь реализация. Так что я собираюсь сократить некоторые углы просто чтобы быть драматическим на мгновение. Но я собираюсь идти вперед и сказать, что это. Это, как я могу загрузить файл в массив. Существует функция в PHP называется файл. Вы даете это имя файла. Это руки, которые вы обратно массив, внутри из которых каждая строка из файла. С нуля, одного, на до п минус 1 линий. Вот оно, верно? Там нет е чтение. Там нет е Get лет. Там нет процентов с. Там нет боли. Там нет feof. Все, что материал, с которым Вы боролись, возможно, с р установить четыре и пять, уходит. Так что я просто читал эти строки в файл, а затем вы знаете, что? Если я хочу, чтобы перебора этих слов, Я могу сделать, для каждого линий, как линии. Помните, что это было своего рода умный способ итерации по массиву, индекс по индексу, и на каждой итерации вызова текущая строка, знак доллара линия. И здесь я собираюсь пойти и говорят стол, кронштейн, линия, получает правда. Другими словами, это, как я вставить в моей хэш-таблицы в PHP. Я говорю знак доллара таблицу, в которой мой ассоциативный массив, который был пусто за строки кода до выше. То я в него индекс нет, с использованием ряда, но буквально с помощью Ключевое слово, которое меня волнует. Может быть, это яблоко или груша или банан или любой другой, а конкретно я индексации в него, как я предложил ранее. Я беру имя мое Ассоциативный массив, а затем я использовать кавычки конец цитаты в квадратные скобки с строки, вместо фактического числа. И вот оно что. Функция нагрузки делается. После того, как что итерации цикла, я положил все в хэш-таблице. Теперь небольшая оговорка, есть пара вещей, мне нужно, чтобы исправить. И версия, которую я выложу на сайте будет иметь все нюансы, но это в основном только будет какой-то проверка ошибок и некоторые мелкие недочеты. Но это действительно суть его. Если сейчас я хочу, чтобы реализовать функция, вызываемая проверить, что ожидает Слово в качестве аргумента, как я мог бы идти о том, что делать? Ну, Я просто хочу сказать, если внутри моего стола, на месте слова, если установлен. Так что если есть is-- на самом деле, вы знаете, что? Я собираюсь сделать это в немного псевдокода. Но идея та же. Если равен правда, возвращение правда. Все в порядке. Else-- вы можете рода увидеть, где это going-- вернуться ложным. Готово. Проверьте делается. Довольно хороший, правильно? И так, что это действительно становится на? И это тоже, я вырезал некоторые углы. Посмотрите на версии онлайн для всех небольших нюансов. Но это суть его. Индекс в ваш Ассоциативный массив, также известное, как Хеш-таблицы, посмотреть, если есть значение там, если он установлен в истинный, и если да, вернуться правда. Таким образом, мы свели вниз Все сложности. Так вроде сногсшибательное, верно? Я не буду утруждать завершив его выгрузки, потому что в fact-- ой, вы знаете, что? Да, давайте закончим его выгрузки. Выгрузка в хэш-таблице может выглядеть как функции выгрузки, вернуться. ОК, так что это выгрузки. Потому что нет ничего выгрузить, верно? Там нет таНос. Я явно не спросить операционная система для чего-либо. Я только начал использовать переменные. И так это тоже проявление особенности высокоуровневых языков. Итак, еще раз, большинство из этого термина мы занимаемся здесь с С. Супер низком уровне. Вы можете увидеть памяти компьютера. Вы можете ничего не трогать тебя хочу в оперативной памяти компьютера, лучше или хуже. До здесь, мы собираемся отказаться от этой власти. Но мой бог, посмотрите, как гораздо меньше кода я написал. В самом деле, если я не говорили и говорить по моей набора текста, мы были бы сделать с этот пример за пять минут назад. Так что же цена уделяется? Ну давайте посмотрим. Давайте взглянем. Я собираюсь идти вперед и работать CS50. Позвольте мне сначала пойти в сегодня примеры, когда У меня есть каталог тексты, как и раньше. Я собираюсь запустить решение, он приходит с проблемой установить пять называется орфографии, которая находится в учетной записи CS50 в. И я собираюсь запустить его на что-то Большой, как Библии короля Джеймса, просто так, что мы на самом деле поставить сотрудники решения теста. Теперь иногда это интернет немного медленнее, немного быстрее, может занять некоторое время, чтобы просмотреть. Но он взял в общей сложности .56 секунд проверки орфографии Короля Джеймса Библия с использованием раствора персонала. Так довольно хорошо. Ваш может быть гораздо медленнее, и это совершенно нормально. Но это верно здесь. Так что это решение персонала. Если я иду в и очистить PHP версии. И я собираюсь сделать немного как выпечка шоу вещи. Мы собираемся взять код я написал ранее, так что это совершенно правильно. Потому что я написал код не будет чтобы быть совершенно правильно сейчас. Но если я запускаю PHP версии, что я должен отказаться от сегодня? Взял меня пять минут, чтобы осуществить р установить пять, я претензии. Что стоило мне? Да. АУДИТОРИЯ: Скорость. СПИКЕР 1: Скорость. Что вы имеете в виду? АУДИТОРИЯ: Это займет больше времени. СПИКЕР 1: Хорошо. Посмотрим. Это займет больше, не писать, но, чтобы запустить его. Да. Так давайте попробуем это. Так вот я собираюсь идти вперед и делать PHP из правописания, и потому, что файла называется правописания. Так что я не выполнив словарь, напомним, Я бегу программу под названием правописания. Я собираюсь пройти в тот же Файл, король Джеймс пятый. Он летит мимо. Это может быть просто доступ в Интернет, так что не читать слишком много в этом. Но это чувствую больше наверняка. 1.26 секунд. Теперь это все еще довольно блин быстро, не так ли? И только потому, что чувствовал, что больше как три, или четыре, или пять секунд, это только потому, что Интернет был быть медленным. Время компьютер провел составил 1,26 секунд, в сравнении я думаю 0,56. Так более чем вдвое медленно. Теперь, по-прежнему чертовски быстро, но это проявление из, на самом деле, что точная цена. Потому что мы интерпретации в строке кода по линии, и что программа PHP читает мой Код сверху вниз, слева направо, он должен делать больше мышление. Он должен рода преобразования это внутри себя к соответствующему машины Код на лету, так сказать, даже если механике немного отличается. Вместо того чтобы просто подачи в Intel CPU сырые нули и единицы что он понимает изначально. Так абсолютно, руки вниз, мы заплатили цену. И код, написанный на языке как PHP, как правило, медленнее. Но мой бог. Так что теперь, когда я проверить правописание Файл, я потратить дополнительные 0,7 секунд или около 20 часов против реализовать быстрее орфографии, верно? Это своего рода компромисс. И если вы только начинаете р установить пять, не может быть 20 часов. Может быть намного меньше, чем это. Но это компромисс, по-настоящему. И если вы работаете код на самом деле большой наборы данных, или на старом оборудовании, даже, эти виды различий безусловно, может добавить вверх. Любые вопросы до сих пор? Да. АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: Извините, может Вы говорите, что еще раз? АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: Вы сдаваться время. Ну, так что да. Вы экономите время, не имея для компиляции, если это то, что вы просите. И в самом деле, в CS50, большинство программ, даже если они может занять некоторое время писать, они относительно короткие. Несколько десятков, несколько сотен строк кода, и поэтому они составить довольно быстро. Но когда вы начинаете писать большие программы, как, если вы Microsoft или вы Google и писать действительно большие программы в C, C ++ или, или аналогично составлен языки, может занять много секунд, или даже минут или больше к собрать миллионы строк кода. И там тоже, что Разница будет сложить. И в самом деле, когда мы Переход сегодня, в тот же день Сегодня, чтобы веб-программирования с помощью PHP, вы собираюсь найти его просто так более приятным, чтобы написать код когда вы не должны делать это глупо шаги, как изменение в вашем терминале окна, тип марка привет, повторно запустить его, перезагрузите окно. Просто так много глупо механические шаги, которые просто получить в пути делать интересно, весело работы. И действительно мы бросаем, что покончить с PHP. И мы можем взаимодействовать с ней быстрее. Да. АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: Конечно. Могу ли я уточнить, что это значит быть интерпретированы? Когда вы собираете язык как С, она идет вниз как мы сказали, чтобы машины код, нули и единицы. И Intel решила лет назад, что некоторые модели из нулей и единиц представляют сложение, вычитание или, или печати, или другие основные операции. В мире интерпретируемый язык как PHP, JavaScript или Python, или, или Ruby, или сгустки другие, а кто-то написал interpreter-- в данном случае, это также называется PHP, идентичны Название language--, что существенно имеет большой цикл в нем, что итерации по всем линиям кода что я подать его на вход, как привет точка PHP, или словарь точка PHP. И тогда вы можете думать о их большой цикл, как имеющие много условий. И эти условия есть, если человек написал ключевое слово, начать делать его или ее Код снова и снова. Или, если человек имеет написал строку кода, если только выполнить их Следующая строка условно. Так что это действительно, как интерпретации это в человеческом смысле, линии по линии, и что только занимает время. Она занимает над головой. И так, что это price-- хорошо question-- мы платим. Так давайте сделаем еще один демо это немного более драматичным. Существует, я бы сказал приблизительная это в 90% вероятность неудачу ужасно а, но вы будете поражены, с 10% вероятностью. Таким образом, каждый год мы стараемся это сделать, в результате чего мы попробуйте написать программу, которая проходит через Проблема установить ноль, для которых у Вас есть представленные ваши телефоны и много другой демографической информации, и мы программно отправить вам текстовое сообщение. А потом каждого телефона начнет пищать или вибрирует, и это просто удивительно, потому что Ну, посмотрите на то, что компьютеры могут сделать. Это редко работает правильно кажется, в значительной степени потому что я, как правило, получают в черный список по Gmail или какой-либо другой сервис за фактически пытается сделать это по шкале. Но самое смешное, тоже, так как мы не все здесь сегодня, забавный факт в последний раз мы попытался это два года назад, Я думаю, что я написал программу который сидел в петле итерации над всеми студентами в классе, и каждый из них текст сообщения, и он сказал, что-то вроде, почему ты не в лекции? Любовь, CS50 бота. Вы понятия не имеете, сколько апологетические и вроде болезненные письма Я получил в ответ от п минус 100 человек, которые не были здесь тот день. И еще смешнее, более позорным story-- Вы знаете, давайте его там. Это уже на видео несколько лет назад. Таким образом, вы скоро увидите меня написать цикл, в результате чего это очень легко написать, что ошибка в цикл, таким образом, что первый раз через петлю, то отправить одного текстового сообщения. Во второй раз через петлю I должен был послать еще один текстовое сообщение, а затем еще один текст сообщение, и еще один. Но, оказывается, если вы сделаете опечатку при программировании, иногда можете писать программы, которые посылают друг Текст сообщения, а затем два текстовые сообщения, затем три текстовые сообщения всем, кто уже получил текстовое сообщение. И, как вы знаете, что-то делать, плюс что-то, плюс что-то, плюс что-то, это большой вывода много текстовых сообщений или н квадрат, или на $ 0,10 текстовое сообщение, $ 20000. К счастью, я попал Control-C, что, прежде чем произошло, но я обязан, по крайней мере один из ваших предшественников $ 20 за 200 с лишним текстовые сообщения, что не только пошел в своем телефоне, но Также было как старший раскладушки так что хотелось выталкивается из его памяти каждый персональный текст сообщение он на самом деле получил. Так у нас одна цель сегодня, не делать этого. Может быть, включить режим полета. Все в порядке. Итак, давайте в Программа здесь callled-- что я буду называть текст точка PHP. И заранее, я получил два файла здесь. Я сделал файл для всего персонала, который получил все права Информация персонал, все имена с веб-сайта курса. И потом, а пока я просто положил некоторые поддельные номера 555-1212. Так они не будут на самом деле никуда. Но обратите внимание, внутри этого файла CSV, которые мы говорили о кратко, прежде чем в контексте файла IO. Что такое файл CSV? Разделенных запятыми переменных. И это вроде как очень простая база данных, если вы будете. Там вроде рода из четырех колонок в этом файле, и зубчатые, но запятые существу представляют столбцы в файле. В первой колонке ТФ или имя СА. Вторая колонка является их фамилия. Третья колонка является их номер телефона. И четвертый столбец, по-видимому is-- Четвертый столбец, по-видимому, что? ОК, так что это их носитель. Так Verizon, Sprint или, или то, что нет. И если я не оговорился ранее, CSV. Разделенных запятыми значений CSV здесь. Так что я могу сделать с этим? Ну это просто большой текстовый файл, и это своего рода долго, не так ли? Как это будет быть вид раздражает. И оказывается, однако, что, если я хотите отправить текстовое сообщение, давайте Алекс говорят здесь. Позвольте мне идти в моем браузере и выйти из полноэкранного режима только так я могу переключаться. Оказывается, давайте посмотрим, если я иду в здесь, и войти в Gmail, все в порядке. Не смотрите на этой части. Просто я увижу. конечно можно прямая все еще видеть, что я делаю. Все в порядке. Так вот просто Gmail с Счетом Джона Гарварда. Так что, если я хочу, чтобы отправить Текст сообщения Алекс, Я могу, конечно, создать сообщение. И получается, и я имею протестировали его с Алексом прежде, чем здесь, так что вы можете добавить некоторую область назвать в народных телефонов, потому что существует в мире вещи называются SMS для шлюзов электронной почты. Какой причудливый способ сказать все из нас, кто имеют мобильные телефоны, которые есть телефонные номера, конечно, есть, вероятно, для перевозчика, определенный суффикс, как в Vtext.com для Verizon текстового сообщения точка ком, что Вы можете добавить к вашему личный номер телефона, а затем вы или друзья, или ваши родители могут Текст, который вы в данный конкретный адрес. И Verizon имеет сервер, электронную почту Сервер, что при получении этого письма, смотрит на цифровой части, а затем использует независимо особое волшебство промышленности они есть на самом деле отправить его в течение эфиру конкретной ячейке Телефон. Теперь это приятно, потому что я не знаю, как отправить текстовое сообщение или написать код, но для моего мобильного телефона, и вы могли бы сделать точно, что для окончательный проект, но сейчас все У меня есть мой ноутбук здесь. Поэтому я хочу, чтобы перебрать этот CSV Файл, линия, по линии, по линии, по линии, захватить каждый из телефонных номеров сотрудников, в и их носитель и программно, объединить, то есть, подключите телефон Количество с соответствующим доменным именем а затем отправить по электронной почте. Так что это много шагов. И удачи делать, что в С Это кошмар ситуации , чтобы открыть файл, прочитать его линия, по линии, по линии, как вы видим, или, возможно, скоро увидим с проблемой установить пять, если не Проблема установить четыре, а затем динамически объединять две строки вместе, потому что в C, взять две строки и объединить их, Что вы минимально нужно сделать наиболее вероятным? Вы должны объявить больше памяти, верно? И спросите, таНос, я могу иметь больше памяти? Так что я могу положить половину этого Здесь половина это здесь. Это так много шагов. И к этому моменту вы потеряли Интерес к глупой маленькой демо где вы сделать каждого телефона звуковой сигнал. Давайте сделаем этот вид PHP стиль, в котором мы только что начать использовать больше той раковине. И идеи принципиально та же, но мы не должны волноваться слишком много об этом более низком уровне. Итак, давайте посмотрим, как я мог бы идти об этом. И просто так, что я не повторить прошлые ошибки, Я написал несколько заметок для себя здесь. И давайте посмотрим, если я могу ходить с нами через некоторые из основных шагов, и то ради времени мы будем в возможно, сократить некоторые углы в конце. Я собираюсь идти вперед и делать открыт Кронштейн PHP, чтобы начать этот файл. И я собираюсь идти вперед и делать это. Файл ручку, как вы скоро увидеть, на самом деле вызывает функцию под названием F открыт. И помните, что это открывает файл. И цитата, конец цитаты, г означает, что, опять? Просто откройте его для чтения. В настоящее время в р набор для, вы сделали это. И справиться может быть что угодно, фу, бар, барельеф, любая переменная имя. Но, как правило компьютер ученый назвал бы открыть файл, давая вам дескриптор файла, то, чтобы удержать, так сказать. Я просто собираюсь сделать некоторые проверки ошибок. Таким образом, если ручка является ложным, так же, как в С, я собираюсь сделать что-то подобное, не может открыть файл, обратной косой п. А потом я просто собираюсь идти вперед и выйти. И оказывается, в PHP, Я не внутри функции. Там нет Основная функция здесь. Так что я не вернусь, как таковой. Я выхожу. Какой, по существу, одно и то же. И я с одним выходом у наверное. Один просто означает ошибку некоторого вида. Это не равно нулю, так что это ошибка. Ладно, так что если я здесь в настоящее время в моей программе я открыл файл. Я собираюсь идти вперед и объявить массив называется адреса, и в C Я бы знать Размер массива в заранее, не так ли? Или я должен был бы заявить об этом является указателем, а затем использовать таНос. И тогда каждый раз я читал через другой строки в файле, Я собираюсь нужно таНос больше памяти, больше памяти таНос. Это боль в шее. И к счастью, PHP, и Руби, и Python, JavaScript и они будет расти ваши массивы для вас автоматически. Нет больше таНос. Нет больше управления памятью. Компьютер заботится об этом. Но цена, которую вы платите. Это немного медленнее. А для программы, как это мы не собираемся, чтобы заметить. Мы собираемся отправить 100 текстовых сообщений. Например, не будет чувствовать себя его. Это действительно только начинает Независимо от вашего выбора языка когда ваши данные или ваши программы получить действительно, действительно значительное, как будет случай больше, с нашей веб-материала, основанного. Но сейчас давайте продвигаться вперед. Пока получается, что есть функция в C называется F получить CSV. Файл CSV получить, что занимает ручку файл в качестве аргумента, и он переходит затем, ряд, по ряд, по ряду читать в строку. Так что просто читает строку текста из файла. Но то, что приятно об этой функции, это не просто передать мне строку текста. Это выглядит для тех запятыми, и анализирует линию. И для разбора строки означает разделить это на определенных значений в данном контексте. Другими словами, знак доллара строка переменной это даст мне кучу индексов. Это собирается быть Первый столбец в моей CSV. Это будет второй колонка, это будет третий, и это будет четвертый. Потому что помню, и не превосходят сотрудничать в последний раз мы делали это, но если я могу скачать персонал точка CSV. Упс, не переименовать. Если я могу скачать персонала точка CSV, и попробуйте открыть его, Я уже registered-- О, я не обновлять Excel, так как в последний раз. Вы увидите, что в штате точка CSV, у меня есть четыре колонки. Так что, когда я прочитал в Первая строка Эбби здесь, Знак доллара строка 0 это Эбби, Знак доллара ряд один Лайонс, Знак доллара ряд двух ее номер, а затем носитель ее телефона. Так вот и все. И, что приятно, потому что я не должны в настоящее время выяснить где все эти запятой на самом деле. Так что я собираюсь идти вперед и сделать это, учитывая, что определение, Я хочу сказать, что ее зовут в строке кронштейна нулевой, как и обещал. И я собираюсь grab-- и на самом деле, вы знаете, что? Я не собираюсь беспокоиться о ее имя, в этом случае. Я собираюсь держать это простым. Я собираюсь сделать ее номер в строке кронштейна два, я думаю. И ее носитель был в том, где? Ряд три, один над. Так что ничего нового там. Это просто нуля индексирование в массиве. А теперь, я собираюсь сделать следующее. Если перевозчик равна равна AT & T-- Я просто хочу, чтобы иметь loop-- Я хочу создать электронную почту адрес, который выглядит следующим образом. Это будет 617-555-1212 на то, что это, text.ATT.net, это то, что я хочу сделать. Так как я могу это сделать? Я собираюсь сделать следующее. Ее адрес будет ее номер, и теперь, позвольте мне идти вперед и делать это. Это некоторые фанки синтаксис. Я мог бы сделать трюк процентов ы, но я могу на самом деле просто сделать это. Так что это PHP вещь, но давайте рассмотрим, что я делаю. Доллары, войдите на адрес левая, просто переменная. Дайте мне переменную. Я не нужно указывать тип. PHP будет понять это. На правой стороне, что тип данных этой всей вещи на правая? Выглядит как струна, потому что есть двойная цитирует далеко слева и справа. Теперь есть некоторые фанки новый синтаксис здесь. Там в фигурные скобки, и количество знак доллара. Но взять думаю, что это то, что синтаксис вероятно, говорит PHP, чтобы сделать для меня? Да. Просто вставьте значение там. Так нет процентов с. Мы могли бы использовать для печати F, S или печать е или что-то вроде этого, но PHP и много высокоуровневых языков, Вы увидите, что вы могли бы сделать то же самое, функционально, может быть, шесть различных способов. И так он начинает становиться вопрос дизайна или стиля. Так что это просто загадочно глядя способ сказать, дайте мне адрес электронной почты, но плагин числа в между этими фигурные скобки. И фигурные скобки не будет в конечном итоге в конечном адресу. Теперь мы можем пропустить некоторые из эти линии ради Времени. Так что, если равен носитель равна verHorizon-- возгласы, Verizon-- Я хочу сделать что-то очень похожи, где адрес получает, цитата, конец цитаты, номер на text.ATT.net. И тогда я могу сделать такой же вещь для остальных перевозчиков. Но я просто сделать точку, точку, точку в настоящее время. А теперь давайте предположим, что Я хочу, чтобы добавить массив, нажать. Я хочу, чтобы добавить к Массив, называемый адреса. Этот адрес, это, как вы что-то добавить в массив в PHP. Вам не нужно делать таНос. Вы не должны изменять размеры массива. Вы просто говорите массива, толчок. Что вы хотите, чтобы push-- что массив Вы хотите, чтобы подтолкнуть что-то на? Адреса. То, что вы хотите, чтобы подтолкнуть на адреса? Адрес. И в самом деле, если вы действительно хотите быть умным, некоторые синтаксический сахар для этого, так сказать, который просто означает, как вы можете сделать это в красивее образом, было бы это сделать. Это тоже имеет эффект растет массив адресов по размеру одной, а затем хлопнуть, что дополнительные Адрес электронной почты в нее. Да. АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: опечатка на еще if-- ой, носитель. Ничего страшного. Это также не будет нравится моя неспособность осуществить часть этой программы позже. Но благодарю вас за внимание. Еще одна ошибка. Спасибо. Мы хотим, чтобы это Vtext.com. Да. Все в порядке. Так где же это нам дает? Мы написали код, чтобы открыть файл. У нас есть цикл для перебора над рядами в файле. У нас есть код, который добавляет к моему Массив, по одному за раз, то правильно отформатирован адрес электронной почты. Так все, что действительно остается только отправить по электронной почте, чтобы каждый из этих людей. Так что я пошел вперед и готовится себя следующим образом. То, что я собираюсь сделать здесь is-- и давайте идти вперед и пропустить какой-то реальный код, который выглядит как это. Так вот перед запеченные Версия я уже писал ранее. И заметьте, я закончил реализации Sprint. Я закончил реализацию T-Mobile. Я закончил реализации Virgin Mobile. И я заранее извиняюсь. Там в несколько перевозчиков, которые некоторые студенты в классе есть что я не стал перечислять в состоянии, если здесь. Так что не все тексты будут выходить. Но давайте посмотрим, что еще мне нужно сделать. Я закрываю файл, просто как в р установить четыре. И это новый синтаксис. И мы будем видеть немного бит этого в течение долгого времени, особенно с р установить семь и восемь. Но это синтаксис для создания особый тип структуры. Оказывается, есть библиотека, которая поставляется с PHP, называется PHP почтовой программы. Его цель в жизни, чтобы программно отправить электронную почту. Это код кто-то писал, что делает его легче для нас, чтобы отправлять электронную почту, таким образом, мы не должны держать вперед и назад, чтобы Gmail, и вставить в адресах электронной почты людей. Там целая куча линий здесь что, честно говоря, я просто вид скопирован и вставить в документации. И в самом деле, если вы Любопытно, я оставил все из адресов документации в коде, что мы будем создавать позже. И обратите внимание, что среди вещи, которые я делаю есть, я говорю эту библиотеку, использовать сервер Gmail, верно? SMTP мы говорили кратко, когда мы были в Йельском университете о том, Simple Mail протокол передачи. Это протокол, который серверы, используемые для отправки электронной почты, и that's-- Gmail имеет один из них. Порт, это число TCP-порт. Это нормально, если вы не видел 587 раньше. Просто знаю, что из документации. Вот мое имя пользователя. Я собираюсь использовать CF50 бота. И в данный момент, я просто хочу, чтобы введите в фактический пароль бота. А потом сюда, обратите внимание, что осталось. Я приложил от адреса чтобы быть Bot на CS50.net. Я думаю, что не пожалеете отправив Текст сообщения до 800 человек, что говорит, скучаю по тебе, любовь CS50 бот, возможно, для тех, кто не может сделать это сегодня. И тогда в линии 76, что мне делать? Этот вид выглядит как С. Таким образом, для I равен 0, п equals-- Теперь рассчитывать новый. Оказывается, что если вы хотите получить количество вещей в массиве, Вы не должны помнить его больше. Вы можете просто спросить Функция называется граф, и он расскажет вам, как много Адреса в этом массиве. А потом я собираюсь добавить адрес в электронной почте. И я знаю, что это из используя документацию. Там это функция надстройки адрес. А теперь заметите, что одна часть синтаксиса. Мы видели это раньше в C. Аналогичная по духу. Вы можете думать о знак доллара почте в качестве переменной, которая это. Но это структура внутри которые являются не только свойства, переменные, если хотите. Но оказывается, что в PHP, который является объектно-ориентированное программирование язык, как Java, если вы приняли АСУ ТП. Знак доллара почта, если вы хотите, целью которых он также имеет функции внутри него, или методы. Таким образом, это означает, что специальный PHP-почтовая библиотека, если я получил его переменной, если я хочу, чтобы вызвать функцию, которая поставляется с этой библиотекой, для сегодняшних целей, просто знаю, вы используете обозначения со стрелкой. Там нет точечной нотации. Это просто стрелка. Но это не указатель. Это просто заимствованы из синтаксиса языка C. Так называют добавить адрес внутри объект этой библиотеки или переменная. Все в порядке. Это волшебное линии. Вот как отправить электронную почту. Это эквивалент открытия Gmail, введя его, и удар отправить. Но это будет вместо Написать по электронной почте к этому адресу, с этим телом, от CS50 бота. А теперь ключевая строка. Эта линия была отсутствует в как 2 011 когда я думаю, что я в прошлом пытался это. Эта линия есть, конечно, очищает адреса. Так логично, если я не очистить адрес после каждой итерации, первый по электронной почте или текстовое сообщение идет к Алисе, вторая идет на Алиса и Боб, третий идет Алисой и Бобом и Чарли, следовательно, очень дорогая ошибка Я сделал в этом году. Итак, давайте посмотрим. Есть вопросы прежде чем мы посылаем вам всю текст сообщение с 10-процентной вероятностью? Любые вопросы? Все в порядке. Давайте мне идти сюда и изменение пароль, что должно работать, скорее всего, получите черный список Gmail. Таким образом, они, возможно, не все идут из, так они, вероятно, не нравится нам отправке письма 800 в цикле все сразу. Так что это не особенно человеческого поведения. О, я собираюсь изменить одну вещь. Наверху, я собираюсь sent-- изменить файл CSV студенты точка. И я не открою, но это идентичен файл CSV с не 100 сотрудников, но 800 студентов, только из Гарварда, потому что Йельский имеет выемку октября на этой неделе. И кажется, что своего рода рефлекс вещи сделать, чтобы текст все из них, как, почему они не в классе на отдыхе. Ничего страшного. Всего студентов Гарварда сегодня внутри этого файла. А теперь давайте вернемся на мой окне терминала. Я вроде нервничал. ОК, так что теперь я собираюсь идти в каталог и PHP текст точка PHP. Как насчет одного храброго добровольца? Так что я не хочу, это на меня. ОК, давай до. Как тебя зовут? МАЙЯ Майя. СПИКЕР 1: Майя. Приходите на вверх, майя. Все в порядке. Давайте посмотрим, если это работает. Я положил свой адрес электронной почты в file-- свой собственный номер телефона в файле, так что, надеюсь, я получу один, а также. Приятно познакомиться. МАЙЯ: Также. СПИКЕР 1: Все, что Вам нужно сделать, это Нажмите Enter, чтобы отправить 800 текстовых сообщений, если я не испортить. Хороший. Может потребоваться некоторое время, по статистике, пока мы не получить к электронной почте address-- текстовое сообщение, что это в комнате прямо сейчас. Давайте задержаться и посмотреть. АУДИТОРИЯ: [Свист] СПИКЕР 1: О, да. АУДИТОРИЯ: О, Гоча. СПИКЕР 1: Для петель are-- это не медленно из-за PHP. Это потому, что Gmail медленно является дросселирования нас и не позволяя нам отправить больше, чем как один адрес электронной почты в секунду. Что-нибудь? Это было трудно, что для меня, чтобы проверить на домой только с меня и моей одном телефоне, так что. Это, надеюсь, от бота? Да? Нет? Скажи да. Нет? Это от друга? Неловко. ХОРОШО. Довольно уверен, что это, хотя работает. Ой-ой. Они black-- ой, подождите минуту. О, вы знаете, что? Один момент, пожалуйста. Только майя и я-- Миа, это было? МАЙЯ Майя. СПИКЕР 1: Майя, собираются знаю, что я сделал не так. Ой, подождите минутку. Я думаю, что я только что отправил 100 текстовые сообщения 555-1212. Поддерживать. Я не могу победить любой год. ХОРОШО. Майя? Fix, что в пост-продакшн. Черт возьми! Исходя из адреса. ОК, стоять. Сожалею. Это больно каждый год. ОК, один момент. Это хорошо. Я вместо собираюсь сделать это. Напечатать адрес. ОК, стоять. Печать адреса, кронштейн я. Да, мне это нравится. Доллар sign-- ОК я объясню, что я делает в настоящее время, после того как я запускаю это. Каждый год. ОК, здесь мы идем. У меня есть просто-- и я не хочу, показать номер телефона каждого, но Майя может подтвердить кивком головы, что она видит все это номер телефона в классе что я собираюсь скопировать в программа под названием Gmail. И если в Gmail, то, что мы хотим сказать? Скучаю по тебе. Love--, что не от меня. Я даже не попал отправить еще. Так что давайте идти вперед и делать это, если я могу увеличить. ХОРОШО. Так я использую программу под названием Gmail в настоящее время. Если Майя, вы хотели бы нажмите кнопку Отправить, мы будет имитировать то, что, что Код должен был сделать. Что-нибудь? [BEEPS] АУДИТОРИЯ: Да. СПИКЕР 1: Да? Спасение? АУДИТОРИЯ: Да. СПИКЕР 1: Мисс вы. И я собираюсь отправить все остальное. Я разослал половину, потому что я не думаю, что Gmail будет пусть те пройти. Так что помните, что сегодня день что вы узнали, что я могу использовать Gmail. Это было ужасно. Большой аплодисменты майя. Спасибо. Ладно, так. что [BEEPS] Мы получили несколько звуковых сигнала, да? Все в порядке. Теперь я иду, чтобы получить 700 действительно несчастные письма от одноклассников назад. Так, по крайней мере, мы увидим если оно того стоило. Так что пошло не так? Я выяснить, что пошло неправильным после факта, а просто посмотреть, как легко это должно было сделать, что в PHP. Так что мы можем реально сделать сейчас, у нас есть эта выразительность PHP. Это was-- это было ужасно. Все в порядке. Так, чтобы было, что должен был сделать. Это было мне тестирования сегодня утром на мой телефон, фактический скриншот моего телефона. Но теперь давайте рассмотрим, почему мы на самом деле внедрения все эти вещи в первую очередь. Таким образом, цель состоит не в написать эти программы, написаны в командной строке, не так ли? Так что я написал простой привет программа, я написал маленькая программа, которая делает условные, и использовать линию чтения, и так далее. И в теории, я просто написал программа, которая разослал 800 текстовых сообщений, давать или принимать 800. И, что программа была все по-прежнему работать в командной строке. И это, конечно, не Интернет, не так ли? Цель сейчас, чтобы начать использовать то, что я претендовать более простой в использовании язык, осмелюсь сказать, более мощный язык с точки зрения из особенностей, которые прийти с ним, чтобы начать написание кода, который генерирует веб-страницы. Так в последний раз, и на прошлой неделе, мы говорили о HTTP и HTML. И то, что приятно об HTML является то, что это просто чистый текст. И, конечно, текст то, что вы можете печатать буквально вызова печать Функция F, или функция печати. И в самом деле, это то, что РНР теперь собирается, чтобы позволить нам делать. Так среди примеров есть в современном исходном коде, в дополнение к некоторым из кода что я ставлю там минуту назад, у нас есть программы, как это, например. Froshims или Первокурсник Внутренние спорта, был на самом деле один из первых extracurriculars Я связался с лет назад. И мой сосед по комнате, и я, с некоторые другие дети на территории кампуса, используется для запуска программы froshims. Я получаю мои текстовые сообщения сих пор. Теперь, чтобы мы, назад в день, так что это был 1 996 или около того, там был интернет, но не было process-- есть не было веб-сайт для froshims. И поэтому, если вы хотите, чтобы зарегистрироваться для футбол или волейбол или любой другой, Вы бы заполнить эту вещь называется лист бумаги, и вы бы ходить по Гарварде двор, и вы слайд бы это в почтовый слот сопровождающий, который был в Wigglesworth, один из общежития. И это вы зарегистрировались. И он или она тогда составить электронную почту к вам вручную, так же, как я только что сделал здесь с майя, и тогда вы будет подтверждено как был зарегистрирован. Так что это было как с низким висящих плодов, так сказать. Это был своего рода глупо, что мы использовали бумагу для этого. Я хотел, чтобы мы могли просто пойти на веб-сайте, или есть первокурсники идут на сайт, зарегистрироваться спорта, и просто автоматизировать много этого материала поставив их имена и электронные письма и так далее в базу данных. И в самом деле, самая первая версия веб-сайта, с помощью супер уродливые HTML, возможно, смотрел что-то подобное. Это было на самом деле, по иронии судьбы, более неловко, глядя, чем это спине тогда. Но я использовал язык программирования. Не PHP, а называется Perl, который является старый язык, но очень близки по духу. И я просто полностью учил его к себе. И он взял меня некоторое время, чтобы понять это, просить много вопросов друзей. Но идеи там были точно такими же. Потому что то, что PHP был на самом деле предназначены для не командной строки вещи мы просто играли с, но для веб-программирования. Это действительно связаны в своей функции устанавливается в сети, как следует. Это froshims. И если бы я хотел, чтобы зарегистрироваться в этой форме, это вполне уродливой, конечно, но позвольте мне идти вперед и быть менее комфортно студент, и все, что спорт для Matthews, нажмите Register. То, что я хочу, чтобы быть в состоянии сделать это подать информацию из формы, не к серверу Google, как мы сделали в прошлый раз, полностью обман с помощью их бэкэнда, я хочу, чтобы реализовать свой собственный код бэкэнда. Это означает, записи PHP Код, который живет в URL что данные формы могут быть представлены. И тогда ваш код, написано в РНР на сервере, может ответить на этот ввод данных пользователем. Как его или ее имя, или уровень комфорта, или в общежитии, а затем сделать что-то с ним. В этом случае, я просто тупо напечатаны его как текст, который не все, что красиво. Но вы, безусловно, представьте себе, если вы знаете, HTML, и вы скоро знаю, как для генерации HTML с печатью F, и печать, и аналогичные функции, вы можете, конечно, генерировать красивее веб-страницу, говорит, эй Дэвид, ты теперь зарегистрирован. Ты менее комфортно Студент из Мэтьюз, верно? Вы можете просто использовать целую кучу% СЭС, или фигурные скобки и знак доллара обозначения я минуту назад, чтобы генерировать текст, который более удобный чем это. Итак, давайте взглянем на этот один файл. Froshim нулю точка PHP выглядит так. Когда я перезагрузить CS50 IDE, froshim нулю выглядит как это. Это froshim нулю точка PHP. И что вы заметите, об этом файле? АУДИТОРИЯ: [неразборчиво] СПИКЕР 1: Извините, немного громче? АУДИТОРИЯ: [неразборчиво] Это все в HTML. И в самом деле, это, потому Что интересно PHP является то, что он был разработан чтобы быть, лучше или еще хуже, приобщены с HTML кодом. И в самом деле, даже если это Файл, froshim нулевой точка PHP, имеет PHP комментарий в верхней это, это всего лишь HTML. Но в отличие от, если я открываю, давайте скажем, зарегистрируйтесь нулевой точка PHP, который просто имеет большой комментарий в верхней части. Это тоже выглядит почти полностью как HTML, для чего, кроме? Линия, на что, 21 выглядит немного странно. Но обратите внимание, я входа в режим PHP с открытой скобки знак вопроса PHP. Тогда я получил некоторые вещи. И тогда в конце этой строки почти меня, вопросительный знак PHP. И это то, что я имею в виду перемежающимися. Вы можете написать HTML, что вы только что хотите, чтобы сервер выплюнуть. Но если вы хотите сделать что-то динамический полпути страницы, как вставить мое имя или общежитии или уровень комфорта, Я могу использовать функцию как печать г, который является печатать рекурсивной, который просто означает, распечатать эту переменную, форматирование его как вы хотите. Это действительно не человека цели, это просто для отладки или диагностических целей. Так вот, как я это сделал. Если я вместо этого пойти froshims двух точек PHP, заметить, что действие этой формы не зарегистрирован нулевой точка PHP как old-- предыдущий был на самом деле. Но это зарегистрировано два точка PHP. Итак, давайте посмотрим на то, как этот ведет себя немного по-другому. Если я иду в версии два. Если здесь, если я зарегистрироваться в качестве Давида, менее удобный, с общежития в Мэтьюз, регистр. Поэтому в этот раз он сказал, вы зарегистрировано не на самом деле. Давайте посмотрим, что я сделал здесь. Если я смотрю на регистре двух точек PHP, это имеет еще несколько PHP код. Это немного чище, хотя он еще обертывания немного долго на этой линии. Обратите внимание, здесь. Я распечатать мой HTML тег, моя голова тег, мой тег заголовка, голова, тело. И тогда я начинаю говорить вещи, как войти в режим PHP. И так, что тег, открытый кронштейн PHP-- знак вопроса PHP говорит, эй, сервер, execute-- интерпретировать следующее материал, как PHP пока вы не увидеть конечный тег. И даже если вы не могли бы знать любой другой PHP, чем вы видели до сих пор, Вы можете прочитать вид это довольно интуитивно. Если имя пустое или комфорт пусто, либо в общежитии пуст, что мне делать? Что я говорю пользователя? Вы должны предоставить ваше имя, комфорт, и общие, и так далее. В противном случае, я говорю, что вы зарегистрировано, ну не на самом деле. И я говорю не очень потому что нет базы данных. Я ничего не делаю с данными. Я просто выбросить для демонстрационных целей. Теперь я вроде поскупились по линии 22. Там больше синтаксис есть, но знак доллара подчеркивают пост отчасти интересно. И это то, что приятно об PHP. В PHP, вы должны, что называется несколько супер глобальные переменные. Они являются своего рода еще более важно, чем глобальные переменные. И это все капитализируются как таковой, приходят с PHP. Так что, если у вас есть сервер, который имеет установлен веб-сервер, как Apache, и вы установите язык поддержка PHP, все вдруг вы может начать использовать эти супер глобальные переменные в коде. И то, что приятно об PHP является то, что, если вы просто написать файл, который заканчивается в точке PHP, положил его на веб-сервере, и тогда вы представить форму к нему с помощью этого тега действий и тега формы, что атрибут действия в Форма тег, PHP и веб- полностью выясняет, как захватить все эти пар ключ-значение из в URL, как вопрос Знак Q равен кошек, он будет выяснить, как д и кошек. Если вы представить фото, или имя пользователя, или пароль, нравится Facebook, PHP будет выяснить для вас где все эти данные. И это будет просто передать Вы ассоциативный массив называется знак подчеркивания доллар пост, или знак подчеркивания доллар получить, в зависимости от того, вы с помощью GET или отправлять представления. И это будет просто передать вам супер глобальная переменная, так что если вы хотите получить на название что пользователь представлен с помощью этой сети Форма, вы в буквальном смысле просто сказать имя в супер глобальную переменную, цитата, конец цитаты, имя. И цитата, конец цитаты комфорт, и цитата, конец цитаты общежития. И мы собираемся, чтобы быть в состоянии сделать это и многое другое с PHP. И хотя это было вихрь взгляд на нее, мы погрузиться в гораздо более следующей неделе. Мы ввести базу данных так что вы на самом деле собирается начать реализацию самостоятельно электронная торговля based-- как веб-сайт в времени, просто через неделю. Таким образом, мы будем видеть вас в следующий раз, и надеюсь, что вы получили текстовые сообщения. До свидания. [Играет музыка] [ОТКРЫТИЕ ДВЕРИ] СПИКЕР 2: Привет. СПИКЕР 3: Что случилось? СПИКЕР 2: Что вы делаете? СПИКЕР 3: Работа по набору проблем. СПИКЕР 2: Ницца. Дай пять. [ДАЙ ПЯТЬ] Что are-- э-э, что ты здесь делаешь? СПИКЕР 3: Просто болтаться. Только что вернулся из спортзала. Я не мог помочь, но заметил, когда мы высокого проигрывал, что у вас есть довольно грубые руки. Вы идете в спортзал? СПИКЕР 2: Нет Нет. СПИКЕР 3: Чувак, ты выглядишь довольно большой. Какие это плохо, потому что все знают, 8-шар большой человек в университетском городке. Дай пять. СПИКЕР 2: Э-э, нет. Нет, я думаю, что я хорошо. Я думаю, что я хорошо.