[Powered by Google Translate] [Недела 8]
[David J Malan] [Универзитетот Харвард]
[Ова е CS50.] [CS50.TV]
>> Добредојде назад.
Ова е CS50, а тоа е почеток на недела 8.
Неколку можности оваа недела,
меѓу нив овој разговор тука, во кои некои храна ќе биде задоволена.
За повеќе детали проверете на слајдови кои се онлајн.
И, исто така, уште еден настан оваа недела од страна на нашите сопствени Томас Carriero.
Тој е еден од поранешен шеф CS50 е наставата соработници, кој е сега во Dropbox,
и тој е човек кој ни уредила со знаете што,
па ако сакате повеќе од тоа главата на нивниот разговор ова попладне за Dropbox и многу повеќе.
CS50 ручек е овој петок.
Дали ни се придружите, ако сте во можност, 01:15, како и обично, во Fire and Ice.
>> И сега ние се нурне во нешто што се нарекува Семинари.
Нашите CS50 Семинари, се потсетиме, дали тие се опционални класи предводена од наставата соработници
и се разбира асистенти и пријатели на курсот,
луѓе од група на кампусот наречен ABCD, која е група на
technophiles на кампусот, како и групата наречена HCS,
Харвард Компјутерски општество, студенти кои се слично заинтересирани за компјутери.
Списокот за оваа година на семинари вклучува семинари за Андроид и IOS и го вклучите Javascript-
и PHP, Unix, Vim, и повеќе, па сфати дека овие семинари се доаѓа.
Ако сакате да RSVP за било кој од нив се упатат кон овој URL тука.
Тогаш ние ќе ги објави на веб страната на курсот на времиња и места откако ќе се финализираат.
Но знаете вреди таму е 5 години на пред семинари се достапни онлајн,
од кои многу се уште е многу актуелна во однос на технологии што може да
сакаат да играат со за вашата крајна проекти, па главата таму некое располагање видеа од него.
>> CSS, оние од вас кои се запознаени со CSS веќе,
што е тоа во мало?
Што е CSS?
Тоа е Cascading Style Sheets, и што значи тоа?
Што значи дека направи за нас, CSS?
Добро, ајде да се загрее со полесно еден, HTML, HyperText Markup Language.
Што значи дека направи за нас?
Секој на сите?
Станува навистина непријатно прашуваат овие прашања.
HTML, HyperText Markup Language.
Да? Не?
[Нечујни студент одговор]
Океј, добро, тоа ни овозможува да ги означите текст да се прикаже во веб прелистувач.
Тоа не е програмски јазик.
Тоа е навистина јазик за Селектирај, што значи дека им наредува на прелистувачот како да се прикаже
информации, па наједноставниот инкарнација на тоа како сме виделе
е нешто супер едноставен како boldfacing, отворен заградата б затворена заграда вели
направи оваа текстот задебелен, а тоа е всушност само еден од многуте начини
во кои можеме да го направиме тоа, и навистина, овие денови подобар пристап
да stylizing вашата веб страница, правејќи нешта храбар и искосен
и центрирани и оправдани и слично, не се прави преку HTML тагови сам
туку со техника наречена CSS, Cascading Style Sheets.
Ова е јазик при себе.
Тоа не е премногу не е програмски јазик но-
сите, ова е Дан, кој постојано ни се придруживте денес.
Некои технички тешкотии. Не е проблем.
>> CSS ни овозможува да стилизирам страница
со поставување на она што се нарекува својства, па ајде да ги разгледаме во оваа
по пат на некои основни примери.
Дозволете ми да одат во апаратот денес.
Имам извор 8 понеделник директориум овде,
и јас ќе одам да си во директориумот наречен CSS каде што имаме еден куп
на датотеки чека на нас тука,
и во оваа папка имаме, на пример, search0.html од минатиот пат.
Сега, да се потсетиме со search0 тргнавме на оваа белешка
по вид на спроведувањето на Google или навистина само предниот крај за тоа за една недела или така пред,
и ќе забележите дека имавме некои нови тагови таму.
Имавме h1 за голем, храбар наслов,
форма, која ни овозможи да всушност имаат HTML форма за корисникот влез.
Акција, што е значењето на акција атрибут
на HTML форма таг?
Што е значењето на ова, акција?
Јас само ќе го направите ова денес.
Акција е дестинација каде форма ќе бидат доставени.
Фактот дека во која се вели акција = "google.com / пребарување"
значи дека кога корисникот ќе кликне на копчето или еквивалент
било форма полиња се пополнети ќе бидат испратени не до нашиот сервер
или нашите апаратот туку на конкретни рачно во Google.
И начинот тоа се случува да се користи се нарекува добие,
и ќе добиете, за сега, е само техника за донесување информации заедно со веб серверот
по пат на URL-то, па ајде да го земеме еден брз поглед назад во како тоа функционира.
>> Забележете дека има влез чие име е н
чиј тип е текстот, а потоа и вториот влез од типот достават
чија вредност е CS50 Барај, и навистина, ако ние се отвори оваа датотека тука,
search0.html, тоа е супер едноставна форма,
и ако јас потрага по нешто како компјутерски науки
а потоа притиснете ентер или кликнете на CS50 Барај
забележи дека она што се случува е надвор добивање на Google
Јас сум посебно заврши на овој URL на врвот,
google.com / пребарување? q = компјутер + науката,
и компјутерски науки е очигледно она што го внеле внатре
На + едноставно значи дека е местото каде што просторот карактер беше,
и тоа е направено од страна на прелистувачот само за да бидете сигурни дека нема
конфузија и белиот простор во вистински URL-то.
И тогаш q, се разбира, е параметар име.
Не сме виделе како ние, програмер, всушност може да пристапите q уште.
Ние може да се претпостави дека Google знае што да прави со нив тука,
но ќе одам таму во догледно време денес.
>> Но, дозволете ми да ги разгледаме наместо на search1.html,
кој изгледа малку различен, бидејќи решив дека оваа форма тука беше малку несмасен.
Мислам, тоа е во горниот лев агол.
Има навистина нема естетика на него, и така сакам да стилизирам овој
малку повеќе како Google, чија почетна страница, отповикување,
дури и ако не може да го посетите кои често, изгледа вака денес на Ноќта на вештерките.
Ако ние наместо да се отвори верзија 1 од оваа датотека, пребарување 1.html, сум го центриран.
Уште се прилично грда, но барем сега почнав да се контролира естетиката на оваа страница,
не само одбележувањето до него.
Ајде да ги разгледаме во потрага 1, и таму е навистина само една разлика тука,
кои би можеле да скокаат на тебе, или можеби и не,
но она што е една линија или фрагмент од разликата?
>> Има овој стил атрибут, па излегува дека во HTML
повеќето елементи, повеќето тагови може да има стил атрибут на нив,
и во внатрешноста на тој стил атрибут е цитиран стринг,
и во која се цитирани низа е CSS.
Може да се стави Cascading Style лист таму
со впишување тоа како имот име
проследено со две точки проследено со вредност.
Ова е вид на несреќна дизајн одлука пред неколку години
дека CSS е јазикот сам по себе,
но синтаксички тоа е многу различен од HTML.
Во овој случај, можеме да видиме дека во внатрешноста на мојата интернет страница, кој е напишан во HTML,
Имам CSS внатрешноста на овие цитати, и Конвенцијата за CSS
е дека имате она што се нарекува сопственост проследено со повторно, дебелото црево,
проследено со вредноста на тој имот, па нема знак за еднаквост.
Нема дополнителни цитати.
Тоа е само овој дебелото црево одделени клучните вредност пар,
и текст линија прави токму она што го кажува.
Таа aligns текстот во телото на страницата, што е навистина храброст на страницата,
во центарот.
>> Океј, крајниот резултат, тогаш, да биде јасно, дали е ова.
Не сите дека sexier, но барем тоа е центриран и малку повеќе како вистински Google.
Но, што ако јас наместо отвори верзија 2 на овој
и истакне тука долу нов таг заедно?
Сега во главата на мојата страница, која претходно имала само што таг
во сите претходни примери?
Тоа само беше ова, насловот.
Пред малку главата таг изгледа вака.
Сега, наместо тоа има стил таг во него,
и ова е премногу, јас се извинувам, синтаксички изгледа многу различни од HTML,
но ќе се навикнеш на него, при што во внатрешноста на стил таг
Сега можам да се фактор од она што беше пред еден момент
на атрибут, стил атрибут, и можам да го стави во самиот врв на мојата страница.
>> Зошто?
Па, ова е чекор кон чистење на работите, како и голем писмено C код
понекогаш се напише функции да се фактор на заедничка функционалност.
Тоа е само малку почиста да започне факторинг од нешта како естетика
на една централна локација наместо сето тоа едитирате во текот на вашата HTML.
Тоа исто така го прави она што го кажува, иако има малку нови синтакса.
Ова овде е селектор, а телото само значи изберете телото елемент
и се применуваат следниве својства на него.
Па, имотот е иста.
За добра мерка јас додадов запирка на крајот,
кој има тенденција да биде конвенцијата, и јас сум завиткана целата оваа сопственост
во големи загради бидејќи јас всушност би можеле да имаат различни работи тука.
Јас всушност би можеле да се каже нешто како боја: сина;
>> Сега ова е премногу нема да биде чекор кон ништо сето она што поубава,
но ако сега се вратиме верзија 2 Јас сум барем сега го направи на телото на мојот
страница текст сино.
Го копчето останува иста затоа што тоа е влезен. Тоа не е чист текст.
Но се друго што е текст, како CS50 Барај до врвот, е всушност плава.
Повторно, сите ние го направивме сега е да се отстрани од телото таг, информации,
стил атрибут, и ние сме констатирано дека од тука.
Ова не е огромен напредок, но ако ние ја искористам оваа чекор понатаму
забележи она што можеме да направиме во оваа трета верзија тука.
>> Во search3.html веб страница е речиси идентична
освен за она што новиот таг сега?
Линк, така што ова не е многу потполност име
затоа што не си поврзување во смисла на кликање хиперврска.
Наместо тоа, ти си вид на прави еквивалент на # Include во 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 е ознака што се воведува поделба на страната.
Можеш да мислиш за тоа како невидлива правоаголник.
Тоа вид на создава куп област во веб страница
дека можете да стилизирам сите одеднаш.
Она што го направив тука е како што следува.
Внатрешноста на моето тело таг, кој е таму сите заедно,
Сакам да кажам дека се создаде поделба на страница тука преку линии 45 преку 47,
а тоа значи во суштина ми даде невидливи правоаголник должината на врвот на страната.
Потоа ми даде втора правоаголник, иако невидлив, под тоа,
и тоа се идентификуваат со името содржина, а потоа на крај,
ми даде една третина поделба на страната на дното
наречен проект.
Ќе гледам зошто би го направиле тоа во само еден миг,
но концептуално имам насловот поделба.
Имам содржина поделба, и имам подножјето поделба на страница
иако овие се само во Селектирај.
Корисникот не се случува да се види 3 правоаголници,
но вид на структурно има зад сцената
всушност тие се присутни.
>> Сега, кој се грижи? Зошто, всушност, го направите ова?
Сè друго на страница е иста како што сум видел.
Еве го мојот форма. Еве го мојот влез, мојот влез, на ред и така натаму.
Еве една слика, иако, па ќе видиме каде тоа потекнува од само еден миг.
Еве еден подножјето, кој е нов, само затоа што сакав да се воведе
некои повеќе содржина тука.
Ако ние скролувајте горе забележите дека ID на овој div е заглавието.
Проект на овој div е содржината, и проект на оваа е подножјето.
И како што сугерира името, кога имате ид атрибут
во HTML, по дефиниција таа уникатно мора да се идентификува
еден од елементите, еден од тагови во вашата страница.
Товарот е целосно на вас е да се запамети дека имате насловот проект веќе.
Имате подножјето. Имате содржина ID веќе.
Компјутерот не се случува да дознаам што е на располагање ID е за вас,
така случајно сте може да даде 2 тагови лична карта на насловот,
и тоа само би било погрешно.
>> Мора да се има предвид она што сте го креирале,
но еднаш сте го направиле тоа известување што да правиме тука.
Јас сега може да се определи во мојот стил таг на врвот
или еквивалентно во мојот CSS фајл, ако сè уште бев со користење таа верзија,
Можам да кажам # заглавие, и што значи тоа е дека она што таг
во оваа веб страна има проект на заглавието
и #, само од човечка конвенција, претставува проект.
Со остриот знак или фунти знак претставува проект.
Насловот е името што го дал.
Ова значи применуваат оваа имотот CSS
на она што таг на оваа страница го носи лична карта на заглавието.
Истиот договор тука.
Примени го овој имот, кој се случува да биде ист, за секој елемент,
чиј број е содржината, а потоа надолу тука
забележите добив малку познавач со подножјето.
Секој елемент чиј проект е подножје, од кои не може да има само еден по дефиниција,
оди напред и да ги направи своите фонтот помали,
нејзините фонт тежина храбри, неговата маргина 20 пиксели.
>> Што значи тоа?
Тоа е само маргина на врвот, дното, и лево и десно.
Ова значи ми даде 20-пиксели невидливи маргина околу него
само да им помогнам на сè друго далеку од тоа да биде малку, како може да се направи во Word,
Microsoft Word или страници или слично.
А потоа текстот усогласат центар.
Ајде да видиме крајниот резултат, а потоа ќе одиме назад до еден преостанатите програмка на CSS таму.
Ова е верзија 4, нашиот последен за пребарување примери, и тоа е многу, многу sexier.
Сега, во праведност, јас само Googled "Google фонт логото генератор."
И дека ми е дозволено да се создаде GIF, слика формат, кој изгледа како дека постојат.
Всушност, можете да го направите ова е премногу.
Имаме "Google фонтови логото генератор."
>> Ајде да видиме дали можеме да го направите тоа.
Океј, мислам дека ова е веб-сајт се користи.
Можеме да кажеме Ec 10, на пример, и да ги направат своите сопствени.
Можете да играте со овој целиот ден, а потоа десен клик на неа
а потоа преземете вистински GIF, што е сето она што го направив.
И навистина, тоа е зошто во мојот HTML, да се потсетиме, овде
Јас имав сликата таг, која ја видовме накратко минатата недела
чиј извор е logo.gif.
И што повторно беше мотивација за да има оваа алт атрибутот,
оваа алтернатива атрибут?
Да.
[Нечујни студент одговор]
Добро, па 2 причини, навистина, ако на прелистувачот не може да се повлече до сликата
затоа што имаш бавен мрежна конекција или сликата е расипана
или нешто слично барем човечки може да се види "CS50 пребарување"
а потоа и за достапноста причини.
Ако имате еден корисник кој е слеп и е користење читач на екран
и затоа очигледно не можат да гледаат слики тие можат барем да
слушам текстот, ако нивниот компјутер зборува за нив.
>> Во принцип, ова е најдобрата практика кога станува збор за достапноста на страници
така што дури и корисниците во таква ситуација може да се слушне или види, така да се каже,
што е тоа што е на вашата страница.
Има една друга работа што го направив тука
која е малку интересна, и ние ќе видите повеќе за ова во проблем во собата 7
преку еден од шорцеви предводена од еден од наставата соработници.
Но # содржината однесува на таг
чиј број е содржината, но тогаш има простор карактер, и потоа, тука е збор влез.
Па, она што е интересно во врска со CSS е дека може да
однесуваат на тагови во една страница вид на хиерархиски,
и она што оваа програмка на CSS значи најдете таг
чиј број е содржината, а потоа се применува на следниве својства
на сите влезни тагови кои се потомци на содржината,
тоа е дека се вовлечени во него.
Вовлекување, пак, е само важно да се на компјутер, а не на човекот,
но со конвенцијата ние алинеја работи како што ние одиме подлабоко во страница,
па тоа значи применуваат маргина од 5 пиксели за секој влез елемент
тоа е некаде внатре или вгнездени внатре
елемент чиј број е содржината.
>> Кој е кои се однесуваат на?
Па, има всушност само овие 2 момци тука.
Забележете дека во внатрешноста од формата има 2 влезови,
како што беше за сите овие примери.
Но, напомена дека тие 2 влезови се случи да се вгнездени внатре,
иако малку подлабоко, неколку слоеви на вовлекување,
внатрешноста на таг чиј број е содржината.
Што значи ова?
Ако одиме на пребарувачот тука можете да видите некогаш толку малку-
дозволете ми да зумирате во кои постои малку Соочи меѓу копчето
и помеѓу полето за текст.
>> Дозволете ми привремено се претвори дека исклучени.
Дозволете ми да одам до мојот CSS, и дозволете ми да одиме напред и само
промените оваа маргина од 5 пиксели 0 пиксели.
Дозволете ми да оди напред потоа и зачувате датотеката, да се вратиме на пребарувач
и повторно, и види средината на страницата.
Сè што доби компресирани заедно, и кога јас прв пат шлаг овој пример до
Мислев дека изгледаше глупаво од полето за текст, а потоа на копчето веднаш под него.
Сакав да рампа тоа малку, па јас воведе маргините.
Она што нема да го стори во предавањето е да се оди преку неколку десетици
CSS особини кои постојат затоа, пак, постојат работи како големината на фонтот,
фонт тежина, маргина, текст усогласување, а неколку десетици други,
и ние ќе ве упати во проблем во собата 7 до различни вежби онлајн
и препораки кои ќе ви овозможи да ги собереш овие работите.
Но она што е навистина важно на крајот на денот
>> е да се разбере како овие работи се применуваат.
Повторно, ако имаме стил таг внатре, од кои
може да оди на селектори, вид на идентификатори кои одредите
на кого сакаш да се применуваат овие својства,
а потоа ќе се стави на својства како клучни вредност пар
одвоени со две точки, а потоа заврши со точка-запирка,
или можете да рипувате сето тоа надвор и го стави во посебна CSS датотека
при себе.
Сите права, било какви прашања на концепти
или големата слика на CSS?
Можете повторно ќе видиме повеќе од тоа во pset 7,
но ние ќе продолжиме тоа обично прилично едноставна.
Не? Во ред.
Тоа е време за вистински програмски јазик,
и ние ќе се врати за да малку на CSS во форма на пример.
PHP е всушност прекрасно достапен јазик
по тоа што е синтаксички речиси еднакво на В
Со други зборови, ако знаете C, знаеш во најголем дел PHP,
најмалку синтаксички, иако постојат некои нови функции
и некои нови концепти ние ќе мора да се погледне.
>> Но, во најголем дел, сега дека ние транзиција од C во PHP
повеќето од новите работи е навистина во големата слика,
како да се користи јазик за програмата на веб што е спротивно на
на командната линија или во трепка брзо како што го правеле досега.
За повикување, особено со pset 7 и на финалниот проект, па натаму,
ги искористат предностите на овој URL тука ако сакате да прочитате за формалностите на PHP.
Тоа е всушност како бесплатен онлајн учебник ефикасно,
и ти исто така ќе најдете дека она што е навистина убаво за PHP
е дека постојат стотици функции кои доаѓаат со неа,
додека во Ц ќе не мора да имаат пристап до
повеќе функции отколку во математика библиотека, CS50 библиотека.
Во PHP и многу современи јазици, Python и Ruby меѓу нив,
ќе добиете пристап до толку многу повеќе функции, што значи можеш да пишувам
многу помалку код, бидејќи можете да стои на рамениците на други луѓе
кои веќе напишано некои работи за вас.
>> Да го земеме еден брз турнеја на синтаксата на PHP и потоа напишете неколку примери.
Што е убаво за PHP прво и основно
е нема Главната функција.
Ако сакате да напишете програма во PHP сте само на проектот пишување код,
а вие не мора да се грижите за главната.
Нема int. Нема враќање.
Нема argv, argc што е потребно, кога ќе напишете програма.
Наместо едноставно да почнете со пишување код, и тоа е делумно
затоа што PHP е она што се нарекува толкува јазик.
Ц е компајлирана, а тоа е компајлирана во смисла дека ќе почнете да
со изворниот код, да го стартуваш преку ѕвекот, што е компајлер,
и на крајот по одреден број на чекори ќе добиете објектниот код, 0-ти и 1S.
PHP и Python и Ruby и Перл и други
различни видови на јазиците во кои вие не ги собира.
Вие не одат од изворниот код на 0-ти и 1S.
Вие само се кандидира на изворниот код, и ќе се кандидира на изворниот код
со пишување на вообичаен текстуална датотека, завршува во. PHP во овој случај
наместо. в, и она што програмата го прави на вашиот компјутер
е буквално толкува кодот линија по линија по линија.
>> Со други зборови, наместо да напише програма и да ја стартувате програмата
директно ти наместо да напише програма со датотеката завршува во. PHP.
Потоа ќе се кандидира вистински програма наречена php.exe, ако сте на Windows,
или само PHP ако сте на Mac OS или Linux,
и ви обезбеди како влез во програмата PHP свој код,
и неговата цел во животот е да ја прочитате вашата код врвот до дното, лево кон десно,
и го она што сте го кажа да го направам.
>> Ајде да видиме што тоа ќе значи синтаксички.
Во PHP имаме услови.
Овој слајд е идентична со она што го гледаше назад во недела 1
бидејќи синтаксички услови, IFS и друго IFS и друго во PHP
изгледа токму вака.
Кога станува збор за рационален израз тие ќе изгледаат токму вака.
Кога станува збор за anding работите заедно како booleans тоа ќе изгледа токму вака.
Прекинувачи изгледаат исти, и ќе го добиете дополнителна корист во PHP
дека прекинувачи во C може само да се префрлиш на знак или int.
Вие не може да се префрлат на вредноста на стрингот.
Во PHP вие всушност може да има израз
дека е променлива чија содржина се низа,
и всушност може да направи низа споредба во реалниот интуитивен начин,
не покажувачот споредба, со цел да се одлучи дали да се направи случај јас или ѕ или нешто друго.
Ќе видиме што потенцијално пред долго.
>> Петелки премногу прекрасно се исти.
За петелки имаат иницијализација, состојба, а некои број на надградби.
Додека петелки, исто така, постојат во PHP.
Направите додека петелки, исто така, постојат во PHP,
и низи постојат во PHP, но тука е местото каде синтакса почнува да се добие малку поинаква,
но концептите се исти, и концепти навистина се исти
како што беа во недела 0 со нула.
Прво и основно е $ знак.
Ова беше дизајн одлука во PHP при секоја променлива
во PHP со дизајн започнува со $ знакот.
Нема повеќе X, Y, Z. Тоа е сега $ x, $ y, $ Z само затоа.
Тоа е нешто да се има предвид, а сега на десната страна
ова изгледа слично на низа,
но ние сме со користење квадратни загради тука.
Во PHP и го вклучите Javascript-, како што на крајот ќе видиме,
да се изјаснат за низа правиш плоштад заградата и затворени квадратни заградата,
а потоа ќе мора со запирки листа на вредности, без разлика дали ints
или жици или знаци, она што го сакате, во внатрешноста на тој израз има.
>> Сега, како не правиме нешто како ова во C?
Што е синтакса за статички прогласување низа на познати броеви?
Тоа беше кадрави загради, па мала разлика тука, но во двете PHP
и на крајот да го вклучите Javascript тоа само го користи загради, па навистина
само интересни детали тука е $ знак за името на променливата
а исто така и загради, и има една чудна работа
тоа е се испуштени, како и на левата страна на знакот =.
Што недостасува дека ние сме биле бара за неколку недели сега? Да.
[Нечујни студент одговор]
Големината, така што не се споменуваат на големина на низата.
Искрено, нема спомнување на квадратни загради на левата страна
на знакот =, и што друго се водат за исчезнати од линијата?
Да. >> [Нечујни студент одговор]
Видот, па она што е интересно особено за PHP
е дека таа не е силно отчукува јазик како C е,
и тоа е силно отчукува во смисла дека мора да се каже знак,
мора да се каже int, мора да се каже плови.
>> Во секое време сакате променлива мора да се каже ѕвекот што ваков тип е.
PHP е малку lazier.
Тоа е лабаво отчукува во смисла дека
ќе може да има плови и карактери и стрингови
и ints и така натаму, но самиот јазик
не навистина се грижат што ќе се стави во внатрешноста на променлива.
Вие не мора да го информира однапред што тип на податоци
се случува во променлива.
Тоа е целосно зависи од вас, па ова е убаво
во тоа што вие не мора да се грижите колку за податоци пишување
и загрижувачки што вашите аргументи се и така натаму.
Ова исто така значи крај функции во PHP се случува да бидат во можност да се вратат
ниту една int поголемиот дел од времето, а можеби еднаш во некое време
тие ќе се вратат bool, рационален број лажни, на пример, да означува дека нешто тргнало наопаку.
Ова ни дава некои квит, но тоа, исто така, ќе ни прават вид на од страна на дизајнот
малку lazier кога станува збор за податоци пишување.
>> Што друго е таму за да ги држи во умот тука?
Променливи изгледа сосема се допаѓа ова, па $ S = "Здраво, свет".
Тоа е можеби inferable од претходниот пример,
и ние имаме друг вид на јамка.
Оваа една ние всушност ќе се види еднаш во некое време, бидејќи тоа е прилично корисна,
на foreach изградба.
Во овој случај, јамка foreach зема во внатрешноста на нејзината загради 3 зборовите обично,
$ Нешто прво, што е она што низа сакаш да iterate во текот на членови на,
тогаш буквално клучниот збор како, а потоа на крај,
друга променлива името што можеш да одбереш.
Тоа може да биде foo, бар, или елемент,
и она што оваа конструкција не
е ако $ низа содржи 10 елементи
на секоја итерација на оваа низа жал, на секој повторување на овој циклус
променлива наречена елемент ќе биде обновено
да биде првиот елемент во низата, тогаш вториот елемент во низа,
тогаш третиот елемент на низата, на тој начин obviating потребата
да се направи малку досадни квадратни загради нотација и
$ I, со цел да индекс на низата.
PHP не сите на таа работа за вас и за секој повторување
само вие рацете на следниот елемент од низата
без тебе морале да знаат за или се грижите за своите нумеричка индекс локација.
>> А потоа на крај, за сега, има една друга карактеристика на PHP
тоа ќе биде многу корисно, особено кога ќе почнат програмирање на интернет,
и дека е познат како асоцијативна низа.
Низи што го знаеме досега од 20 секунди пред
и во изминатите 8 недели се броево индексирани низи,
вид на традиционалните низи каде индекси се ints,
0, 1, 2, по целиот пат за нагоре.
Асоцијативни низи се многу помоќни.
Тие ќе ви овозможи да имаат произволен клучеви,
произволни индекси и произволни вредности.
Додека во традиционален низа е 0, 1, 2,
во асоцијативна низа може да имаат индекс
или клуч на foo чија вредност е бар.
Тогаш може да има уште еден клучен чие име е baz и чија вредност е qux.
>> Повторно, глупаво компјутерски науки генерички променлива имиња тука,
но поентата е дека оваа низа не мора заградата 0 или заградата 1.
Тоа е, наместо случува да имаат заградата foo и заградата baz.
Ова е многу повеќе разноврсна во, дека ние сме ќе биде во можност да се дружат
зборови со други зборови, клучеви со вредности сосема произволно,
и ние ќе можат да добијат оние вредности назад во постојан време
бидејќи под хаубата што асоцијативна низа
навистина се е хаш табелата.
Потсетиме дека хаш табелата ви овозможува да се стави во некои влез
како се стави во зборот Дејвид ако сакате да вметнете Давида во некој вид на речник,
а потоа ќе се вратам некои вредност обично.
Во случај на правопис, точно или неточно.
Дејвид или што збор е во или не е во речникот.
Асоцијативна низа е навистина само хаш табелата,
но тоа е многу повеќе корисник пријателски инкарнација на тоа.
Како што ќе видиме, тоа ќе ни овозможи да направиме некои работи
многу, многу лесно.
>> Ајде да ги разгледаме во некои основни PHP
примери и да видиме што можеме да направиме со овој јазик.
Дозволете ми да оди напред и да се отвори во нашата изворниот директориум денес
фајл наречен hello1.php.
Оваа датотека е повеќе коментар, отколку што е вистинскиот код,
па дозволете ми да всушност отстраните сите коментари од датотека
и сегашноста да ти можеби наједноставниот PHP програма во право тука.
5 линии, а некои од нив се бели простор,
така забележите некои клучни разлики тука.
На датотека се нарекува hello1.php.
На првата линија, сепак, е <? Php.
Слични во духот со HTML,
дека низа од карактери кажува на компјутерот
"Еј, компјутер, тука доаѓа програма ние сме во PHP."
Тоа го прави сигурни дека тоа не е збунет дека тоа е некој друг јазик.
Алинеја 2 е интересна белиот простор.
Алинеја 3 е нашиот стар пријател printf,
овој пат во контекст на PHP.
PHP има своја верзија на printf што се однесува токму на истиот,
па ова е само случува да се печати "hello, светот".
И тогаш ова спротивната таг тука,>, значи дека тоа е за мојата PHP код.
>> Ајде да видиме како да ја извршите оваа.
Одам да се вратам на мојот терминален прозорец тука.
Одам да одам во мојата PHP директориум.
Забележете дека ние имаме еден куп на датотеки, првиот од кои едната е hello.php.
Дозволете ми да оди напред и да ја извршите оваа, hello1.php, внесете.
Пристапот е одбиен. Во ред.
Како сме фиксна вакви работи во минатото?
Што е тоа? >> [Нечујни студент одговор]
Ние треба да читаат и пишуваат, но дозволете ми да направам ls-l.
Запомни го тоа малку криптичната излез при hello1
се чини дека да се чита и да се пишува по мене
но може да се чита од сите други.
Излегува ова всушност не е чекор во вистинската насока.
Разликата, пак, со препознаена јазик
е што не ја стартувате програмата директно.
Ти наместо да работи со преведувач и рака на кодот
дека сум напишал така што може да се протолкува тоа линија по линија.
Во овој случај, толкувачот или програма јас всушност сакаат да се кандидира
е буквално вика PHP.
>> Некаде на овој хард диск на апаратот постои програма
некој друг напиша наречен PHP или на Windows php.exe.
Она што јас ќе одам да направите е тука јас ќе одам да всушност се кандидира PHP
но даде како командата на кодот кој го напишав,
а потоа јас ќе одзумирате и притиснете ентер.
Таа работи мојата програма за мене, врвот до дното, лево кон десно.
Дозволете ми да оди напред и да се отвори мала варијансата на ова.
Во hello2.php забележите дека ова е премногу
најчесто коментари, па дозволете ми да се ослободи од оние како одвраќање,
и она што е јасно различна сега за оваа датотека?
Има оваа нова линија, малку криптичната на врвот.
Во алинеја 1 е #! / Bin / PHP.
Бин е конвенција за Linux и Mac OS за бинарни датотеки,
па / bin значи дека ова е папка која содржи еден куп на бинарни датотеки
кој е програмиран, од кои едниот е PHP.
На #! е наречен фирма,
кој е брз начин да се каже тоа, и што тоа значи
е дека кога ќе ја извршите оваа програма за сега има навестување на врвот на датотеката
кој му кажува на компјутерот што преведувач за да го користите.
>> Станува малку досадни, ако ти мораше да му кажете на вашиот корисници и вашите клиенти
"Еј, ние напиша оваа програма наречена hello1.php."
Се што треба да направите е засекогаш се кандидира PHP и тогаш името на оваа програма.
Искрено, тоа само ќе биде поубаво да се кандидира hello1.php,
и навистина, можеме да ако го направите следново.
Дозволете ми да оди напред и да се направи ls-l, а известувањето во hello2 тоа е уште само да читате пишуваат
а потоа читаат прочита, па јас се уште не може да го направите ова, hello2.php.
Но, воведовме оваа некогаш толку кратко последен пат, командата chmod.
Ако јас не chmod a + x, што значи дека сите плус executability,
а потоа hello2.php а потоа се ls-l повторно забележите што се смени.
Еден, Linux е мене покажува името на датотеката во зелена да ја пренесе идејата
дека тоа е извршна, но уште поважно, на левата страна
забележите дека малку претставуваат x за извршна сега е наместен.
Што е ова сега значи јас може да работи ./hello2.php како и обично,
притиснете ентер, и поради фирма во самиот врв на датотеката
тоа е знак, повторно, на Linux која вели
користите оваа преведувач за да ја извршите оваа датотека.
Не грижете се за принудувајќи на корисникот за да всушност го напишеш.
>> И она што е убаво сега е тоа е вид на ирелевантни за моите клиенти или моите пријатели
кој јазик напишав оваа програма во, така што може да се оди напред со mv
и ја преименувате оваа работа да hello2, на пример.
И сега, ако го направам ./hello2
и одзумирате мојата програма продолжува да работи.
Овие екстензии на датотеки се човековите конвенцијата што е потребно
за нешто како ѕвекот и Направете кои бараат за нив.
Но за PHP, јас може да се нарече ова наставката на датотеката што сакам.
Јас би можеле да трик на светот во размислување дека сум навистина добри во Руби,
и јас би можела да напише hello2.rb и потоа изврши тоа,
и Voila, сега имам верзија Руби, која е комплетна лага.
Но на датотеката екстензии се бесмислени
ако датотеката е извршна и има оваа специјална алудираат на врвот на датотека.
>> Сега, како настрана, дозволете ми да ви покажеме брзо верзија 3,
кој е вид на корисен трик да знаеш.
Во hello3 го направив нешто малку погрешно
дека ќе ажурирање на изворниот код онлајн.
Во верзија 3 излегува дека на повеќето Линукс компјутери
има програма наречена env за животна средина,
и што можете да го направите тука е ако немате идеја каде PHP
е инсталирана на локален хард диск, затоа што навистина може да се разликуваат врз основа на компјутерот
дека некој е користење, Плик само вели дека работи env,
кој е на повеќето системи, и да дознаам каде PHP е.
Само една заедничка трик, така да не мора да се грижите за изнаоѓање каде на програмата е.
Но, ако не се грижи за да дознаете каде на програмата е и да не се грижи досега
можете да го користите која команда.
>> Дозволете ми да одзумирате и типот што PHP,
и ќе забележите тоа ми кажува тоа е всушност во usr / bin / PHP.
Тоа е вид на лага. Тоа е, исто така, во канта за отпадоци.
Тоа е само мене покажува првиот хит.
Ако некогаш сте се запрашале каде ѕвекот е, што ѕвекот, тоа е во usr / bin / ѕвекот,
кој го направи, usr / bin / направи, и што значи тоа е сето ова време
може да се пишува usr / bin / ѕвекот влезат да се кандидира ѕвекот,
но тоа е вид на досадни да го направи тоа, па така некои папки
како usr / bin и канта се претпоставува дека се стандардно
па на компјутерот знае да се погледне во нив за вас.
Било какви прашања за пишување супер, супер едноставен Здраво Светската програма
во PHP и потоа се извршува?
Бидејќи сега ќе почнеме да се воведе повеќе привлечни синтакса.
Добро, тука ќе одиме.
Овие програми видовме всушност сите од нив порано.
>> Ако јас се отвори, на пример, ајде да направиме beer1.php,
ние не ќе помине низ неколку верзии за тоа, но она што го направив
беше Седнав и истури тоа или конвертирани
мојата C код во PHP код овде.
Повеќето од врвот на датотеката е коментарите тука.
Излегува има една нова функција што треба нарекува readline.
GetString, се потсетиме, од недела 0 наваму беше CS50 работа.
PHP доаѓа со свој user-friendly функција наречена readline
кој ги зема 1 аргумент кој го одредува брза
што ќе посакате да ја прикажете на корисникот, и што readline не
е го враќа она што корисникот типови внатре
Во овој случај, јас сум прогласување на променлива наречена $ n.
Јас сум чување во тоа повратната вредност на readline
по предизвикувајќи на корисникот со овој стринг.
Само да се врати, да всушност ја извршите оваа работа, дозволете ми да оди напред
и да ја стартувате PHP beer1.php.
Колку шишиња ќе има? Ајде само направете 2 на овој период.
Enter. Тоа е сè.
>> На програмата е функционално идентични со верзија Ц од пред неколку недели.
Но, синтаксички ајде да видиме што е различно.
Откако ќе добие int од корисникот најава дека јас го правам некои грешка проверка,
и ако n е помалку од 1 Јас престанам и јас печатење
на жал порака до корисникот и излез со 1.
Тоа исто така е малку различен.
Во C она што го правиме? Во C вративме 1.
Во PHP ќе излезете со 1, кој искрено се мислам дека малку повеќе интуитивен
затоа што ти си буквално излегување на програмата.
Сите во право, а потоа надолу тука досадни песна е идентична синтаксички
освен за променлива, па овде во линија 24 па натаму
забележите ми за телефонска линија е речиси иста,
но имам $ пред i и N,
и она што е, исто така, водат за исчезнати од линија 26 што имавме во минатото
кога прогласување на променлива i?
Нема тип.
Тоа не е точно во PHP да се каже int.
Вие едноставно не треба да го направите тоа.
Компјутер, преведувач PHP е доволно паметни за да сфатат
дека ако се стави број во $ јас ќе го третираат
како број за вас.
А потоа надолу тука сме приклучок во i $, $ i, $ i - 1.
Сето тоа е иста, и потоа надолу тука правиме "Леле, тоа е досадно" printf
и потоа излезете (0).
>> Повторно, готова брза тука е дека иако ние ќе поминат релативно
малку време на PHP, секако наспроти она што го правевме на C,
тоа е речиси ист, и така она што ние ќе направиме денес и следната недела
и пошироко е се фокусира навистина на некои од новите идеи.
Само да се види дека една друга работа се преведе во текот од C,
ова е супер едноставна програма што го правевме во недела 1
или 2 дека коцки вредност.
Но, она што е интересно во тоа време за оваа програма е тоа што
воведе поимот на сопствени напишани функција која ние самите напиша.
Синтаксата во PHP е речиси иста.
Еве го мојот програма до врвот.
Забележите повторно отсуствува било каква идеја за главната.
Јас на проектот пишување код, и тоа е она што се случува да се извршуваат од страна на преведувач.
Јас испечатите x е сега 2, веројатно.
Тогаш тврдам местење Рубикова коцка ...
Тогаш јас го нарекувам коцка функцијата и во $ x
и додели на повратната вредност до $ x.
Тогаш тврдам дека тоа е коцки, а потоа го велам, кој се надевам дека
ќе кажам x е сега 8.
Синтаксата за функција во PHP е некогаш толку малку поинаква.
Повторно недостасува е враќање тип.
Повторно недостасува е враќање тип, а исто така недостасува е она што друг вид?
[Нечујни студент одговор]
Па, добро, тоа е добро. Да се ​​вратам на тоа во една секунда.
>> Ние немаме, на пример, int тука.
Ние не, на пример, се int тука затоа, пак, во PHP
вие едноставно не треба да и не треба да го направат тоа,
туку има овој нов збор се нарекува функција.
Во PHP тоа е речиси малку појасно, бидејќи кога ќе сакате некоја функција
вие буквално велат функција, ќе го даде името, а потоа со запирки листа
ако било кој од своите аргументи.
Нема потреба да се каже празнина или нешто слично, а потоа враќање е иста,
$ A * $ a * $ a.
Што е исто така недостасува? Sammy посочи ова тука.
На врвот на датотеката комплетно отсутни во PHP, исто така, е прототип.
Тоа исто така е од страна на дизајнот.
Јазици и толкувачи како PHP се попаметни од C некогаш беше
во компајлери како ѕвекот.
>> Потсетиме дека ѕвекот, ако не го кажам дека коцка постои,
ако не се каже дека printf постои како со прототип
или со # include, добро, тоа требаше да се развикам и дури и не компајлирате вашиот код.
PHP и повеќе модерни јазици се многу попаметни кога станува збор за ова.
Тие ќе го земе врз себе да се чита преку сите ваши код
а потоа се развикам само ако најде коцка никаде.
Тоа не е важно дали коцката е на дното или на врвот или дури и во некои посебен фајл.
PHP и слични јазици се сега доволно паметни да гледам напред
во сè пред deeming дека како што имаат направено грешка.
Каде што ни остави?
>> Да направиме еден последен пример тука во услови,
и ако се отвори conditions2.php известување премногу
синтакса тука е речиси иста.
Јас сум со користење readline наместо GetString, но таа линија е иста како и досега,
"Би сакал цел број молам."
Јас тогаш имаат ако состојба, на друго, ако, а потоа друго,
но функционално оваа програма е, исто така, идентични со она што го правевме недели,
па ако јас ја извршите оваа работа, PHP на conditions2,
и јас го даде бројот, како 23 -
Јас зедов позитивен број. Ако јас ја даде -1 Јас зедов негативен број.
Ако јас ја даде 0 Јас навистина бере 0.
Па кој се грижи за сето ова?
Па, еден од забава вид на вежби тука
за мене барем беше да се врати и да видиме колку брзо би можел да се спроведе pset 5,
на спелувањето грешки pset.
Потсетиме дека имаше оваа датотека наречена speller.c,
и таму беше фајл наречен dictionary.c.
Она што јас го бев вид на потрошени неколку минути и јас конвертира кодот Ц
во PHP код, и ние не ќе потроши многу време на правопис
бидејќи исто како и во pset 5 ти навистина не треба да
поминуваат многу време на правопис себе, бидејќи вашето внимание беше на речникот.
>> Доволно е да се каже дека ако се чита преку правопис,
оваа датотека тука, тоа е доста еднакво на код C
ние ви даде за pset 5.
Јас сум само додава некои $ места.
Се променив одредени имиња на функции, ако тие не постојат во PHP.
Има една дополнителна работа тука, preg_match,
што е малку познавач начин за правење на нешто, но ние ќе се вратам на тоа на крајот.
Но, во краток, правопис е речиси идентична, а ако се погледне на самото дно
она што на крајот плука е тука,
зборови погрешно напишани зборови во речникот, зборовите во текстот.
Добро, па она што е интересно сега е следново.
На врвот од моите датотека јас сум бара dictionary.php.
Исто како Ц # вклучуваат PHP има посебна функција наречена бараат
дека доста го прави истото, се бара фајл наречен dictionary.php.
Како можам да се обратите за спроведување pset 5?
Дозволете ми да оди напред и да се отвори датотеката тука.
Дозволете ми да потрае малку референца тука.
И дозволете ми да се создаде новата датотека и да почне повикувајќи овој dictionary.php.
Дозволете ми да го стави во друга папка за да можеме да го направите тоа во живо.
И сега јас ќе зумирате внатре
Одам да се започне мојот датотеката PHP со отворен заградата PHP затворена заграда.
А потоа тука имаше неколку функции што е потребно да се спроведе за pset 5,
па дозволете ми да започне со спроведувањето на некои од оние,
така функција чек, кој мораше да земе збор во како аргумент.
Ние ќе го направи тоа и да се вратат со него во моментот.
>> Имаше функција оптоварување, што се во она што како аргумент?
Речник, па на датотеката што всушност сакаше да се вчита.
Имаше функција големина, што не превземал никакви аргументи
и имаше функција она што беше на другиот?
Бриши, кои не превземал никакви аргументи или.
Овие се 4 функции, кои ќе треба да сега се спроведе во PHP,
и она што јас ќе одам да направите е да се оди напред и да го направите тоа.
А многу од вас користат хаш табелата во pset 5,
па дозволете ми да оди напред и да се создаде хаш табелата во PHP.
Готово.
Тоа ми дава хаш табелата. Па, зошто?
Еден, променливата се вика $ маса, само за да апелирам до идејата на хаш табелата.
На загради, иако, да се потсетиме, што претставува?
Низа, но во PHP низи не треба да се броево индексирани.
Тие, исто така може да биде асоцијативни низи,
што значи дека може да има произволен клучеви и вредности.
>> Слично како во 5 pset, оние од вас кои не хаш табелата имплементации
најверојатно вметнува зборот и потоа се додава дека во еден синџир на поврзани листи,
или се чуваат на вредноста на вистинската некаде или нешто во таа насока.
Ти некако се сети на фактот дека зборот беше таму.
За сега тоа се случува да ми биде хаш табелата,
па сега да се обратите за спроведување на проверка на функција
Јас само треба да се погледне внатре во тоа хаш табелата
и види дали некој збор е таму.
Она што јас ќе одам да направите е да одам да се каже ако-
да речеме isset, што е PHP функцијата која буквално само значи е клуч во собата,
па isset ($ маса [$ збор]
и ако е така враќање вистина.
Тоа е тоа. Тоа е pset 5 во PHP.
Па, во праведност, во ред.
Друго врати false, па тоа не е таму.
Што навистина се случува овде?
Па, ако на маса или хаш табелата тука поопшто-
е асоцијативна низа тоа значи дека може да индексира во неа
со еден збор како "збор", и ќе мора да се вратат некои вредност.
>> Ние сме вид на добивање на еден чекор понапред од нас самите.
Тоа ќе биде вид на убаво ако ние всушност натоварени на датотеката прво,
па товарот не е толку едноставна, но дозволете ми да оди напред и да разбивам
навистина брзо спроведување на товарот.
Дозволете ми да оди напред и да каже зборови добива датотека речникот.
На датотека функција во PHP отвора датотека
и се враќа за да ви низа на сите зборови во таа датотека,
само да ги рацете кон вас.
Тоа беше голема болка исто така, не е тоа?
Сега foreach, ова е нашата нова конструкција, foreach ($ зборови како $ зборот).
Овој циклус се случува да се започне процесирањето преку низа зборови
и додели на $ збор променлива секој збор во датотеката
од првиот до вториот на третиот до четвртиот по целиот пат
па јас не треба да се прават досадни [i] нотација и слично.
И она што јас едноставно ќе направи за секоја од овие зборови
е чувајте го на мојата маса од индексирање во табелата
а потоа прави точно, бидејќи е да се запамети
дека зборот е во мојот речник сите што навистина треба да направите
е вид на флип малку и да кажам овој збор во мојот хаш табелата е таму, тоа е вистина.
И ако тоа не е таму, јас не мора да експлицитно се стави лажни,
инаку јас ќе треба да се стави лажни за сите можни зборови во универзумот.
>> Доволно е за мене само за да го поставите на индексот вредност
на true ако некој збор е, всушност, во мојата хаш табелата.
Сега, јас сум сечење неколку агли тука дека јас ќе бран моите раце во за сега,
но сега товарот функција е направено.
Јас вчита сите зборови од датотека во низа.
Јас iterate во текот на овој низа, и за секој збор во низа
Јас го приклучиш во мојот хаш табелата со 1 линија код.
Ова е забава. Знаеш како може да се имплементираат големината сега?
Па, големината е секогаш прилично лесно, во праведност.
Тука ние само може да се вратат пребројувањето на табелата.
Тоа е прилично лесна, брои бројот на нештата во табелата.
Тоа е всушност вид на не најефикасен.
Јас веројатно ќе треба да имаат променлива наречена големина за да можеме да го направи тоа
во постојан време, но тоа е прилично лесно.
О, и тогаш се исклучи, ако навистина сакаме да биде анален тука
можеме да кажеме дека е како ќе се исклучи нешто.
Вие само го поставите променлива еднаква на празна низа,
и го добива ослободи од сето она што беше таму.
Нема потреба да се јавите бесплатно.
>> Повторно, јас сум намалување на некои ќошиња, а јас се извинувам за доделување проблем сет 5
можеби во C, но ако ние сега одиме напред и да ја извршите оваа,
Одам да всушност работи на верзија која ја напишав во однапред
само така што јас не направи синтаксички грешки она.
Дозволете ми да оди напред и да ја стартувате правопис. Користењето е иста.
Тука е речникот датотека која само го содржи зборот foo.
Еве еден текст фајл кој само содржи foo бар.
Да проверка на правописот ова, па правопис, со користење на овој речник датотека на овој текст фајл.
Има една погрешно напишани збор, бар, и Voila.
Направено со pset 5.
Да го земеме еден 5-минутната пауза тука, а ние ќе се врати и повеќе на PHP.
Сите во право, ние сме назад.
Да ми го-мразам за некое време.
Ајде сега всушност се види дали ова не е позитивен
всушност спроведување на оваа работа во PHP.
Готово, го зеде 45 секунди да се имплементира.
>> Но, ајде да одиме напред и сега се кандидира работи.
Дозволете ми да оди напред и да ја стартувате верзија C
на правопис, а ние ќе се пушта и на еден од најголемите датотеки,
која е Кралот Џејмс Библијата.
И дека тука е-ајде да одиме во нашиот C папка,
правопис на Кралот Џејмс 5.
А многу погрешно напишани зборови.
Океј, па тоа е излез најверојатно доби дури и ако Часовите се малку различни,
ако имаш сето работи правилно, и така времето во вкупно проверка на правописот
Кралот Џејмс Библијата е 0,38 секунди, па прилично добар користење на тоа имплементација.
Сега дозволете ми да одат во верзија PHP, кој ние едноставно напиша.
Дозволете ми да се кандидира правопис на кралот Џејмс.
Whoops, го игнорираат тоа грешка. Јас сум во ред директориум.
Правопис на Кралот Џејмс 5.
Речиси завршена.
>> Океј, остроумен набљудувач ќе сфатите дека беше повеќе од 3 секунди таму.
Тоа е вистинска трчање време.
Излегува дека е потребно време да плукаат многу текст од
поради визуелниот прашања, но скратам приказната,
тоа беше 3,15 секунди на машината време, процесорот време,
наспроти она што беше тоа пред еден момент?
Како 0,3.
Мислам, тоа е редот на големина побавно, па каде е тоа
смешно забавување доаѓаат од?
Па, како што беше случај со повеќето било дизајн одлука што е направен
во класата во текот на изминатите 9 недели има речиси секогаш оваа Губитокот.
Понекогаш помеѓу само просторот, понекогаш меѓу просторот и времето,
простор, време и развојни напори, и навистина тука, иако
ние спаси огромна сума на време, можеби потенцијално 10-20-30 часа
на развојот на време за спроведување на проверка на правопис
со камшикување тоа во само 45 секунди со овој јазик
цената што ја плаќаат е дека тоа е наредба на големината побавно како резултат на тоа,
и ова е обично случај со повеќето било толкува јазик,
PHP, Python, Ruby, Перл или други при
ако си оди за да ја извршите преку толкувач и да го прочита вашиот код
линија по линија, од врвот до дното, лево кон десно,
дека посредник ќе потрае некое време на свој,
и она што го чувствуваш тука во 3 секунди за разлика од 0,3 секунди
е фактот дека постои овој посредник кој има буквално толкување нашиот код
линија по линија, и не дај Боже ако си во внатрешноста на јамка
со огромен фајл кој ги содржи стотици илјади зборови.
>> Тоа надземни се случува да додадете и да додадете и да додадете и додаде.
За алатка вака тоа не е веројатно најдобрата јазик да се користи за спроведување
проверува правописот ако непосредност е од интерес за вашите корисници и за вас.
Но луксузни имаме во моментот е ако
користи јазикот како PHP или многу толкува јазици
во контекст на веб, за тоа прашање, ќе имаат корист
дека на интернет е многу побавен отколку повеќето компјутери.
Имате GHz процесор во вашиот компјутер, 2 GHz, можеби дури и повеќе, овие денови.
Но, реалноста е на интернет постои висок износ на латенцијата
при што за интернет пребарувач да се зборува со некој сервер, иако видовме минатата недела
дека тоа е прилично брзо, половина милисекунда или така,
дека премногу додава нагоре, и ако сте симнување работи како слика
или слика Фејсбук или добивање на инстант пораки преку Фејсбук разговор,
Gchat или слично, сите овие двупосочен пати
помеѓу прелистувачот и серверот почеток за да додадете нагоре,
што го прави вашиот особено изборот на јазик во многу случаи
не сите дека релевантните, па ти си во ред со помош на малку побавно јазик
како PHP или Пајтон или Руби
но за кои постојат огромни квит сум за вас и вашите колеги
и вашите пријатели, бидејќи може да се спроведе работите толку, толку многу побрзо.
И згора на тоа, имаш многу помал ризик од одредени безбедносни пропусти.
Нема покажувачи во PHP.
Нема секунда грешки кои можете лесно може да предизвика
на ист начин можете да во C.
Со C сте супер во близина на хардвер.
Со PHP и слични јазици си вид на повисоко ниво, така да се каже,
со многу одбрани помеѓу вас и она што всушност се случува
внатрешноста на машината, и тоа е само Губитокот.
>> Имаме добивано и до точка на се има овие повеќе современи, високо ниво јазици
како PHP, бидејќи на научените лекции во јазици како PHP во C.
Но, ако не го разбираат она што се случува под хауба сето ова време
сигурно не може да се направи вистинскиот дизајн одлуки,
и секако кога станува збор за работа во место како што се Фејсбук или Google
или било која од овие места, кои се повеќе се игра со големи множества податоци
дури и ако се вратиш назад и не premed и се работи со некои MD
на некои големи податоци вклучување на пациентите и лекарите
и како користење на правото алатки е многу привлечна
затоа што во спротивно вашата анализа на некои податоци може да потрае секунди,
или тоа буквално може да потрае часа.
Ова е само еден пример, да не ве фрустрираат со колку повеќе напор
тоа беше во C но да ви помогне да ги цениме дека кога ќе го имплементираат нешто во C
навистина се разбере, или во теорија, навистина се разбере
како што е или треба да се работи, и имаш речиси целосна контрола
над она што се случува под хауба, и со овие повисоко ниво јазици
ќе мора да се откаже од поголема контрола на луѓе кои ги измислиле
и се предмет повеќе на нивниот дизајн одлуки од твое.
Но ако се земе здраво за готово дека ефикасноста
не е толку важно на Интернет, бидејќи на овие други прашања,
само мрежа брзини се малку побавно од процесорот брзини, сепак,
па ние да ги сортирате на да си дозволат да го користите малку побавно јазик
ако квит сме ние може да се развие работи 10 пати побрзо или дури и повеќе.
>> Ајде да видиме како можеме да започнат со користење на оваа.
Дозволете ми да одат во папката
меѓу примери денес се нарекува frosh.ims,
и ова е всушност лично мотивирани од фактот дека многу првото нешто
Напишав за веб години по преземањето CS50 и CS51
е веб-сајт за Frosh инстант пораки програма, Новак интрамурален спорт,
кој во тоа време тоа беше доволно години дека во времето
немаше сајт за програмата, иако имаше интернет,
и наместо тоа имаше Проктор во Wigglesworth при што ако си сакал
да се регистрирате за одбојка или фудбал или што и да би ги пополните парче хартија.
Тогаш ќе одиме низ дворот.
Тогаш ќе затропа на нивната врата и слајд во нивната врата или рака на Проктор
парче хартија со вашето име на неа, без разлика дали или не сакате да биде капитен на тимот,
она спорт си сакал да се направи, и што dorm сте биле внатре
Тоа е вид на старата школа начин на вршење на работите, а тоа беше одличен
можност да се автоматизира многу на овој процес.
Вие само одете на веб страната. Можете да напишете нешто внатре
Ќе добиете е-мејл потврда, и бум, ќе завршиш.
>> Ова беше многу првото нешто што го направив, иако во јазик наречен бисер,
но тоа е релативно лесно да се направи во PHP, и ова е вид на претставник
од проблемите можете да почнете решавање, кога можете да се изразите себеси
програмски и не мора да се потпираат на нешта како Google сајтови
или Excel или алатки кои се предадени за вас.
Вие момци сега имаат способност да се прават работите се допаѓа ова.
Ова е супер грда верзија на форма,
но ајде да ја користите за почетокот на разговорот при што ова е
околу она форма изгледаше како години за нас
да им овозможи на луѓето на интернет да се регистрирате за Frosh инстант пораки.
Прашавме за името, полето за тоа дали или не тие сакаа да биде капитен,
машки или женски, а потоа што dorm тие беа во,
а потоа тие ќе поднесете овој образец.
Ајде прво да погледнеме под хаубата на HTML кој претставува оваа веб страница.
Дозволете ми да одат во froshims0,
и како настрана, за pset 7 земам здраво за готово
на директориуми и директориуми, кои сум ги оставате работите внатре
Ние ќе ви прошетка низ точно каде работи треба да оди во апаратот,
која МО команди што треба да се кандидира, па не се грижи за сите
глупави детали синхронизирање во од се-Go тука.
>> Добро, тука е 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 другите, па мора да им се даде истото име
ако сакате да бидат меѓусебно се исклучуваат како што.
А потоа за dorm, јас не мислам дека ние го видел ова сеуште, но тоа е изберете мени, опаѓачкото мени.
Ознака за тоа е изберете.
Тогаш даде на опаѓачкото мени името,
а потоа имате еден куп од овие опции.
Првиот, само за естетика, е празен стринг.
Сакав само паѓачкото да биде празно по дифолт,
и потоа, тука е Apley, Canaday, Grays, и така натаму.
И ќе забележите дека дихотомијата тука.
Опција во паѓачкото има вредност,
но тогаш тоа има човечки-пријателски име, кое во овој пример
е идентична, но ако навистина сака да биде анален ние би можеле да имаат
вредноста на овој паѓачкото само да биде кратка верзија,
Grays, но ние навистина може да се каже Grays сала на човекот го гледа,
но тоа не е сè што интересни, па јас само го чуваат едноставни и направени се идентични.
Потоа надолу кон дното имаме Копчето Испрати
што сме виделе порано, но забележиш јас само да го даде друг збор.
Наместо CS50 пребарување дадов на етикетата "Регистрирај се".
>> Крајниот резултат е оваа веб страна тука, и повторно,
каде што ова се доставува до?
Станува доставени до некои датотеки, вредноста на акцијата атрибут,
кој беше register0.php.
Ајде да видиме што всушност се случува овде.
Дозволете ми да оди напред и да ги пополните оваа форма, велат Давид,
машки, Метјуз, и тогаш ќе речам дека се регистрирате.
Дозволете ми да одзумирате и кликнете регистрирате.
Океј, па вид на бескорисни, но ајде да видиме што всушност се случува.
Забележете дека рачно е променет да биде register0.php.
Што е чудно отсутни од URL-то, иако, иако ние едноставно поднесе пријава?
[Нечујни студент одговор]
Океј, тоа е само Хром е лесен овие денови.
Тоа е всушност таму. Тие само го сокрие да се зачува простор.
Но, добра мисла и добра мисла.
Кон другиот крај на URL-то, сепак, она што недостасува? Да.
[Студентски] На барањето.
На барањето, па се потсетиме на нашите едноставно пребарување на Google примери.
Штом ќе кликнете на копчето URL-то
ме одведе на Google, но потоа имаше? q = компјутерски науки или што имав внесе внатре
Тоа е затоа што се користат GET методата со пребарување пример.
>> Овој пат ние сме користење на она што метод наместо неа?
Ја објавите, и еден од непосредните разлики
помеѓу GET и POST е дека пост не стави внесување на корисникот во URL-то.
Тоа го крие. Таа се уште го праќа.
Всушност, она што го гледате во прелистувачот тука, како што ќе се открие во еден момент
од страна гледајќи во register0, е јас сум само гледањето на содржината
на низата, кои беа поднесени од прелистувачот на серверот.
Но URL не имаат?, Нема никакви клучни зборови
или вредности во него, и зошто е тоа така?
Па, пост ви овозможува да уште доставува податоци од форма на серверот,
но тоа не го стави во URL-то, па каков вид на информации е пост
особено погоден за можеби кога сте се бара од корисникот да
напишете влез форма?
Нешто како лозинка, нешто како што друго?
Броеви на кредитни картички.
Нешто што е благо чувствителни најверојатно не сакаат да заврши во URL-то
ако само затоа што тоа значи дека вашиот цимер или член на семејството може само да трол преку
вашата интернет историјата, а потоа буквално видите вашите лозинки,
буквално го видите вашиот броеви на кредитни картички, бидејќи повеќето пребарувачи
се сеќавам во историјата она адреси сте биле во,
па ако само затоа што тоа би било лоша идеја.
Користејќи пост крие дека детали од корисникот.
>> Исто така, како да испратите слика на Фејсбук?
Па, само 2 механизми што навистина може да се користи,
иако има неколку други повеќе arcane оние, е да се добие и пост.
Како ви се веројатно испратите слика преку URL-то?
Ти всушност може да го направи тоа.
Можете да ги JPEG или bitmap или GIF и можете да го застапува во хексадецимален
или нешто што се нарекува база 64.
Наместо на база 16 користите база 64, што во суштина изгледа како
ASCII карактери, а вие всушност може да испратите слика преку рачно
по знак прашалник, но постојат генерално големина граници.
Повеќето прелистувачи сила адреси да биде не повеќе од 1000 карактери,
можеби 2.000 карактери или слично, па не можете да испратите
10 MB Фејсбук слика.
За да користите пост, како и, па за сега се става параметрите во URL-то,
што е убаво и корисно понекогаш, но за нешто чувствителни или голема
пост е начин да се оди.
Што register0 всушност прави тука?
Па, ако ми се отвори register0 забележите дека ова е супер едноставен страница,
но тоа е демонстрација на фактот дека можам да ко-мешаат, за подобро или за полошо,
HTML со PHP.
Целата оваа датотека, освен за коментари на врвот, се HTML
освен за овој човек овде.
>> Забележите во средината на мојата PHP код,
во средината на мојот HTML, Имам вид на привремено
влезе PHP на владата.
Јас го повикувам посебна функција наречена печатење r.
Тоа значи печати рекурзивен, и она што го прави тоа е рекурзивно отпечатоци
што променлива го страна, запирка, излезот PHP на владата.
И пред таг ви дава пред-форматиран текст,
моно простор текстот, така што секој простор вие всушност ја видите.
Тоа не исчезне. Што е пост?
Па, она што е интересно и релевантни за PHP
е дека секогаш кога ќе поднесете форма со користење GET или POST
нешто што е доставен до вас од страна на прелистувачот
PHP е самата фигури што овие клучни вредност парови се,
фигури ако има еднаков знаци, фигури ако има знак прашалник.
Тоа го прави на сите напорна работа за вас, а потоа ги дава асоцијативна низа
содржат сето она што корисникот внесе во форма.
Па, она полиња се оваа форма имаат?
>> Таа имаше 4 полиња.
Една од нив беше во полето за текст наречен име.
Една од нив беше наога наречен капетан.
Една од нив беше копчето наречен пол,
и еден беше опаѓачкото мени нарекува дом,
така забележите кога ќе печати рекурзивно
содржината на оваа специјална променлива.
Ова е специјален глобалната променлива наречена буквално $ _POST, во сите настапи.
Ова е специјален глобалната променлива дека PHP само создава за вас
и рацете да ви, така што можете да пристапите сè
кој бил пратен преку форма од страна на корисникот.
И со повикување на печатење r на него-не би го направил тоа во една нормална апликација.
Ние го правиме ова за да ја видите во внатрешноста на оваа променлива,
и она што е во него, добро, 4 копчиња,
4 HTTP параметри, така да се каже,
име, капетан, пол, dorm, а потоа и вредности кои на корисникот
внесе во со еден исклучок.
Јас не тип D-А-В-I-Д.
Јас проверив кутијата, иако, за мажи, кои очигледно ги достави вредност
на само м да биде содржаен.
>> Кога јас избрани Метјуз тоа е вредноста што беа избрани,
и ова е малку глупаво, но тоа е конвенцијата.
Кога ги проверив кутијата, вредност на на "за", доби поднесени за полето.
Ако не бев го проверуваат, нема вредност ќе се испратени она.
Ова е само ни даваат увид во она што е внатре на оваа специјална глобалната променлива,
и тоа е толку посебен што се вика супер глобалната променлива.
Таа постои насекаде за вас во вашиот код, така што вие всушност може да го пристап.
Ова не е толку огромна, па ајде всушност употреба на супер глобалната
а всушност се обидуваат да се регистрирате некого.
Во froshims1 Одам да се направи една промена.
Јас сум менување на акција да биде register1.php,
и јас го правам една друга работа.
Бев вид на срам од квалитетот на мојата веб страница има.
Тоа е прилично одвратен, искрено, така излегува
дека можете да го користите многу лесно на интернет
JavaScript код на други луѓе, на други луѓе CSS
дека сум напишал и отворени извори и ставена на располагање како библиотека,
така да се каже, и за пример, еве јас сум со користење на слободно располагање библиотека,
еден куп на код кој некој друг го напишал.
>> Твитер се случи да ја напишам оваа кодот, а тоа е наречен bootstrap библиотека,
и тоа е само еден куп на CSS стилски листови, еден куп. CSS фајлови
дека некој друг пишува и сфатиле како да се добие сè убаво и убава
така што луѓето како нас може да се грижи малку помалку за естетика и се фокусира многу повеќе
на логика и вистински програмирање.
Со врски во со таа ознака, која е иста ознака Јас се користат да се сеќава за styles3.css порано,
Јас сега имаат пристап до фајл наречен bootstrap.min.css.
Мин само значи дека тие си ја minified и тие ги добиле ослободи од сите бел простор и така натаму
само за да бидете сигурни дека тие не се ми испраќа повеќе бајти отколку што всушност треба.
Но, таму е целиот куп на CSS, па ако јас сега се отвори верзија 1 од Frosh инстант пораки
забележите дека мојата датотека е дефинитивно поубав.
Сега тоа е сепак само црно и бело, но забележуваат дека со само користење на нивниот стил на состојба
и користење на одредени карактеристики на тоа на мојата форма не е неверојатно,
но тоа е дефинитивно почиста отколку што беше порано, и проектор не го прави тоа правдата.
Има малку сиви линии околу копчињата и околу полето за текст токму тука,
но тоа е дефинитивно почиста отколку што беше порано.
>> Сега, во праведност, јас не треба да ги променам моите Селектирај малку.
Ова е верзија 1, и ќе забележите дека јас сум користел неколку нови ознаки,
и искрено, немав идеја како да го направите тоа додека не ја прочитав документација
за подигање библиотека Твитер, и тие ми кажаа, ако сакате да ја користите нашата библиотека
користете fieldset елемент во внатрешноста на вашиот облик,
стави зборот што сакаме да покажеме веднаш до полето внатрешноста на етикетата ознака,
тогаш даде вашиот влез името, пред само како,
а потоа за квадратчето не само што ќе ја заврши во етикетата елемент,
го користите нешто што се нарекува класа, па не сме виделе ова, пред,
но ќе го видиме во една од шорцеви pset 7.
А класа во CSS ти овозможува да направи нешто многу слично на проект,
но пред кога имавме проект со симболот #
тоа беше за една и елемент само еден.
Што е убаво за една класа е дека повеќе елементи можат да имаат иста класа
или истиот CSS работи применува на него.
>> Но, повторно, повеќе на оние во краток, а остатокот од ова е само копирајте го и ставете
од нивната документација каде што јас додадов етикета тука и таму.
И на крајот, бидејќи јас сум вклучен линкот ознака на врвот,
сè изгледа поубава автоматски
со едноставно имаат означени до мојата страница на начин кој
Твитер се очекува, и има толку многу различни начини
на тоа, и ова е навистина многу соодветно.
Во овој момент во семестар, како што ќе видите во спец pset 7,
Googling наоколу, до читање на библиотеки, користење на другите луѓе CSS
и JavaScript за решавање на помошни проблеми
на проблемот сет сам по себе е секако охрабрени и е начинот на кој
Веб е изграден, овие денови, што стои на рамениците на други луѓе
така што навистина може да се фокусира на нови и интересни проблеми.
Но, ајде сега се фокусираат на, повторно, логиката.
>> Тоа беше брз непотребен пат на естетиката само за да ви го покаже правецот во кој можете да отидете.
Одам да се вратиш назад на погрда една сега за сега само затоа што
нема одвлекување на вниманието со Твитер работи, и дозволете ми да оди напред и да се отворат
froshims2, која, пак, се разликува само во акција, register2.php,
и ајде да ги разгледаме во она што ефектот е тука.
Дозволете ми да оди напред и да напишете Давид.
Јас нема да биде капитен на овој период.
Јас ќе кажам машки, Метјуз, регистар.
По ѓаволите. Океј, тоа е еден шраф на мојот дел.
Стојат од страна.
Register2, линија 22, ако е празно или-Жал ми е.
Ајде да ја превчитате.
Океј, по поднесување на оваа форма што едноставно се случи?
Јас ја внеле во Давид, проверени машки, кликна Метјуз, регистар.
Сте се регистрирале. (Па, навистина не.)
Ова е јасно чекор подалеку од само печатење на содржината на некои променлива,
но она што е оваа датотека всушност прават?
Во register2.php
забележите дека имам некои нов код.
Внатрешноста на моето тело таг имам суштина, ако друг изградба,
но бидејќи јас сум ко-мешаат со некои HTML
Морам да влегуваат и излегуваат PHP на владата и назад, па ајде да видиме што јас го правам.
>> Во првата линија, тука сакам да кажам дека ако тоа е случај
дека пост супер глобалната е празна клучот на името,
Значи со други зборови, ако корисникот не ми даде вредност за името во форма,
тогаш празна ќе се врати точно, бидејќи вредноста е празна.
Или-забележите вертикални решетки-ако полот е празна
во внатрешноста на оваа специјална супер глобалната, која, пак, претставува содржината на образецот,
или dorm е празен, тогаш јас ќе одам да оди напред и да се развикам на корисникот.
Како? Па, забележиш јас одам да се каже дека мора да се обезбеди вашето име, пол, и dorm.
Да, всушност, предизвика таа грешка.
Дозволете ми да се вратам во мојата форма. Дозволете ми да ја превчитате да го исчистите.
И јас сум само ќе им даде Давида, и тие не треба да знаат каде што живеам.
Регистрирате. Очигледно јас не треба да им каже каде што живеам.
Мора да се обезбеди вашето име, пол и dorm. Оди назад.
>> И можев да кликнете да се врати во таа форма, но зошто е тоа така?
Па, во тој случај името не беше празна, но родот е и дом беше,
па целата оваа израз оценува за вистина, и иако синтаксата е малку нови,
повторно, влегуваме во PHP режим, познат ако изјава,
но новиот дел овде е само оваа дебелото црево, а јас зезнав со изоставување заграда
од несреќа, но коментар на дебелото црево, а тоа значи
иако ние сме излегување PHP на владата се
што следува се треба да плукаат дословно на прелистувачот
додека не го видите на друго блок, како и ние овде,
во кој случај наместо да плукаат ова
додека не го видите ENDIF, па така некои малку нови синтакса
што ми дозволува да се префрлате помеѓу HTML и PHP.
Можеме да ја исчистиме оваа до крај, но сега за сега,
тоа е вид на една огромна начин на грешка проверка на формата.
>> Сега, јас велам дека не сте навистина се регистрирани, бидејќи очигледно ние го направивме ништо друго освен на податоците,
па ајде всушност се обидуваат да направат нешто кул.
Во froshims3 единствената разлика е јас ќе одам да ги достават до register3,
па HTML таму е иста.
Во register3 забележите ова.
Ова е еден вид на секси.
На врвот Јас сум со користење на бара изјава, па ова е како # include.
Овој пат тоа не е stdio.h или нешто слично.
Тоа е библиотеката PHP, и ова се нарекува PHPMailer.
Како не знам да го вклучите токму оваа Цитираниот текст?
Јас го прочита во документацијата, па кога ми рекоа стави ова на врвот на датотеката
ако сакате да користите специјална библиотека наречена PHPMailer дека го прави она што го кажува.
Тоа ви овозможува да испратите е-мејл преку PHP.
Сега ајде да дојдете долу понатаму.
>> Забележете да започне сум во PHP режим цело време,
па сега забележите овде долу по увоз на таа библиотека,
така да се каже, јас го правам некои сигурносни проверки.
Ако тоа е случај дека името не е празна
и пол не е празен-забележите удивителни-
и dorm не е празен, тогаш на корисникот е логично пополнети форма, барем доволно.
Не ми е гајле ако тие се капетанот или не. Јас само треба нивното име, пол, и dorm.
Ако тие се пополнети оние надвор, така што ниту еден од тие области се празни
ова е малку нови синтакса.
PHP, како настрана, е објектно ориентирано програмирање јазик
што некои од вас момци може да се сети од оклопни транспортери или слично.
За сега, ако непознат, само знам дека за да ја користите оваа библиотека
ќе мора да напише една линија од код вака со користење на нова клучен збор,
буквално нов збор се нарекува ново.
Но надвор од тоа, имаме некои познати синтакса.
Тоа е стрелка оператор, кој е сличен на она што се користи за structs во контекст на покажувачи.
За денес PHP не треба покажувачи,
но знам за сега дека внатрешноста на пошта променлива
е во суштина вид на покажувачот на посебна библиотека
дека некој друг го напишал, и ако сакате да пристапите до одредена функционалност
внатре во тоа библиотека јас, како во C, користете ги стрелките на операторот,
иако тие не се всушност совети.
Тоа е вид на сопствена верзија на PHP него.
Ова значи одат во библиотека и повик на IsSMTP функција.
SMTP, се потсетиме, од нашите воини на мрежата се однесува на е-маил,
и тоа само значи употреба на сервер за електронска пошта за овој Frosh инстант пораки регистрација.
>> Што домаќин сакам да ги користите?
Па, Харвард, ако на Google наоколу, има е-маил сервер наречен smtp.fas.harvard.edu.
Ако си игра заедно дома или живеете на Comcast мрежа
тоа би можело да биде нешто како smtp.comcast.net.
Таа целосно зависи од тоа каде живеете и кој е вашиот интернет провајдер е.
После тоа, ќе одам да поставам мојата од адреса произволно да биде jharvard@cs50.net.
Јас сум потоа ќе се постави за да се обрати за да биде jharvard@cs50.net.
Единствениот начин знаев дека овие функции беа повикани SetFrom и AddAddress
е, повторно, Јас го прочитав документација.
Ова не е вид на магично позната на сите програмери.
Тогаш јас во собата предмет на "регистрација".
И сега оваа линија е малку грди, бидејќи она што го прави точка операторот значи во PHP?
Некој знае?
Concatenate.
Во C е болка во вратот да concatenate 2 жици заедно.
Мора да се справи со Примерок или realloc или сите нешта
само да се прошири должината на стрингот.
Во PHP, во JavaScript и други јазици
обично може да го направите ова со еден лик.
Во овој случај, точка значи искористам оваа низа тука
и додадете на тоа што оваа низа.
>> О, и патем, додадете на тоа што оваа низа,
кој се случува да биде променлива внатре во тоа супер глобален.
Потоа додадете на тоа нова линија, па сите овие точки само значи
задржи правење на поголеми и поголеми и поголеми стринг,
а вие не мора да се грижи воопшто за Примерок или слично на јазик, како таков,
и има други начини да го направите ова, но ова е еден од најбрзиот
начини да го нокаутирам.
Што е тоа го прават?
Тоа е креирање е-мејл тело што се случува да се каже Име: Капетан: Пол: dorm:
сите на посебни линии, а потоа на крај,
една линија код, и јас одам да го игнорираат овој сега за сега.
Ако == лажни само значи дека ако нешто не беше во ред,
но магија се случува овде.
Пошта испрати значи испрати оваа порака.
Ајде да видиме што нето резултатот е.
На дното на датотеката, забележи тоа се случува да се каже дека се регистрирани навистина
ако добијам толку далеку.
Ако, сепак, корисникот завртки нагоре, забележите дека почнавме овој
ако состојбата се тука, ако тоа не е празна и не е празен
и не го испразните ние испрати по пошта.
Инаку ние ќе испрати оваа линија код,
кои ќе имаат ефект, како што ќе видите во pset 7, на пренасочување на корисникот
назад од каде што дошле, froshims3.php.
>> Прстите поминува, инаку ова ќе биде најмногу разочарувачки демо денес.
Еве ќе одиме.
Дозволете ми да се отвори мојот е-мејл сандаче за jharvard во Gmail.
Не внесувачот на Е токму сега. Во ред.
Сега дозволете ми да се отвори froshims3, која е трет и последен пример ние ќе се погледне тука.
Океј, тука ќе одиме.
Нејт, тој ќе биде капитен, машки, од, да речеме, Apley.
Регистрирате. Океј, сте се регистрирале навистина.
Сега, ако јас дојдете во текот на мојата е-маил, о, Боже.
Имам само динамички испрати е-маил на интернет.
>> Да ги оставиме за тоа белешка.
А видео е претстојната за предавање ние пропушти. Се гледаме следната недела.
[CS50.TV]