[Powered by Google Translate] [Седмица 8]
[Дейвид J Малан] [Харвардския университет]
[Това е CS50. [CS50.TV]
>> Добре дошъл.
Това е CS50, и това е началото на седмица 8.
Няколко възможности тази седмица,
сред тях този разговор тук, при което някои храни ще бъде обслужен.
За повече подробности се провери на слайдове, които са онлайн.
А също и друго събитие тази седмица от нашата собствена Томас Carriero.
Той е един от бивши сътрудници CS50 глава на преподаване, който в момента е в Dropbox,
и той е човек, който ни уредила с знаеш ли какво,
така че ако искате повече, че главата им разговор този следобед за Dropbox и повече.
CS50 обяд е този петък.
Да се ​​присъедините към нас, ако имате възможност, 01:15 часа, както обикновено, Огън и лед.
>> И сега ние се потопите в нещо, наречено Семинари.
Нашите CS50 Семинари, за изтегляне от пазара, са тези незадължителни класове, водени от учението сътрудници
и курс помощници и приятели на курса,
хора от една група на територията на колежа, наречена ABCD, който е група от
technophiles на територията на колежа, както и група, наречена HCS,
Харвард Computer Society, студенти, които имат близки интерес в областта на компютрите.
Тази година списък на семинари включва семинари за Android и IOS и JavaScript
и PHP, Unix, Vim, и повече, за да осъзнаят, че тези семинари идват.
Ако искате да потвърдят за всеки един от тях се отправят към този адрес там.
Тогава ние ще се публикува на интернет страницата на курса времена и места, след като те са финализирани.
Но знай, на стойност 5 година на предишни семинари на разположение онлайн,
много от които все още са много ток по отношение на технологиите може да се
искам да играя за последните проекти, така че главата за някои наличните видеоклипове от тях.
>> CSS, тези от вас, които са запознати с CSS вече,
това, което е по-накратко?
Какво е CSS?
Това е Cascading Style Sheets, и какво означава това?
Какво значи това направи за нас, CSS?
Добре, нека да се затопли с по-лесен, HTML, Hypertext Markup Language.
Какво значи това за нас?
Всеки, който изобщо?
Става наистина неловко задават тези въпроси.
HTML, Hypertext Markup Language.
Да? Не?
[Чува студент отговор]
Добре, добре, това ни позволява да маркирате текст, който да се показва в уеб браузър.
Това не е език за програмиране.
Това е език за маркиране, което означава, че инструктира браузъра как да се покаже
информация, така че най-простият въплъщение на тази, тъй като ние съм виждал
е нещо супер просто като boldfacing, отворена скоба б затворена скоба казва
този текст смели, и това всъщност е само един от многото начини
в който можем да направим това, и наистина, тези дни по-добър подход
да stylizing вашата уеб страница, което прави неща, получер и курсив
и центрира и обосновано и като не се извършва само чрез HTML тагове
, а по-скоро с техника, наречена CSS, Cascading Style Sheets.
Това е език, само по себе си.
Тя също не е език за програмиране, но
всички, това е Дан, който продължава да се присъедини към нас днес.
Някои технически трудности. Не е проблем.
>> CSS ни позволява да Stylize страница
чрез създаване, което се нарича свойства, така че нека да погледнем на това
на някои основни примери.
Нека отидем в уреда днес.
Източник 8 понеделник директория тук,
и аз ще отида в директория, наречена CSS, където имаме цял куп
на файловете, които ни чакат тук,
и в тази папка, например, search0.html от последния път.
Сега, спомнете си с search0 ние напуснахме тази бележка
от вид на изпълнителните Google или наистина просто предния край за една седмица или така преди,
и забележите, че имахме някои нови етикети.
Имахме h1 за голям, смел заглавие
форма, което ни позволи да имаме всъщност HTML форма за въвеждане на потребителя.
Екшън, какъв е смисъла на действие атрибут
на HTML тагове форма?
Какъв е смисъла на това действие?
Аз просто ще направи това днес.
Действие е дестинация, където формата ще бъдат представени.
Фактът, че това казва действие = "търсене на google.com /"
означава, че когато потребителят кликне върху бутона "изпрати" или равностойността
каквато и да е форма полета са попълнени ще трябва да бъдат изпратени не в нашия сървър
или оборудване, а за този конкретен URL на Google.
И метод, който ще използва, се нарича получи,
и ще получите, за сега, е просто техника за предаване на информация, заедно с уеб сървър
от начин на URL, така че нека хвърлим един бърз поглед назад към това как работи.
>> Забележете, че има вход, чието име е р
, чийто тип е текст и след това втори вход на типа представят
чиято стойност е CS50 търсене и наистина, ако си отвори този файл тук,
search0.html, това е супер проста форма,
и ако търся нещо като компютърни науки
и след това натиснете въведете или щракнете върху CS50 Търсене
забележите, че това, което се случва, е, освен да Google
Съм специално в крайна сметка на този адрес в горната част,
google.com / търсене? = компютър + науката,
и компютърни науки е очевидно това, което написах инча
+ Просто означава, че където беше знак за интервал,
и това е направено от браузъра, за да сте сигурни, че няма
объркване и празно пространство в действителната URL.
И тогава Q, разбира се, е името на параметъра.
Не сме виждали как ние, програмист, всъщност може да достъп р още.
Можем да предположим, че Google знае какво да прави с това тук,
но ние ще стигнем до там своевременно днес.
>> Но нека да разгледаме вместо в search1.html,
което изглежда малко по-различно, защото реших, че тази форма тук е само малко куца.
Искам да кажа, че е в горния ляв ъгъл.
Има наистина няма естетика към него, и така искам да Stylize
малко повече като Google, чиято заглавна страница, изземване,
макар и да не могат да го посещават често, днес прилича на Хелоуин.
Ако вместо това отвори версия 1 на този файл, търсене 1.html, аз съм го центрирани.
Все още е доста грозно, но поне сега съм започнал да контролира естетиката на тази страница,
не само маркиране на него.
Нека да погледнем в търсене 1, и там е наистина само една разлика,
, които биха могли да скочи към вас, или може би не,
но това, което е на една линия или фрагмент от разликата?
>> Този стил атрибут, така че се оказва, че в HTML
повечето елементи, повечето етикети могат да имат атрибут стил върху тях,
и в рамките на този стил атрибут е цитиран низ,
и че цитиран низ е CSS.
Каскаден лист със стилове Можете да поставите там
като го посочва като име на свойство
следвани от двоеточие, следвано от стойност.
Това е вид жалко дизайнерско решение преди няколко години
че CSS е език, само по себе си,
но синтактично това е много по-различен от HTML.
В този случай, ние виждаме, че вътре в моята уеб страница, която е написана в HTML,
Имам CSS вътре в тези цитати, и Конвенцията за CSS
е, че имате това, което се нарича имот, следван от, отново, дебелото черво,
, последвано от стойността на този имот, така че няма знак за равенство.
Няма допълнителни кавички.
Това е само този на дебелото черво, разделени двойка ключове стойност,
и текст на линия прави точно това, което казва.
Подравнява текста в тялото на страницата, което е наистина смелостта на страницата
в центъра.
>> Добре, крайният резултат, да е ясно, е това.
Не всичко, което по-секси, но поне беше насочен и малко повече като истински Google.
Но какво, ако вместо отвори версия 2 на този
и изтъкват, тук съвсем нов етикет?
Сега в главата на страницата си, която преди това имаше само етикет
във всички предишни примери?
Той просто имаше тази, заглавието.
Преди малко главата маркер изглеждаше така.
Сега, вместо да го има стил отвътре етикет на
и това също, извинявам се, синтактично изглежда много по-различно от HTML,
но можете да свикна с това, с което в рамките на стила маркер
Сега мога да фактор, това, което беше преди малко
атрибут, атрибут стил, и мога да го сложи най-отгоре на страницата си.
>> Защо?
Е, това е стъпка към почистване нещата, който много прилича писмено C код
бихме понякога пиша функции за фактор обща функционалност.
Това е само малко по-чист започнем да отчитаме, неща като естетиката
на едно централно място, отколкото да го имащи всички разнообразявам през целия си HTML.
Това също прави това, което казва той, въпреки че има малко на нов синтаксис.
Това тук е селектора, и тялото просто означава, изберете елемент на тялото
и се прилагат следните свойства към него.
Е, имотът е точно същото.
Добра мярка съм добавил точка и запетая в края,
което може да бъде конвенция, и аз съм увит целия този имот
във фигурни скоби, защото аз в действителност може да има различни неща тук.
Всъщност мога да кажа нещо като цвят: син;
>> Сега това също няма да бъде стъпка към нещо, че по-хубава,
но ако сега се върна до версия 2 съм поне сега тялото на моя
страница текст синьо.
Бутонът остава същата, защото това е вход. Това не е чист текст.
Но всичко останало, което е текст, като CS50 Търсене отгоре, е всъщност син.
Отново, всичко сме направили, сега се отстрани от тялото маркер, забележете,
стил атрибут, и ние сме фактор тук.
Това не е едно огромно подобрение, но ако вземем това още една стъпка напред
забележите това, което можем да направим в тази трета версия.
>> В search3.html страницата е почти идентичен
с изключение на нов маркер за това, което сега?
Link, така че това не е много уместно наречена
защото не сте свързване в смисъл на кликване хипервръзка.
Скоро, вие сте нещо за правене на равностойността на # включват в C
чрез връзката етикет с HREF атрибут
и REL атрибут казва давай
и копие поставите съдържанието на даден файл, наречен 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 е маркер, който се въвежда разделение на страницата.
Можете да мислите за това като невидим правоъгълник.
Това нещо създава откос на площите в уеб страницата
, които можете да Stylize всичко наведнъж.
Това, което съм направил тук е, както следва.
Вътре в тялото ми маркер, който е бил там през цялото време,
Казвам се създаде подразделение на страницата чрез линии 45 до 47,
и това означава, че по същество ми даде невидим правоъгълник в горния край на страницата.
Тогава ми даде втори правоъгълник, макар и невидима, по-долу, че
и се идентифицират с името съдържание, и след това на последно място,
дайте ми трета дивизия на страницата в долната
нарича ID.
Ще видите защо съм направил това само за миг,
но концептуално имам горен дивизия.
Имам съдържание на разделение, и имам долен колонтитул разделение на страницата
въпреки че те са само маркиране.
Потребителят не е да видите три правоъгълници,
но вид на структурно там зад кулисите
те са реално налични.
>> Сега, на кого му пука? Защо се прави това?
Всичко останало на страницата е същата, както сме виждали преди.
Ето моята форма. Ето моят принос, моят принос, нов ред и така нататък.
Ето един образ, обаче, така че ние ще видим, когато това дойде от само за миг.
Ето долен колонтитул, който е нов, просто защото исках да се въведе
повече съдържание.
Ако ние се придвижите нагоре забележите, че ID на тази дивизия е заглавието.
ID на тази дивизия е съдържание, както и ID на това е букмейкър.
И както подсказва и името, когато имате ID атрибут
в HTML, по дефиниция трябва да идентифицира
един от елементите, един от таговете в страницата си.
Тежест е напълно да запомните, че имате горен идентификатор вече.
Имате долен колонтитул. Имате съдържание идентификатор вече.
Компютърът няма да разбера какво е наличен ID е за вас,
така по случайност може да даде два тагове ID на заглавната
и това просто би било погрешно.
>> Трябва да се има предвид това, което сте създали,
но след като веднъж сте направили това обявление какво можем да направим тук.
Сега мога да се уточни в моя стил маркер на върха
или еквивалентно в моето досие CSS, ако бях все още използват тази версия
Мога да кажа # хедър, и какво означава това е, че каквото и етикет
в тази страница има ID на заглавната
и #, просто от човешка конвенция, представлява документ за самоличност.
Рязкото знак или лира представлява ID.
Заглавието е името, което аз го дадох.
Това означава, прилагат този имот CSS
какъвто и да е маркер в тази страница носи ID на заглавната.
Една и съща сделка.
Този имот, който се случва да бъде същото, към всеки елемент
чието ID е съдържанието, и след това тук
забележите, аз имам малко по-сложен с долен колонтитул.
Всеки елемент, чието ID е долен колонтитул, от които може да има само един по дефиниция,
Давай напред и да шрифта му размер, по-малък,
удебелен шрифт тегло, границата му на 20 пиксела.
>> Какво означава това?
Това е просто един марж на отгоре, отдолу, и на ляво и надясно.
Това означава, дайте ми 20-пиксел невидима граница около него
само за да прокара всичко останало далеч от него малко, като може да се направи в Word,
Microsoft Word или страници или нещо подобно.
И тогава текст приведе в съответствие център.
Нека да видим крайния резултат, а след това ще се върнем до оставащия един фрагмент от CSS.
Това е версия 4, нашият последен за търсене примери, и това е много, много секси.
Сега, честно, аз просто Гугъл "генератор на шрифта логото на Google.
И това ми позволи да се създаде GIF, формат на изображението, което изглежда, че има.
Всъщност, можете да направите това.
Ние имаме "Google лого генератор шрифтове".
>> Нека видим дали можем да направим това.
Добре, аз мисля, че това е сайт, който използвах.
Можем да кажем, Ec 10, например, и да ги направят свои собствени.
Можете да играете с това цял ден дълго и след това кликнете с десния бутон на мишката върху него
и след това да изтеглите действителната GIF, която е всичко, което съм направил.
И наистина, ето защо в моя HTML, спомняте, тук
Имах изображение маркер, който видяхме за кратко миналата седмица
чийто източник е logo.gif.
И това, което отново е мотивация за този ALT атрибут,
тази алтернатива атрибут?
Да.
[Чува студент отговор]
Добре, така че две причини наистина, ако браузърът не може да тегли картинката
защото имате бавна връзка към мрежа или изображението да е повреден
или нещо подобно, поне човек може да види "CS50 търсене"
а след това и от съображения за достъпност.
Ако имате потребител, който е сляп и използвате екранен четец
и следователно очевидно не могат да виждат образи Може и да е най-малко
чуете текст, ако компютъра си говори с тях.
>> Като цяло, това е най-добрата практика, когато става въпрос за достъпността на страници
така че дори потребителите в тази ситуация могат да чуят или видят, така да се каже,
това, което е, че е на вашата страница.
Има едно друго нещо, което направих тук
, която е малко по-интересно, и ще видим повече за това в проблем, 7
чрез един от шорти, водени от един от преподаване събратя.
Но # съдържание се отнася за етикет
чието ID е съдържанието, но след това е знак за интервал, и тогава там е думата вход.
Е, това, което е интересно за CSS е, че можете да
тагове в страница вид на йерархично,
и този фрагмент на средства CSS е да се намери етикет
чието ID е съдържание, както и след това се прилагат следните свойства
към всички входни етикети, които са потомци на съдържанието,
това е, че са вмъкнати вътре в него.
Отстъп, отново, е важно само към компютъра, а не на човек,
но по силата на споразумение, ние тире неща, като отидем по-дълбоко в една страница,
така че това означава, прилагат марж от 5 пиксела всеки вход елемент
това е някъде вътре или вплетена в
елемент, чието ID е съдържанието.
>> Кой които се прилагат?
Е, има всъщност само тези две момчета тук.
Забележете, че вътрешността на формата има 2 входа,
като е имало за всички тези примери.
Но забележете, че се случи да бъде вплетена в тези два входа,
макар и малко дълбоко, няколко слоя на вдлъбнатина,
вътрешността на етикет, чието ID е доволен.
Какво означава това?
Ако се върнем към браузъра тук можете да видите все така леко-
нека я увеличите, че там е малко на уплътнението между бутона
и между текстовото поле.
>> Нека временно Изключи го.
Позволете ми да отида да ми CSS, и ме пусна напред и просто
промяна на тази граница от 5 до 0 пиксела пиксела.
Нека ми давай тогава и запишете файла, да се върнете към търсачката
и презареди, и да гледате на средата на страницата.
Всичко се компресира заедно, и когато за първи път бита този пример
Мислех, че изглеждаше глупаво с текстово поле и след това на бутона непосредствено под него.
Исках да се запълни малко, така че аз въведох маржове.
Това, което няма да направи в лекцията е да отидете през няколко десетки
CSS свойства, които съществуват, защото, отново, има неща, като големината на шрифта,
шрифта тегло, марж, подравняване на текст, както и няколко дузина други,
и ние ще ви насочи в проблем, 7 различни уроци онлайн
и препратки, които ви позволяват да вземете тези неща.
Но това, което е наистина важно в края на деня
>> е да се разбере как се прилагат тези неща.
Отново, ако имаме стил отвътре етикет на
да отидете селектори, такива идентификатори, които определят
на кого искате да приложите тези свойства,
и след това сферата на недвижимите имоти като ключова ценност двойка
разделени от двоеточие и след това завърши с точка и запетая,
или можете да се откъснете всички, че от и го сложи в отделен файл CSS
себе си.
Добре, всички въпроси, относно концепциите
или голямата картина на CSS?
Отново ще видите повече от него в pset 7
но ние ще го държи доста проста.
Не? Добре.
Това е време за реални език за програмиране,
и ние ще се върнем малко CSS под формата на пример.
PHP всъщност е чудесно достъпен език
с това, че е синтактично почти равна на C.
С други думи, ако знаете, C, вие знаете по-голямата част PHP
синтактично най-малко, въпреки че има някои нови функции
и някои нови концепции, които ще трябва да погледна.
>> Но за по-голямата си част, сега, че ние прехода от С до PHP
повечето от новите неща е наистина в голямата картина,
как да използвате езика за програмиране в Интернет, за разлика от
в командния ред или в мига бързо, колкото сме правили до този момент.
За справка, особено с pset 7 и последна на проекта,
се вземат предимство на този адрес тук, ако искате да прочетете на формалностите на PHP.
Всъщност като безплатен онлайн учебник ефективно,
и вие ще разберете, че това, което е наистина хубаво за PHP
е, че има стотици функции, които идват с нея,
като има предвид, че в C не е задължително да имат достъп до
повече функции, отколкото са били в библиотеката по математика, CS50 библиотека.
В PHP и много съвременни езици, Python и Ruby сред тях,
можете да получите достъп до толкова много повече функции, което означава, че можете да напишете
много по-малко код, защото може да стои на раменете на другите хора
, които вече са написали някои неща за вас.
>> Нека да бърза обиколка на синтаксиса на PHP и след това напишете няколко примера.
Какво е хубаво за PHP първата и най-важна
е, че няма основна функция.
Ако искате да се напише програма в PHP просто започнете да пишете код,
и не е нужно да се притеснявате за основната.
Не е вътр. Има няма връщане назад.
Не е argv, argc, което е необходимо, когато пишете на програмата.
-Скоро можете да започнете да пишете код и това е част
защото PHP е това, което се нарича интерпретиран език.
C е съставен и е съставен в смисъл, че да започнете
с изходния код, да го стартирате чрез звъня, което е компилатор,
и в крайна сметка след известен брой стъпки, които можете да получите обектен код, 0s и 1s.
PHP и Python и Ruby и Пърл и други
различни видове езици по това, че не ги компилирате.
Вие не трябва да излизат от изходния код на 0s и 1s.
Ти просто се движат на изходния код, и ще те изходния код
, пише в обикновен текстов файл, завършвайки инча PHP в този случай
вместо в., както и програмата на вашия компютър
е буквално тълкува кода ред по ред по ред.
>> С други думи, вместо да се напише програма и стартирайте програмата
директно с вас, вместо да се напише програма с файл, завършващ инча PHP.
След това пуснете реалната програма наречен php.exe, ако сте на Windows,
или просто PHP, ако сте на Mac OS или Linux,
и ще ви даде като принос към програмата PHP своя изходен код,
и своята цел в живота е да четете код горе до долу, от ляво на дясно,
и каквото и да съм го казал да се направи.
>> Нека видим какво това ще означава, синтактично.
В PHP имаме условия.
Този слайд е идентично с това, което видях седмици 1
защото синтактично условия, IFS и другаде IFS и другаде в PHP
изглежда точно като този.
Когато става въпрос за булевите изрази те ще изглеждат точно по този начин.
Когато става въпрос за anding неща заедно Булев, че ще изглежда точно така.
Ключове изглежда по същия начин, и ще получите допълнителна полза в PHP
, който превключва в C може само да включите Чар или вътр.
Вие не може да превключите на низовата стойност.
В PHP можете да всъщност са израз
, която е променлива, чието съдържание са низ,
и всъщност можете да направите сравнение низ в реалния интуитивен начин,
не показалеца сравнение, за да се реши дали да се направи случай или J или нещо друго.
Ще видите, че потенциално е пред дълго.
>> Loops твърде чудесно са едни и същи.
За вериги имат инициализация, състояние, както и известен брой актуализации.
Докато цикли съществуват в PHP.
Правя, докато вериги съществува в PHP,
и масиви в PHP съществуват, но тук е мястото, където синтаксисът започва да става малко по-различно,
но концепции са едни и същи, и понятията наистина са едни и същи
, тъй като те са в седмица 0, със Scratch.
На първо място е знакът $.
Това е дизайнерско решение в PHP, при която всяка променлива
в PHP по проект започва с $ знак.
Няма повече X, Y, Z. Това е $ X, Y, Z, само защото.
Това е нещо, което трябва да имате предвид, а сега и на дясната страна
това прилича масив,
но ние използваме квадратни скоби.
В PHP и JavaScript, както и ние в крайна сметка ще видите,
да декларира масив се отварят квадратна скоба и затвори квадратна скоба,
и тогава ще трябва разделени със запетая списък от стойности, независимо дали са цели числа
или низове или символа, каквото искате, в рамките на този израз има.
>> Сега, как правим нещо подобно на С?
Какво е синтаксиса за статично обявяване масив на познатите числа?
Това беше фигурни скоби, толкова малка разлика, но и в двете PHP
и в крайна сметка JavaScript просто използва квадратни скоби, така че наистина
само интересна подробност тук е $ знак за името на променливата
, а също и квадратните скоби, а има и един любопитен нещо
, който е бил пропуснат, както и на лявата страна на знака =.
Това, което липсва, че ние сме били изисква за седмица? Да.
[Чува студент отговор]
Размер, така че не се споменава от големината на масива.
Честно казано, няма споменаване на квадратни скоби от лявата страна
на знака =, и какво липсва от линията?
Да. >> Чува студент отговор]
Тип, така че това, което е интересно, по-специално за PHP
е, че тя не е силно типизирани език като C,
и че е силно въвели в смисъл, че трябва да се каже, Чар,
трябва да се каже, ПНА, трябва да се каже, плувка.
>> Всеки път, когато искате променлива, трябва да кажеш звъня какво си вид е.
PHP е малко по-мързеливите.
Свободно написали в смисъл, че
можете да имате поплавъци и символа и струнни
и цели числа и т.н., но самият език
не ми пука какво ще ви постави в рамките на дадена променлива.
Вие не трябва да го информира предварително какъв тип данни
се случва в променлива.
Това е изцяло от вас, така че това е хубаво
по това, че не трябва да се тревожи толкова много за данни пишете
и се притеснявате какви са вашите аргументи и така нататък.
Това също означава, че в крайна сметка функции в PHP ще бъде в състояние да се върне
или едно цяло число голямата част от времето, а може би веднъж в последно време
те ще връща булев, булев фалшиви, например, за да покаже, че нещо се е объркало.
Това ни дава някои квит, но също така ще ни направи нещо по проект
малко по-мързеливите, когато става въпрос да въвеждате данни.
>> Какво още има да се има предвид тук?
Променливи изглеждат доста харесва това, така че $ S = "Здравей, свят".
Това е може би произтичат от предишния пример,
и ние имаме друг тип цикъл.
Това действително ще видите след като в последно време, тъй като тя е доста по-удобен,
foreach изграждане.
В този случай, цикълът foreach взема в рамките на скоби три думи обикновено
$ Нещо първият, който е това, което масив искаш за обхождане на членовете на
тогава буквално дума, тъй като и след това на последно място,
друго име на променлива, че можете да избирате.
Тя може да бъде Foo, бар, или елемент,
и какво прави тази конструкция
е, ако $ масив съдържа 10 елемента
на всяка итерация на този масив съжалявам, на всяко повторение на този цикъл
променлива, наречена елемент ще бъде актуализиран
да бъде първият елемент в масива, то вторият елемент в масива,
след това на третия елемент на масива, като по този начин отпада необходимостта от
да се направи леко досадно кв. нотация скоба и
Долара, за да се индекс в масив.
PHP прави цялата тази работа за вас и на всяка итерация
просто ви подава следващия елемент от масива
без да ви се налага да знаят или се грижи за цифрова своя индекс място.
>> И тогава на последно място, за сега, има една друга особеност на PHP
че ще бъде изключително полезно, особено когато започнем програмиране на уеб,
и това е известно като асоциативен масив.
Масиви, за които знаем досега, като 20 секунди преди
и за последните 8 седмици, са цифрово-индексиран масиви,
вид на традиционните масиви, където индексите са цели числа,
0, 1, 2, всички нагоре.
Асоциативни масиви са много по-мощен.
Те ви позволяват да имат произволни клавиши,
произволни индекси и произволни стойности.
Като има предвид, че в традиционен масив 0, 1, 2,
в асоциативен масив, можете да имат индекс
или ключ на Foo, чиято стойност се намира бар.
След това може да има друг ключ, чието име е Баз и чиято стойност е qux.
>> Отново глупави компютърни науки генерични имената на променливите,
но въпросът е, че този масив не скоба 0 или скоба 1.
Вместо това ще трябва скоба дрън и скоба Баз.
Това е много по-гъвкав в това, че ние ще да бъде в състояние да се сдружават
думи с други думи, ключове със стойности напълно произволно,
и започваш да бъде в състояние да получи тези стойности за константно време
защото под капака асоциативен масив
наистина е хеш-таблица.
Спомнете си, че хеш таблица ви позволява да поставите в някои вход
поставят в думата Дейвид, ако искате да вмъкнете Дейвид в някакъв речник,
и след това да се върнеш някаква стойност обикновено.
В случай на правопис, вярно или невярно.
Давид или каквато дума е или не е в речника.
Асоциативен масив е наистина само хеш таблица,
но това е много по-лесен въплъщение на.
Както ще видим, че това ще ни позволи да се направят някои неща
много, много лесно.
>> Нека да разгледаме някои основни PHP
примери и да видим какво можем да направим с този език.
Нека вървим напред и да се отворят в нашия източник директория днес
файл, наречен hello1.php.
Този файл е повече коментар, отколкото е действителният код,
така че нека действително премахване на всички коментари от файла
и настоящето за може би най-простият PHP програма тук.
5 линии, и някои от тях са бяло пространство,
забележите някои ключови различия.
Файлът се нарича hello1.php.
Първа линия, обаче, е <? PHP.
Подобни по дух HTML
че поредица от символи, казва на компютъра
"Хей, компютър, тук идва програма, ние сме в PHP.
Това прави сигурни, че не е объркан, че това е някакъв друг език.
Линия 2 е интересна празно пространство.
Линия 3 е нашият стар приятел ФОРМАТ
този път в контекста на PHP.
PHP има своя собствена версия на ФОРМАТ, който се държи точно по същия,
така че това е просто ще отпечатва "Здравей, свят".
И тогава това обратното етикет,>, означава, че е за 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.
Но ние въведохме все така накратко последния път, командата коригира.
Ако се случи да коригира A + X, което означава всички плюс изпълнимостта,
и след това hello2.php и тогава отново LS-л забележите, какво се е променило.
, Linux ми показва името на файла в зелено, за да предадат идеята
, че това е изпълним, но по-важното е, че на лявата страна
забележите, че малко представляващи х за изпълним вече е установено.
Това означава, е, че може да работи ./hello2.php както обикновено,
удари влиза, и защото на жилище в началото на файла
това е намек, отново, за Linux, която казва
използвате този преводач, за да стартирате този файл.
Не се притеснявайте за принуждава потребителя да го въведете.
>> И това, което е хубаво, сега е един вид това е без значение за моите клиенти или моите приятели
на какъв език съм написал тази програма, така че да вървим напред с МПС
и преименуване това нещо да hello2, например.
И сега, ако го направя ./hello2
и отдалечаване моята програма продължава да работи.
Тези файлови разширения са човешки Конвенцията, че е необходимо
нещо като звъня и грим, които търсят за тях.
Но за PHP, мога да се обадя тази файлово разширение нещо, което искам.
Да излъже света да мислят, че аз съм наистина добър в Ruby,
и аз да напиша hello2.rb и след това стартира този
и готово, сега аз имам версия Ruby, което е пълна лъжа.
Но файлови разширения са безсмислени
ако файлът е изпълним и този специален намек в началото на файла.
>> Сега, като освен, позволете ми да ви покажа бързо версия 3,
, което е вид полезен трик, за да се знае.
В hello3 аз направих нещо леко грешен
, че ще актуализираме онлайн изходния код.
Във версия 3 се оказва, че на повечето Linux компютри
има една програма, наречена "Околна среда" за околната среда,
и какво можете да направите тук е, ако вие нямате представа къде PHP
е инсталирана на локалния твърд диск, защото наистина може да варира в зависимост от компютъра
че някой използва, "Околна среда" просто казва работи Околна среда,
който е на повечето системи, и да разбера къде PHP е.
Само обща трик, така че не е нужно да се притеснявате за намиране, когато програмата е.
Но ако ти пука, за да разберете къде програмата е и не сте се грижи този момент
можете да използвате коя команда.
>> Позволете ми да намалите и тип, които PHP,
и да забележите, че ми казва, че всъщност в ЮЕсАр бин / / PHP.
Това е вид лъжа. То също е в кофа за боклук.
Това е просто ми показа първия хит.
Ако сте се чудили някога където звъня, звъня, която е в ЮЕсАр / хамбар / ехтя,
които правят ЮЕсАр / хамбар / направи, и това означава, че през цялото това време
бихте могли да въведете ЮЕсАр / хамбар / ехтя влиза да тече звъня,
но това е вид на досаден да направите това, така че някои папки
като ЮЕсАр / хамбар и Бин да се допуснат по подразбиране
така че компютърът знае да погледне в тях за вас.
Всички въпроси, за да супер, супер проста Здравейте програмата на Световната
PHP и след това да я пуснете?
Защото сега ние ще започнем да се въведе по-убедителен синтаксис.
Добре, да го направим.
Тези програми, които сме виждали всъщност всички от тях, преди.
>> Ако се отвори, например, нека да направим beer1.php,
ние няма да мине през няколко версии за това, но това, което направих
бях седна и я изсипа или конвертирани
ми C код на PHP код.
Повечето от началото на файла е коментари тук.
Оказва се, че е една нова функция, ние трябва наричат ​​Readline.
GetString, изземване, от седмица 0 нататък беше CS50 нещо.
PHP идва със своя лесен за употреба функция, наречена Readline
който взема един аргумент, който определя ред
че искате да покажете на потребителя, и какво Readline
се връща, независимо от потребителски видове инча
В този случай, аз съм за обявяване на променлива с име $ N.
Аз съхраняване на връщаната стойност от Readline
след подканване на потребителя с този низ.
Само за да направите резервно копие, всъщност работи това нещо, нека вървим напред
и стартирате PHP beer1.php.
Колко бутилки ще има? Нека направим две този път.
Enter. Това е всичко.
>> Програмата е функционално идентичен с версията C от седмици.
Но синтактично нека да видим какво е различното.
След като получите вътр обявление от страна на потребителя, че Правя проверка за грешки,
и ако N е по-малко от 1 откажа от цигарите и отпечатате
Съжалявам съобщение на потребителя и на изхода с 1.
Това също е малко по-различна.
В С какво ще правим? В C се върнахме 1.
В PHP излезете с 1, което честно казано е мисля, че малко по-интуитивно
защото сте буквално изход от програмата.
Добре, а след това тук досадно песен е идентичен синтактично
с изключение на променливата, така че тук, в съответствие 24-нататъшното
забележите ми линия е почти същото,
но аз имам $ в предната част и н
и това, което също липсва от линия 26, които сме имали в миналото
при обявяване на променлива I?
Не е тип.
В PHP е неправилно да се каже, вътр.
Вие просто не трябва да го направя.
Компютър, преводач PHP е достатъчно умен, за да се реализира
че ако сложиш номер в $ аз ще го третира
като номер за вас.
И тогава тук ние включете $ I, I, I - 1.
Всичко това е една и съща, и после да правим тук "Уау, това е досадно" ФОРМАТ
и след това излезте (0).
>> Отново, храна за вкъщи тук е, че въпреки че започваш да се харчат относително
малко време за PHP, със сигурност в сравнение с това, което направихме на C,
това е почти същото, и така какво ще направим днес и следващата седмица
и след това е съсредоточи наистина на някои от новите идеи.
Само за да се види, че нещо друго се превежда от C,
това е супер проста програма, което направихме в Седмица 1
или 2 кубчета стойност.
Но това, което е интересно в момента за тази програма е, че тя
въвежда понятието потребителски писмено функция, че ние се пише.
Синтаксисът в PHP е почти същото.
Ето програмата ми до върха.
Забележете отново отсъства всяка представа за основната.
Започнете да пишете код и това е, което ще се изпълни от преводача.
Печатам х сега е 2, най-вероятно.
Тогава аз твърдя cubing ...
След това аз наричам функция куб и да премине в $ X
и възлага на връщаната стойност до $ х.
Тогава аз твърдя, че това е нарязана на кубчета, и след това аз казвам това, което се надяваме
ще кажа х сега е осем.
Синтаксисът на функцията в PHP е все така малко по-различен.
Отново липсва, е типът на връщане.
Отново липсва е типът на връщане и също липсва е това, което друг тип?
[Чува студент отговор]
Е, добре, това е добре. Нека се върнем в секунда.
>> Ние не трябва, например, Int тук.
Ние не, например, са INT тук, тъй като отново в PHP
просто не е нужно и не трябва да правиш това,
, а по-скоро има тази нова ключова дума, наречена функция.
В PHP е почти малко по-ясно, защото, когато искате функция
буквално казват функция, можете да го дадете име и след това разделени със запетая
ако някой от своите аргументи.
Не е необходимо да се каже, невалидни или нещо подобно, а след това връщане е един и същ,
$ * $ * $.
Какво е също липсва? Сами изтъкна това тук.
В горната част на файла, напълно отсъства в PHP е прототип.
Това също е по проект.
Езици и преводачи като PHP са по-умни от C някога е бил
в компилатори като звъня.
>> Спомнете си, че звъня, ако не сте го кажа, че куб съществува,
ако не сте го кажа, че ФОРМАТ съществува като с прототип
или с # включват, добре, ще да крещи на вас и дори не съставя кода си.
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,
така че нека да започне изпълнението на някои от тези,
така функция проверка, която трябваше да вземе думата като аргумент.
Ние ще направим това и се върна към него в момента.
>> Имаше функция натоварване, което се състоя в това, което като аргумент?
Речник, така че файлът, че аз всъщност исках да се зареди.
Имаше функция размер, които не са взели никакви аргументи
и не е функция, какво беше другото?
Разтоварване, които не са взели никакви аргументи.
Това са четири функции, които ще трябва да се приложи в PHP,
и това, което ще направя, е да отидете напред и да направим това.
Много от вас са използвали хашиш таблицата в pset 5,
така че нека да вървим напред и да се създаде хеш таблицата в PHP.
Готово.
Това ми дава хеш таблица. Е, защо?
Едно, променливата се нарича $ таблицата, само за да апелирам към идеята на хеш таблица.
Квадратни скоби, обаче, припомни, представляват какво?
Масив, но в масиви на PHP не е нужно да бъде числено индексира.
Те могат да бъдат асоциативни масиви,
което означава, че може да има произволни ключове и стойности.
>> Много харесва в pset 5, тези от вас, които хеш реализации маса
най-вероятно добавя думата и след това я поставили в една верига от свързани списъци,
или сте запазили стойността на истинската някъде или нещо в този смисъл.
Вие някак си спомни факта, че думата е там.
За сега, че ще ми бъде хеш таблица,
И така, сега да отида за извършване на проверката функция
Аз просто трябва да погледнем вътре на тази хеш таблица
и да видим, ако думата е там.
Това, което ще направя, е аз ще кажа, ако
нека кажем isset, който е PHP функция, която означава буквално е ключов набор,
така isset ($ таблица [дума],
и ако е така връщане вярно.
Това е всичко. Това е pset 5 в PHP.
Е, честно, добре.
Else връщане фалшиви, така че не е там.
Какво всъщност се случва тук?
Е, ако на маса или хеш таблица тук по-общо
е асоциативен масив, това означава, че можете да индексирате в нея
с една дума като "дума", и вие трябва да получите някаква стойност.
>> Ние сме вид за получаване на една крачка напред от себе си.
Тя ще бъде нещо хубаво, ако действително е било натоварено файла първо,
така че натоварване не е толкова проста, но нека вървим напред и камшик
наистина бързо изпълнение на товара.
Позволете ми да отида напред и да каже, че думите получава файла на речника.
Функция в PHP файл отваря файл
и се връща към набор от всички думи в този файл,
просто ги връчва за вас.
Това беше една голяма болка, не е ли?
Сега foreach, това е нашата нова конструкция, foreach ($ думи като $ дума).
Тази линия ще започне итерации през масив думи
и да поставят на думата променлива всяка дума във файла
от първия до втория към третия до четвърта по целия път
така че не е нужно да правите досадни [I] нотация и др.
И това, което съм просто смяташ да правиш за всяка една от тези думи
се съхранява в моята маса от индексирането в таблицата
и след това да е вярно, защото да се помни,
, че думата е в речника ми, всичко, което наистина трябва да направите
е вид обърнете малко и да кажа тази дума в хеш масата ми е там, вярно.
И ако не е там, аз не трябва изрично да постави фалшива,
в противен случай аз ще трябва да постави фалшива за всички възможни думи във Вселената.
>> Достатъчно е за мен, само за да зададете стойност на индекса
да е истина, ако думата е всъщност в хеш моята маса.
Сега, аз съм рязане на няколко от ъглите тук, че ще размахва ръцете ми за сега,
но сега натоварването функция е направено.
Зареждане на всички думи от файла в масив.
Обхождане на този масив, както и за всяка дума в масива
Го включете в хеш моята маса с 1 ред код.
Това е забавно. Знаеш ли как можем да прилагат размер сега?
Е, размер винаги е доста лесно, справедливост.
Тук можем само да се върнат Брой на масата.
Това е доста лесно, да преброим броя на нещата в таблицата.
Това е всъщност вид не е най-ефективен.
Може би трябва да има променлива наречена размер, така че можем да го направим
за константно време, но това е доста лесно.
О, и след това разтоварване, ако наистина искаме да бъде анален тук
можем да кажем, че това е начина, по който се разтоварят нещо.
Трябва само да зададете променлива, равна на празен масив,
и той се отървава от всичко, което беше там.
Няма нужда да се обаждате безплатно.
>> Отново съм намалят някои ъгли, и аз се извинявам за възлагане проблем набор 5
може би в C, но ако сега отидете напред и да стартирате тази,
Отивам да стартирате версията, която аз написах по-рано
просто така, че не било синтактични грешки.
Нека вървим напред и стартирайте правопис. Използването е същото.
Тук е речник файл, който съдържа само думата Foo.
Тук е текстов файл, който съдържа само брън.
Да проверка на правописа това, така че правопис, като се използва този речник файл на този текстов файл.
Има една сгрешена дума, бар, и готово.
Съставено с pset 5.
Нека вземем 5-минутна почивка тук, и ние ще се върнем и повече на PHP.
Добре, ние сме назад.
Нека ми се мразя за известно време.
Нека сега видим дали това не е положителен
действително прилагане на това нещо в PHP.
Признавам, че 45 секунди за изпълнение.
>> Но нека да вървим напред и да ръководи нещата.
Нека вървим напред и стартирайте версия C
на правописа, и ние ще го изпълним на един от най-големите файлове,
което е Библията на крал Джеймс.
А това тук е да вървим в нашата папка C,
правопис на крал Джеймс на 5-ти.
Много от сгрешените думи.
Добре, така че това е изход, който вероятно има, дори и ако времената са малко по-различно,
ако имаш всичко работи правилно, и така и времето на обща проверка на правописа
Библията на крал Джеймс е .38 секунди, така че доста добре, че прилагането.
Сега ме пусна във версията на PHP, който току-що е написал.
Нека работи правопис на крал Джеймс.
Опа, игнорира тази грешка. Аз съм в грешна директория.
Правопис на крал Джеймс на 5-ти.
Почти е готово.
>> Добре, проницателен наблюдател ще осъзнаят, че е повече от 3 секунди там.
Това е истинското време на работа.
Оказва се, че това отнема време да плюе много текст от
защото на буфериране въпроси, но дълга история кратко,
е 3,15 секунди на машина на времето, CPU време,
в сравнение с това, което беше преди малко?
Подобно на 0,3.
Искам да кажа, че е един порядък по-бавно, така че къде е, че
нелепо забавяне идва?
Е, както е случаят с почти всички дизайнерско решение сме направили
в класа през последните 9 седмици има почти винаги този компромис.
Понякога между пространство, понякога между пространството и времето,
пространство, време и усилия за развитие, а всъщност и тук, въпреки че
спасихме огромен период от време, може би потенциално 10-20-30 часа
на време за разработка, изпълнение на проверката на правописа
чрез разбиване на само за 45 секунди с този език
цената, която плащаме, е, че това е един порядък по-бавно, в резултат,
и това е по принцип случаят с почти всички интерпретиран език,
PHP, Python, Ruby, Pearl или други, по силата на който
ако ти започваш да го стартирате чрез преводач и да го прочетете кода си
ред по ред, отгоре надолу, отляво надясно,
че посредникът ще отнеме известно време на себе си,
и това, че се чувстваш тук в рамките на 3 секунди, за разлика от .3 секунди
е фактът, че това е посредник, който има буквално тълкуване на нашия код
ред по ред, и дай боже, ако сте вътре в една линия
с огромен файл, съдържащ стотици хиляди думи.
>> Това усилие е да добавите и добавете и се добавят и добавете.
За инструмент като това вероятно не е най-добрия език да се използва за прилагане на
проверка на правописа, ако непосредственост е от интерес за потребителите си и да ви.
Но лукс, който в момента е, ако
използват език като PHP или много тълкува езици
в контекста на уеб, за този въпрос, имате полза
че интернет е много по-бавно, отколкото повечето компютри.
Имате GHz CPU в компютъра ви, 2 GHz, може би дори повече тези дни.
Но реалността е, в интернет има високо количество на латентност
като за браузър, за да говори със сървър, въпреки че видяхме миналата седмица
, че това е доста бързо, половин милисекунда, или така,
че твърде добавя, и ако сте изтегляне на неща като изображение
или снимка на Facebook или получаване на незабавни съобщения чрез Facebook бърборене,
Gchat или нещо подобно, всички тези двупосочен пъти
между браузъра и началото на сървъра, за да добавите,
, което го прави особен избор на език в много случаи
не всичко, което е приложимо, така че сте добре с малко по-бавен език
като PHP, Python или Ruby
, но за които има огромни квит за вас и вашите колеги
и приятелите си, защото можете да се изпълнят нещата, така, така много по-бързо.
И освен това, имате много по-малък риск от някои дупки в сигурността.
Няма никакви указатели в PHP.
Няма по Seg грешки, които лесно можете да индуцират
по същия начин, бихте могли C.
С C сте супер близо до хардуера.
С PHP и други подобни езици сте нещо на по-високо ниво, така да се каже,
с много отбрана между вас и какво всъщност се случва
вътрешността на машината, и това е просто компромис.
>> Ние сме стигнали до точката, като тези по-съвременни, високо ниво езици
като PHP, защото от уроците, научени в езици като PHP C.
Но ако вие не разбирате какво става под капака цялото това време
вие със сигурност не могат да вземат правилните решения,
и разбира се, когато става въпрос за работа на едно място, като Facebook или Google
или някое от тези места, които все повече се играе с големи данни определя
дори ако се върнем и да premed и работят с някои MD
на някои големи данни, с участието на пациенти и лекари
и като използвате правилните инструменти е изключително завладяваща
анализ на някои данни, защото в противен случай може да отнеме секунди,
или може буквално да отнеме часове.
Това е само един пример, а не да ви попречи с колко повече усилия
това е в C, но да ви помогнат да оцените, че когато се изпълни нещо в C
наистина разбирате, или на теория, наистина разбират
как всичко е или трябва да се работи, а вие имате почти пълен контрол
над това, което се случва под капака, както и с тези по-високи езици ниво
ще трябва да се откаже от по-голям контрол на хората, които са ги измислили
и подлежат на техните дизайнерски решения от твоя.
Но ако ние приемаме за даденост, че изпълнението
не е чак толкова важно в мрежата, защото на тези и други въпроси,
само скорости на мрежата са малко по-бавно от CPU скорост, така или иначе,
за да можем да някак си позволят да използват малко по-бавен език
ако квит, можем да развием нещата 10 пъти по-бързо или дори повече.
>> Нека да видим как можем да започнете да използвате това.
Нека отида в папка
сред примери днес, наречен frosh.ims,
и това е всъщност лично мотивирани от факта, че първото нещо, което
Писах за уеб преди години, след като CS50 и CS51
е уебсайт за Frosh УИ програма, първокурсници интрамурални спорт,
които в онова време това беше достатъчно години, че по време
не е имало сайт за програмата, въпреки че е имало уеб
и вместо това имаше Проктър Уигълзуърт, чрез който ако искаш
да се регистрирате за волейбол футбол или каквото и да попълните парче хартия.
Може би след това пеша през двора.
Може би след това почука на вратата им и пързалка в тяхната врата или ръката на Проктър
лист хартия с вашето име върху него, независимо дали са или не искаш да бъдеш капитан на отбор,
какво спорта, който исках да направя, и какво общежитието.
Това е вид училище стария начин на правене на нещата, и това е основен
възможност за автоматизиране на много от този процес.
Просто отидете на сайта. Напишете нещо инча
Можете да получите потвърждение по електронната поща, и бум, сте готови.
>> Това беше най-първото нещо, което направих, макар и в един език, наречен Pearl
, но това е сравнително лесно да се направи в PHP, и това е нещо като представител
от проблемите можете да започнете решаване, когато можете да изразите себе си
програмно и не трябва да се разчита на неща като Google Сайтове
или Excel или инструменти, които се раздават за вас.
Вие сега имате възможност да правите неща като това.
Това е супер грозна версия на формуляр,
но нека просто да го използвате за началото на разговора, при която това е
грубо казано форма приличаше преди години за нас
да се даде възможност на хората в Мрежата, за да се регистрирате за Frosh УИ.
Потърсихме за име, кутийката, или не искат да бъде капитан,
мъж или жена, а след това какво общежитието са били в
и след това те ще представят тази форма.
Нека първо да погледнем под капака на HTML, която представлява тази страница.
Нека отида в froshims0,
и като настрана, за pset 7 съм приема за даденост
директории и папки, които Слагам нещата инча
Ние ще ви преведе през къде точно неща трябва да отиде в уреда,
момичета команди трябва да работи, така че не се тревожи за всички
глупави подробности синхронизиране от самото начало тук.
>> Добре, ето froshims0.php.
Нека превъртете надолу и това, което тук е любопитно,
това е PHP файл, но това, което е вътре в него, ясно?
Това е много на HTML, а всъщност, PHP произход
наистина са за това, че уеб-ориентиран език.
Миг преди да го използва за изпълнение на бира например,
условията, например, здравей например, и това е добре.
Можете да използвате PHP като скриптов език
където скрипт е наистина само номенклатурата бърз и мръсен програма
или нещо, което ти пиша в сценарист или по-общо интерпретиран език.
PHP е супер полезно за това, защото съм виждал колко бързо
относително можем да привличам програми в PHP.
Но това е наистина предназначен да се използва за уеб,
и са предназначени за уеб в смисъл, че забележите тук в началото на файла
Аз се започва с <? PHP.
Тогава имам куп безполезни коментари, отпуснати, но след това затворите PHP режим.
Но след това пуснете в HTML режим.
>> Това, което е интересно за PHP, въпреки че файлът завършва инча PHP
цел да бъдат смесени с HTML,
някакъв код на PHP, някои HTML.
И ние рано или късно ще видите, че можем да започнем да дразни тези, които освен
и да ни HTML отделен изцяло от нашата PHP
но произхода на PHP наистина да ви дам тази гъвкавост,
че, ако искате някои HTML просто го пиша, и това ще бъде
плюе по същия начин към браузъра.
Но ако имате нужда от програмиране техника,
някои програмен код, можете да го в абсолютно същата файл, тъй като ние скоро ще видите.
Тук е моят HTML.
Имам заглавие на това Frosh УИ.
Имам тялото маркер, който има някакъв CSS върху него до центъра на всичко, което е в средата,
и след това тук имам форма, която очевидно ще бъде представен
нов файл, наречен register0.php, така че ние ще се види, че в един момент.
Той използва метод, наречен пост, който ние ще се върнем, както
Тогава имам някаква форма входа, един наименува, чийто тип е текст,
човек, чието име е капитан, чийто тип е кутийката,
и това, ние не са го виждали и преди, но тя прави точно това, което казва.
Вие ще получите квадратчето вместо текстово поле.
Тук имате радио бутон, който е един от тези кръгли бутони
че можете да изберете този или онзи.
>> Забележете, това е умишлено, която дадох на двете радиобутони името на равенството.
Ето как можете да получите взаимно изключване, при която трябва да кликнете
или този или онзи, и като щракнете върху друга
тя unchecks друга, така че трябва да им се даде едно и също име
ако искате те да бъдат взаимно изключващи се, като че.
И тогава за общежитието, не мисля, че съм виждал това все още, но това е изберете меню, падащото меню.
Маркер за това е, изберете.
След това дайте на падащото меню име,
и след това имате цял куп от тези опции.
Първият от тях, само за естетика, е празен низ.
Аз просто исках падащото да бъде празно по подразбиране,
и тогава там е Apley, Canaday, Грейс, и така нататък.
И забележи, че тук с дихотомията.
Опция в падащото има стойност,
, но след това има човека приятелското име, което в този пример
е идентичен, но ако наистина е искал да бъде анален бихме могли да имаме
стойността на този спад да бъде само по-кратка версия,
Сиви, но ние наистина може да се каже, Грейс Хол, че човек вижда действително,
но това не е толкова интересен, така че аз продължих да го прости и ги прави идентични.
После надолу към дъното имаме бутона Submit
, което сме виждали преди, но забележите, аз току-що го е дал различна дума.
Вместо CS50 търсене дадох етикета "Регистър".
>> Крайният резултат е тази страница тук, и отново,
къде се подава?
То се представя някой файл, стойността на действие атрибут,
което е register0.php.
Нека да видим какво всъщност се случва тук.
Нека вървим напред и да попълните тази форма, да речем Давид,
мъжки, Матюс, а след това аз ще кажа регистрирай.
Нека ме отдалечаване и кликнете регистрирайте.
Добре, така че вид безполезна, но нека видим какво всъщност се случва.
Обърнете внимание, че URL е променена, за да register0.php.
Какво е любопитно отсъства от URL, макар че, въпреки че сме изпратили форма?
[Чува студент отговор]
Добре, това е само Chrome е лесен тези дни.
Това всъщност е там. Те просто го скрие, за да спестите място.
Но добра мисъл, добра мисъл.
Към другия край на URL, все пак, това, което липсва? Да.
[Student] заявка низ.
Заявка низ, припомнят от нашите прости примери за търсене на Google.
Веднага след като щракнете върху бутона URL
ме заведе в Google, но тогава имаше? = компютърни науки или каквото и да бяха написали инча
Това е така, защото ние използвахме метод GET с търсене например.
>> Този път ние използваме какъв метод вместо?
Пост, и един от непосредствените различия
между получите и след този пост не поставя въвеждане на потребителя в URL.
Тя го крие. Той все още я изпраща.
В действителност, това, което ние виждаме в браузъра тук, тъй като ние ще се разкрие в момента
от гледа register0, аз просто виждам съдържанието
на масива, които бяха представени от браузъра към сървъра.
Но URL не?, Не всички ключови думи
или стойностите в него и защо е това?
Е, по пощата ви позволява да се предостави данни от формата към сървъра,
но това не я поставя в URL, така че какъв вид информация е след
особено подходяща за може би когато си иска от потребителя да
тип на входа форма?
Нещо като парола, нещо като какво друго?
Номера на кредитни карти.
Всичко, което е леко чувствителна вероятно не искате завършва в URL
дори и само заради това означава, съквартирантката си или член на семейството може просто трол чрез
историята на интернет и след това буквално видите вашите пароли,
буквално видите номера на кредитни карти, тъй като повечето браузъри
помни в историята, каквото URL адреси сте били в
ако е така само защото това би било лоша идея.
Използване на публикувайте своите крие тази подробност от потребителя.
>> Също така, как да качите снимка на Facebook?
Е, само две механизми, които наистина може да се използват,
въпреки че има няколко други по-тайнствена, е да се получи и публикувайте.
Как е възможно да качите снимка чрез URL?
Всъщност можете да го направя.
Можете да вземете JPEG или растерна графика или GIF и можете да го представлява в шестнадесетичен
или нещо, което се нарича база 64.
Вместо това на база 16 използвате база 64, който по същество прилича
ASCII символи, и всъщност можете да качите снимка чрез URL
след въпросителния знак, но като цяло има ограничения на размера.
Повечето браузъри принуди URL адреси, за да бъде не повече от 1000 знака,
може би 2000 символи или други подобни, така че не може да качите
10 MB Facebook снимка.
, Че използвате мнение, както и, така че за сега се поставя на параметрите в URL
, което е хубаво и полезно понякога, но за нищо чувствителна или големи
пост е начин да отида.
Какво е register0 всъщност правиш тук?
Е, ако отворя register0 Забележете, че това е супер проста страница,
но това е доказателство за факта, че мога да си сътрудничат смесват, за добро или за лошо,
HTML с PHP.
Целият този файл, с изключение за коментари на върха, HTML
с изключение на този човек тук.
>> Забележете, в средата на моя PHP код,
в средата на моя HTML, имам нещо временно
вписва PHP режим.
Обаждам специална функция наречена печат R.
Това означава, отпечатате рекурсивен, и това, което той прави, е рекурсивно отпечатва
променлива, която го предаде, точка и запетая, напускането PHP режим.
И предварително таг ви дава предварително форматиран текст,
моно място за текст, така че всяко пространство, което всъщност го види.
Няма да изчезне. Какво е пост?
Е, това, което е интересно и завладяващо за PHP
е, че всеки път, когато подадат формуляр използвате получите или да публикувате
всичко, което е представено от браузъра
PHP се разбира какви са тези ключови двойки стойност,
цифри, ако има еднакви знаци, цифри, ако има въпросителен знак.
Той прави всичко на упорита работа за вас, и след това ще Ви ръцете асоциативен масив
съдържащ всичко, което потребителят написали във формата.
Е, кои области е тази форма?
>> Тя има четири полета.
Едно текстово поле наименува.
Един от тях е кутийката, наречена капитан.
Една от тях беше радио бутон, наречен пол,
и една беше падащото меню, наречено общежитието,
така да забележите, когато печатам рекурсивно
съдържанието на тази специална променлива.
Това е специална глобална променлива, наречена буквално $ _POST, във всички капачки.
Това е специална глобална променлива, че PHP просто създава за Вас
и ръцете на вас, така че можете да получите достъп до всичко
че е подадено чрез форма от потребителя.
И като се обадите на печат R върху него не би направил това в нормалното прилагане.
Правим това, за да се види вътрешността на тази променлива,
и това, което е вътре в него, добре, 4 ключа,
4 HTTP параметри, така да се каже,
име, капитан, пол, общежитието, и тогава стойностите на потребителя
написали с едно изключение.
Тип D-A-V-I-D.
Отметка в квадратчето, въпреки че, за мъж, който очевидно представи стойност
просто m да бъде кратък.
>> Когато съм избрал Матюс, това е стойността, която има избран,
и това е малко глупаво, но това е конвенция.
Когато отметка в квадратчето, стойността на на "на", се представят за отметка.
Ако не бях го проверява, няма никаква стойност би била изпратена каквато.
Това е просто ни дава поглед в това, което е вътре в тази специална глобална променлива,
и това е толкова специален, че това се нарича супер глобална променлива.
Той съществува навсякъде в кода си, така че всъщност можете да получите достъп до него.
Това не е толкова завладяващ, така че нека действително да използват супер глобален
и действително се опитват да се регистрирате на някой.
В froshims1 Отивам да се направи една промяна.
Аз промяна на действие да register1.php,
и аз правя нещо друго.
Бях малко смутен от качеството на уеб страницата си там.
Това е доста отвратително, честно казано, така че се оказва
, които можете да използвате много лесно в мрежата
други хора JavaScript код, други хора CSS
че съм писал и отворени източници и се предоставят като библиотека,
така да се каже, например, тук аз съм с помощта на свободно достъпна библиотека,
куп код, че някой друг е написал.
>> Twitter се случи да пиша този код, и тя се нарича Bootstrap библиотека,
и това е просто един куп стилове CSS, куп CSS файлове
, че някой друг е написал и измисли как да получи всичко хубаво и красиво
така, че хора като нас могат да се тревожат по-малко за естетика и да се фокусира много повече
на логиката и реалното програмиране.
Като го свързва с този маркер, който е същия маркер използва помнете за styles3.css-рано,
Аз сега имам достъп до файл, наречен bootstrap.min.css.
Мин просто означава, че те го minified и те се отърва от цялото празно пространство и т.н.
само за да се уверете, че те не са ме изпраща повече байтове, отколкото всъщност трябва.
Но там е цял куп CSS, така че ако сега се отвори версия 1 на Frosh УИ
забележите, че досието ми определено е по-хубава.
Сега е все още само черно и бяло, но забележите, че само с помощта на стила си лист
и използването на определени функции от него върху формата ми не е невероятно,
но това определено е чист, отколкото е било преди, и проекторът не го прави справедливост.
Има малки сиви линии около бутоните и около текстовото поле точно тук,
но това определено е по-чист, отколкото е било преди.
>> Сега, честно, аз се наложи да си сменя маркиране малко.
Това е версия 1, и да забележи, че съм използвал няколко нови етикети,
и честно казано, нямах никаква представа как да направите това, докато не прочетох документацията
Twitter Bootstrap библиотека, и те ми казаха, ако искате да използвате нашата библиотека
използвайте fieldset елемент във вашата форма,
постави думата, която искате да покажете до вътрешността на областта етикет маркер,
след това даде своя принос име, точно както преди,
и след това за кутийката, не само го увийте в етикета елемент,
използвате нещо, наречено клас, така че не сме виждали това и преди,
но вие ще видите това в един от шорти pset 7.
Клас в CSS ви позволява да направите нещо много подобно на ID,
но преди, когато имахме ID със символа #
това беше за един и само един елемент.
Това, което е хубаво за един клас е, че множество елементи могат да имат същия клас
или едно и също нещо CSS приложени към него.
>> Но отново, повече на тези в краткосрочен, и останалата част на този просто копирайте и поставете
от тяхната документация, в която сте добавили етикет тук и там.
И в крайна сметка, защото аз бях включен връзката маркер в горната част,
всичко изглежда хубава автоматично
, като просто маркират страницата ми по начин, който
Twitter се очаква, и има толкова много различни начини
прави това, и това наистина е много подходящо.
В този момент от семестъра, както ще видите в спец. pset 7,
Googling, четене на библиотеките, като се използват други хора CSS
и JavaScript за решаване на допълнителни проблеми
към проблема себе си със сигурност насърчават и начина, по който
Мрежата е изградена тези дни, като стои на раменете на другите хора
така че наистина може да се съсредоточи върху нови и интересни проблеми.
Но нека сега се съсредоточи върху, отново, логиката.
>> Това е един бърз обход на естетиката, само за да ви покаже посоката, в която можете да отидете.
Отивам да се върне към най-грозните един за сега, само защото
не е отвличане на вниманието с неща, Twitter, и нека вървим напред и да се отворят
на froshims2, което, отново, се различава само в действие, register2.php
и нека да погледнем какъв е ефектът е тук.
Нека вървим напред и въведете в лицето на Дейвид.
Няма да съм капитан и този път.
Ще кажа, че мъж, Матюс, регистър.
Дявол да го вземе. Добре, това е винт от моя страна.
Stand.
Register2, ред 22, ако е празно или съжалявам.
Да се ​​презареди.
Добре, при изпращането на този формуляр, какво точно се е случило?
Аз напечатани в лицето на Дейвид, провери мъж, кликнали Матюс, регистър.
Са регистрирани. (Е, не съвсем.)
Това очевидно е една стъпка отвъд просто отпечатване на съдържанието на някои променлива,
Но какъв е този файл всъщност прави?
В register2.php
забележите, че имам някакъв нов код.
Вътре в тялото ми маркер имам по същество, ако друг изграждане,
но, защото аз съм едновременно смесването с някои HTML
Имам да влизат и излизат PHP режим назад и напред, така че нека да видим какво правя.
>> В първия ред тук искам да кажа, ако случаят е такъв,
, че след супер глобалното е празна за ключ на името,
с други думи, ако потребителят не ми даде стойност за името под формата
изпразнете ще се върне вярно, защото стойността е празна.
Или забележите, че вертикалните линии, ако полът е празна
в рамките на тази специална супер световно, което, отново, представлява съдържанието на формуляра,
или общежитието е празен, тогава аз ще да вървим напред и да крещи към потребителя.
Как? Е, забележете, аз ще кажа, че трябва да предоставим вашето име, пол и общежитието.
Нека да индуцират тази грешка.
Нека се върнем към формата ми. Позволете ми да презареди, за да го изчисти.
И аз просто ще им даде Дейвид, и те не трябва да знаят къде живея.
Регистрирайте. Явно аз трябва да им кажа къде живея.
Трябва да предоставите вашето име, пол и общежитието. Върни се назад.
>> И аз може да кликнете, за да се върнете към тази форма, но защо е така?
Е, в този случай име не беше празна, но пола е и общежитието е,
така че това целият израз оценени, за да е истина, и въпреки че е малко по-нов синтаксис,
отново, ние влизаме PHP режим, познат, ако изявление,
но новата част тук е само този на дебелото черво, и аз бяхме прецакани от пропуска нито скоби
случайно, но забележите на дебелото черво, а това означава,
въпреки че ние сме излизане PHP режим всичко
, която следва, трябва да се изплюе дословно в браузъра
докато не видите друг блок, както правим ние тук,
в който случай трябва, вместо да плюе това
докато не видите endif, така че някои леко нов синтаксис
, която ми позволява да превключвате между HTML и PHP.
Ние можем да почистите нещата в крайна сметка, но за сега,
това е вид на един завладяващ начин на проверка за грешки формата.
>> Сега казвам, че наистина не сте регистрирани, защото очевидно сме направили нищо, но данните,
така че нека се опитаме да направим нещо готино.
В froshims3 Единствената разлика е, аз ще представя register3
така че HTML е същото.
През register3 забележите това.
Това е един вид на секси.
На върха аз съм с изискването изявление, така че това е като # включват.
Този път това не е на stdio.h или нещо подобно.
Това е PHP библиотека, и това се нарича PHPMailer.
Как да знам да се включат именно тази цитиран низ?
Прочетох го в документацията, така че, когато ми каза това в началото на файла
ако искате да използвате специална библиотека, наречена PHPMailer, че прави това, което казва.
Тя ви позволява да изпращате електронната поща чрез PHP.
Сега нека да превъртите надолу допълнително.
>> Забележете, да започне през цялото това време съм в режим на PHP,
така че сега забележите тук след вноса на тази библиотека,
така да се каже, аз правя някои здравия разум проверки.
Ако случаят е такъв, че името не е празна
и пол не е празна забележите удивителни знаци
и общежитието не е празна, тогава потребителят е логично попълва формуляра, най-малко достатъчно.
Не ми пука, ако си капитан или не. Просто имам нужда от тяхно име, пол и общежитието.
Ако са изпълнени тези извън, така, че нито едно от тези полета са празни
това е малко по-новия синтаксис.
PHP, както настрана, е обектно-ориентиран език за програмиране
които някои от вас може би си спомняте от бронетранспортьори или други подобни.
За сега, ако непознати, просто знам, че за да използвате тази библиотека
Вие трябва да напишете ред на кода по този начин, с помощта на нова ключова дума,
буквално нова ключова дума, наречен ново.
Но освен това, ние имаме някои познати синтаксис.
Това е стрелката оператор, който е подобен на което сме свикнали за structs в контекста на указатели.
За днес PHP не указатели,
, но знаете, че вътре в пощата променлива
е по същество вид на показалеца на специална библиотека
, че някой друг пише, и ако искам за достъп за специфична функционалност
вътре в тази библиотека правя, като в C, използвайте стрелката на оператора,
въпреки че те всъщност не са указатели.
Това е нещо на собствена версия на PHP него.
Това означава, отидете в библиотеката и се обадете на IsSMTP функция.
SMTP, изземване, от нашите Войни на Net се отнася към електронна поща,
и това просто означава, използвайте имейл сървър за тази Frosh УИ регистрация.
>> Какво домакин Искам да използвам?
Е, Харвард,, ако Google наоколо, има имейл сървър, наречен smtp.fas.harvard.edu.
Ако играете заедно у дома или живеете в мрежата на Comcast
тя може да бъде нещо подобно smtp.comcast.net.
Това изцяло зависи от това къде живеете и кой е вашият интернет доставчик е.
След това аз ще се насоча от адреса да бъде произволно jharvard@cs50.net.
След това аз ще да се обърне към jharvard@cs50.net.
Единственият начин знаех, че тези функции са били наричани SetFrom и AddAddress
, отново, прочетете документацията.
Това не е нещо като магически известно, че всички програмисти.
Тогава обект на "регистрация".
И сега тази линия е малко грозна, защото това, което се точка оператор в PHP?
Някой знае ли?
CONCATENATE.
В C е болка в областта на шията, за да се слеят две струни заедно.
Трябва да се справят с изчистване или презаделяне или всички тези неща
само за да удължи продължителността на низ.
В PHP, JavaScript и други езици
обикновено можете да направите това с един знак.
В този случай, точка означава, че този низ тук
и да приложи към този низ.
>> О, и между другото, да приложи към него този низ,
което се случва да бъде променлива вътрешността на тази супер глобален.
След това да приложи към него на нов ред, така че всички тези точки просто означава
продължат да правят по-големи и по-големи и по-големи низ,
и не трябва да се грижат за изчистване или подобни на език, като този,
и има други начини да направите това, но това е един от най-бързите
начини да го положи.
Какво е това?
Те създават имейл орган, който ще каже Име: Капитан: Пол: Dorm:
на отделни редове, и след това накрая,
един ред код, и аз отивам да се игнорира това за сега.
Ако == фалшиви просто означава, че ако нещо се обърка,
но магията се случва тук.
Писмо Изпрати означава, че изпращането на този имейл.
Нека видим какво е нетният резултат.
В долната част на файла, забележите, че става да кажеш, че са регистрирани наистина
ако стигне до там.
Ако, обаче, на потребителя винтове, забележете, че ние започнахме тази
ако състоянието тук, ако не е празна и не е празна
и не се изпуска ние изпращаме пощата.
В противен случай ние ще изпратим този ред на код,
която ще има ефект, както ще видите в pset 7, за пренасочване на потребителя
обратно, откъдето са дошли, froshims3.php.
>> Стискаме палци, в противен случай това ще бъде най-разочароващите демото днес.
Ето ни.
Позволете ми да отвори моя имейл пощенска кутия за jharvard в Gmail.
Не имейл. Добре.
Сега нека ме отвори froshims3, който е трети и последен пример, ние ще разгледаме тук.
Добре, да го направим.
Нейт, той ще бъде капитан, мъжки, от, да речем, Apley.
Регистрирайте. Добре, вие сте наистина.
Сега, ако превъртите на моя имейл, о, Боже мой.
Току-що динамично изпрати имейл в мрежата.
>> Нека оставим тази бележка.
А видеото е предстоящото за лекцията сме пропуснали. Ще се видим следващата седмица.
[CS50.TV]