[За възпроизвеждане на музика] SPEAKER 1: Това е CS50 и това е края на седмицата седем. Днес е може би къде сме Наистина те учи езици. Ние въведохме в последните няколко HTML и CSS седмици, нито една от които са езиците за програмиране. И наистина, въпреки че не сме направили Посетете почти всички тагове че HTML идва с и почти всички от имотите, които CSS идва с, това е един вид го за HTML и CSS. Ние просто ще принцип започнете предполагайки, че вие разберат основните идеи от етикети и атрибути, и страници, които се изпращат от клиент-сървър. Защото днес ние започваме да погледнем друг език за програмиране, PHP. Отиваме да направите това супер бързо. Ние няма да ви научи PHP по себе си, много като ние не се стремим да ви научи С, сам по себе си, а за програмиране. И наистина, една от най- цели за този курс е не да ви научи C, или HTML, CSS или, или PHP, или произволен брой други бръмча думи или акроними, а науката компютър и как да програмирате фундаментално. И наистина, днес ние започнете да приемате тези обучителни колелата всички допълнително с полет през език, наречен PHP, както следва. Ето какво този език прилича. Оказва се, че не е необходимо за основна функция в програма писмен на език, наречен PHP. Така, че вече звучи малко по-прости от C, с които сме запознати. Оказва се, че ако Искам да декларира променлива, можете да го направите почти идентичен C. Но има ясно една разлика тук когато Декларирам низ, или може би две разлики. Как изглежда по-различно? АУДИТОРИЯ: знака на долара. SPEAKER 1: Да, има долар подпише, които ние никога не сте виждали преди. И това, което липсва? Да? АУДИТОРИЯ: [недоловим] SPEAKER 1: Да, няма тип данни. Така се оказва, че PHP е това, което ние обадете хлабаво типов език, където C е силно написали. Вдъхновен написали просто означава, че има различни типове данни, има струни, и цели числа, както и на плувка. Но цифрите на компютъра, който освобождава. Можете човешкото програмиста не е нужно да го разбера. Така че всичко, което трябва да направите, да декларира променлива е знака за долар, името на вашия променлива, и след това, например, цитат цитата, здравей свят. Ами това е, което един състояние прилича на PHP. Всички разлики? Не. Така се оказва, те са идентични. И вие може да има по малко клонове или повече клонове, но синтактични обрати точно същото. Булеви изрази може да се поръча заедно. Булеви изрази може да бъде anded заедно. Вие все още имате ключове. Дори и да не сте използвали те, те не съществуват в C и те са функционално еквивалент в PHP. И в действителност, в PHP те са малко по-мощен. В C, можете само да сравни някои типове данни като цели числа и символи, докато в PHP всъщност можете да сравнявате пълните отглеждам низове, без да има да се притеснявате за указатели и подобни. Така че тук е за контур. Това е само Псевдокод код, ако щете. Но това е структурно идентичен с C. Ето една линия, докато, Псевдокод therefore-- идентичен с C. Ето една задача, докато loop-- идентични. И така, има вид този модел тук, при който има няколко други синтактична Характеристика ние наистина ще видим. Всъщност, тук е хубаво начин в PHP, при която ако искате да превъртите над масив, и вие не искам да скочи през умствени и синтактични обръчите от които имат инт аз равна на 0, аз по-малко от п, аз плюс plus-- които е просто много досадно синтаксис. Може да се каже малко повече флуидно за всеки номера като брой, където в този случай знак за долар номера, аз съм се предположи, е като номера масив наречен. И тогава аз съм се предположи, номер, единствено число, ще бъде променлива. И какво ще направи PHP за мен, както аз обхождане над тази линия е, на всяка итерация, това ще актуализира променлива номер бъде Ith елемент в цифри, в множествено число. Така че просто се справя с всичко това за мен. Не квадратни скоби, не знака за долар, не точка и запетая. Това е само малко по-просто. Е, ако искате масив, оказва се, вие може да се направи нещо доста подобно на C. Синтаксисът е малко по-различна. Но тук се нарича масив долара, подписано номера. И аз използвам в PHP, квадратна скоби, оказва се. И ние ще видим това отново Все още в JavaScript-- друг език. Аз просто използвайте квадратна скоба нотация да имат разделени със запетая от цели числа, в този случай. Но това ми дава масив. Но още по-мощен в PHP, ние също имаме това, което обикновено са наречено асоциативни масиви. И много езици имат те, както добре. Това, което за C масиви е, че индексите за масив, на нещо, което използвате в квадратни скоби, чрез които възможност за достъп до елементи, трябва да бъде това, което? АУДИТОРИЯ: [недоловим] SPEAKER 1: Те трябва да бъдат числа или числа, по-специално от нула по нагоре. Е, в PHP, и тя се превръща вън, и на други езици, можете да започнете да има индекси, които не са числови. Но те са всъщност думи или фрази, така че вместо опитайте се да си спомните къде нещо е, или съхраняват в променлива I, всъщност можете да използвате една дума и да каже that-- може да се каже и дума по този начин. Така знак за долар цитат е име на променлива тук. Това е малко по-фънки синтаксис това е свързването на стойност два ключа чифта за тази променлива. По-специално, това ми дава масив, който е с дължина 2. Но индексите не са 0 и 1. Индексите са цитат край на цитата символ и цитирам цитата цена. И стойностите на тези показатели, съответно е FB за Facebook и $ 79.53, когато продължи Проверих на цената за това. Какво означава това? Е, това означава, че вместо да пишете код като тази, в която аз да направя нещо като долар sign-- или по-скоро, в C Аз дори няма да има знак за долар. Аз ще направя нещо, като цитати и след това Аз ще направя скоба и да получите най-малко произволно числено индексира стойност. От днес в PHP, ако искам да отида в някои стойност, ние някак имате повече семантична изразителност. Само един луксозен начин на казвайки можем просто се обадете нещата такива, каквито са. И ако искате да получите в нещо, символ, сега можете буквално да направя цитирам цитата символ в квадратни скоби вместо просто число. Така че е хубаво удобство. И това е нещо като това за сега. Има букети от други функции в PHP. И наистина, PHP идва с пословичната кухненската мивка. Десетки, стотици функции идват с PHP-- толкова много повече, отколкото дойде с C. И това не е предназначен за смаже а по-скоро да ви помогне ти осъзнаваш, че ние не вече трябва да напишете кода това е нещо като тук концептуално. Сега ние можем просто да започнете да се възползвате на много по-напреднали функции че езици като PHP имат. Така че ние не трябва да се притеснявате за движи нещата в паметта. Ние не трябва да се притеснявате за изчистване и всичко това по-ниско ниво, мощни детайли, които ще се борят ви с това, ако не се борят с, pset5, но можете да започнете да скоро приемаме за даденост. Всъщност, нека да напише супер проста програма в PHP, както следва. Отивам да отидете главата в CS50 IDE тук, и това, което аз ще направя е създаване на нов файл, че много просто ще се нарича просто 'Здравей' дот PHP. Така че, вместо точка в, това е ще се нарича точка PHP. И тогава в този файл, Мога да започнете да пишете. Но се оказва, че едно нещо, което трябва да знаете PHP е, че всеки файл по принцип, трябва да се започне с някакъв специален синтаксис. Подобна по смисъл с HTML, но отново, PHP е език за програмиране, а не език за маркиране. Така че всеки файл, и това е нещо като на глупави търсите Ще призная. Open скоба, въпросителен знак PHP. И това е само на начин език е да се каже, хей, компютърна тук идва някакъв код написан на език, наречен PHP. И тогава в самия край на файла, правиш вид нещо като обратното. Вие не пиша PHP отново, просто направя въпросителен знак, ъгъл скоба. И тогава всичко ще ви постави вътре на тези две тагове, така да се каже, ще бъде, или трябва да бъде, PHP код. Така че нека да направим нещо супер просто. Отивам да вървим напред и да направя печат дефиниция, здравей свят, наклонена черта п, спаси. И сега в моя бърза, аз отивам да направя, направи hello-- не, аз ще направя, дот наклонена черта здрасти. Не, дот наклонена черта, хм. Така че нещо не е по-различно. И наистина, това е ключова разлика между PHP и езици като C C. е така наречената компилиран език. Какво означаваше за да се компилира C? Какво е влиянието? Да. АУДИТОРИЯ: Пише го в машинен код така че може да се управлява от компютъра. SPEAKER 1: Точно така. Ние трябва първо да го превърне в така наречените машинен код, нули и единици, преди тя действително ще бъде изпълнима и разбира от компютъра. От Intel вътре. Чрез процесора вътре в компютъра. PHP, за разлика от това, е това, което се нарича интерпретиран език, които означава, че вие ​​не го компилирате в нули и единици, машинен код, вас, вместо да го оставите като изходен код. А ти, вместо да го давате като вход към програма, преводач че някой друг е написал преди години, че той разбира, ред по ред, герой за герой. С други думи, хората там са писали програма, която ще изглежда в кода си, ред по ред, и да разбера какво компютърът трябва да се направи, без конвертиране директно нули и единици. Така че, ако го вижда за контур, този така наречен преводач ще бъде като, добре, че трябва направи нещо отново и отново и отново. Какво трябва да направя? Нека погледнем на следващия ред. Нека погледнем на следващия ред. И тя наистина го интерпретира ред по ред. Така че, за да го изпълни, не използвам грим. Не използвам дот наклонена черта в този случай. Аз вместо да направя PHP, което е на името на програма, а.к.а. Преводач, това е предварително инсталиран в CS50 IDE, и сега трябва да премине аргумент на командния ред, която е просто името на файл, който искам да тълкува. Или по-небрежно, че искам да се изпълнява. И ако аз натиснете влиза, там ние я имаме. Здравей Свят. Сега се оказва, че аз употребяван печат деф умишлено да ни се преодолее от C до PHP. Повечето програмисти PHP, както ще видите, дори не се притеснява, използвайки печат деф. Те просто използвайте функция, наречена за печат, които C не са имали. И така, ако аз го изпълнете отново сега, тя всъщност държи функционално еднакви. Не мога да използвам на сто-те и процента I и т.н., но има и други начини в PHP да направим това. Но това е само за се каже, че синтактично, различна от някои странни неща нагоре отгоре, и някои странни герои надолу в долната част, понятията сега на програмиране в този друг език ще бъдат едни и същи. Всъщност, нека да направим още един пример. Така че аз ще отида напред и затворете файла. Позволете ми да се създаде друг, който Ще се обадя на условия 1 точка PHP. Така че не е нула, защото това, което направих Беше ми върна изглеждаше преди няколко седмици, имахме файл, наречен условия 1 точка C. И какво Аз пък бе я превръща в моята главата, и тук на хартия, и скоро на курса уебсайт, ред по ред в PHP. Така че в C версия, ние направихме нещо като низ и стане получите низ. Така че това е малко по-различна да направя, че в PHP. Вместо това, аз съм просто ще да се направи, или по-скоро, аз би направил инт п получава получите INT, в този пример по-рано. Така че, вместо това, аз ще направя п получава прочетете линия, бих искал цяло число, Моля те. Така че това е само моя ред. И така, оказва се, и Аз ще знам само това от които са прочели или видели функцията преди, прочетете линии на функция в PHP приема аргумент, че е бърз за човека и неговата цел в живота е да се прочете ред с текст че той или тя типове в. И тогава тя съхранява, че текст в променлива п. И сега бих могъл да искам да направя нещо както направих аз преди седмици, които по подобен седмица един от класа. Ако п е по-голямо от нула, тогава, аз ще съм да се заемат, че синтаксиса ние просто видях, принт дефиниция, ти взе положително число, наклонена черта п. Иначе, ако п е равно на нула е равен, аз съм Ще вървим напред и да се каже, печат дефиниция, сте избрали нула наклонена черта п. Else, случаят тук следва Разбира се, печат дефиниция, сте избрали отрицателно число. И със сигурност можем да приложат логиката на това нещо в един куп различни начини, но въпросът тук е, че синтактично, едва нищо ново. Това е просто, знака за долар и нова функция и прочетете линия. Но в основата си, какво ново сега е аз съм тълкуването на настоящия. Аз съм го прехвърляха като вход към друга програма. Така че, ако искам да изпълня този, ако Аз не прави никакви грешки, Отивам да стартирате PHP, на условия 1 точка PHP, Влез, Отивам да изпишете номера 50, и нека приемем за момента тя работи. Тъй като логиката е същата неща като една седмица. Добре, така че това е доста underwhelming, нали? Бихме могли да направим това по никакъв брой езици. Нека да направим нещо много по-мощен. Нека ударът проблем зададете пет. Така че аз ще отида напред и да направим това. Отивам да създадете файл наречено речника дот PHP, и наклонена като може да сте да катеря надолу много бележки, бележките ще помогнат само вас, ако ти е позволено да приложат проблеми, установени пет в PHP. Но ще видим колко бързо сега може да приложи същия този проблем набор. Така че в речника дот PHP, аз отивам да се предположи, че вече е файл в света, наречен правопис. И наистина, аз направих това предварително, и ние няма да минеш през тази линия по ред, но ако сте Любопитен късно и наистина искам да приключи ума си около разлики между С и PHP, буквално сравни този файл, правопис, от днешна изходния код че ние ще публикуваме по-късно Днес, срещу р набор пет правопис точка в която ние ви даваме, и това е почти една и съща линия по ред. Има още няколко доларови знаци. Няколко функции са малко по-различна. Но това е добър начин на нещо като виждам как ви преведе един език на друг. И това е почти идентична линия за линия. Но аз отивам да се предположи, че това съществува, и това, което аз ще направя тук е се опитват да взривят си интересуваме от reimplementing целостта на проблема определя петте начин бързо, отколкото сте правили до този момент. Така например, аз отивам да се първото Декларирам глобална променлива, наречена размер, и да го настроите да е равна на нула. Сега това не е много спестявания. Коефициентите са приложени размер на почти същото, или намек намек, воля довечера или утре, само с помощта на глобална променлива, наречена размер, и определя равен на нула. Това не е особено Изумителен спойлер. Така че това, което са структури на вашите данни избор, тези от вас, които са се хвърли в и четат спец, структури от данни какво са повечето от вас са използвали? A хеш таблица или да опитате, може би някои от тях варианти. Така че прилагането на хеш таблица най-малко, е вид много реда код, нали? И не всички от тях може да бъде функционално в този момент в седмицата, но това е добре. Защото в PHP, ако аз Искам хеш таблица, направено. Нали така? Така че тази променлива, че съм Просто обявена е очевидно наречен знак за долар на маса, на въвеждане преди. Но аз наистина просто искам, най- В края на деня, масив. Но не числено индексира масив, защото това е като две седмица неща, когато говорихме за масиви. Искам хеш таблица. Но хеш таблица е наистина само на бетон начин да се каже, искате асоциативен масив. Вие искате да бъдете в състояние да асоциирани ключове със стойности. Ключове с ценности. Какво е речник, наистина? Ами това е цял куп ключове. Думи като ябълки, круши и банани, и всички тези думи на английски език че да ви предаде. И стойностите, които сте ефективно поставите в речника са или истина, или отсъствие, невярна. С други думи поставяте цял куп ключови двойки стойности, ябълка, вярно, круша, вярно, банан, вярно. Така, че когато изтегляте или да потърсите нагоре, че данните във вашия хеш таблица с чека си функция, вие сте или да се върна отговор, да, аз го намерих в моя комплекс хеш таблица, или не, това не е налице, така че можете върне фалшиви. Така че, за да направите това, всичко, което трябва, е на данните структура като аз предложих преди. Просто трябва да бъде в състояние да се сдружават думи като, цитирам цитата, символ, със стойност харесват, вярно. Така че там е моят хеш-таблица. Нека реално да я използва. Така че има няколко функции Аз трябва да се прилагат. Отивам да вървим напред и да хапят изключване функция, наречена размер. Това отнема без аргументи. Не е нужно да се занимавам с думата, нищожен, в PHP. Аз съм просто ще се върне размер. И като настрана, PHP има това minorly досадни подробности, където, ако нещо не е глобален, трябва да имате кажете на функцията, в която вие използвате го, хей, това е глобална променлива. Така че, малка глупост, но вие трябва да го направим пак. Така че какво да кажем за товар? Отивам да се приложат функция, наречена натоварване който взема в името на речник, точно като в проблем зададете пет. И преди да се пристъпи, забележите, че не съм били пишете доста едни и същи неща. Какво е очевидно различно в PHP за как се декларира функция спрямо C? Да. АУДИТОРИЯ: [недоловим] SPEAKER 1: Не Тип възвръщаемост. И наистина, това е случай, PHP доколкото това е хлабаво написали, Също така е малко помия в този смисъл. Вие не посочите като програмист това, което се връща тази функция. Може би трябва да погледнем реално в кода, за да разбера, че. Или прочетете коментарите или документацията. Така че плюсове и минуси на тези видове решения. Но аз трябва да кажа, Ключовата дума, функция. И когато ние се учим JavaScript в няколко седмици ние ще видим едно и също нещо отново, но това е една и съща идея. Името на функцията, тезата му или аргументи или липсата на такива, а сега тук е изпълнението. Така че аз отивам да се намалят някои ъгли просто да бъде драматична само за миг. Но аз ще отида напред и да кажа това. Ето как може да се зареди файл в масив. Има една функция в PHP, наречен файл. Можете да го името на файла ръчно. Тя ви подава обратно масив, вътре от които е всеки ред от файла. От нула, едно, нагоре за N минус 1 линии. Това е всичко, нали? Няма по е прочетено. Няма по GET е лидер. Няма по процента ите. Няма по главоболие. Няма по feof. Всички тези неща, с които сте били бореше може би, с р зададете четири и пет, си отива. Така че аз просто прочетете тези редове в файла, и след това знаете ли какво? Ако искам да обхождане тези думи, Което мога да направя, за всеки линии като линия. Не забравяйте, че това е вид хитра начин на итерации над масив, индекс с индекс, и на всяка итерация призвание текущия ред, знак за долар линия. И точно тук, аз ще отида и казват маса, скоби линия, получава истина. С други думи, това е начинът, I вмъкнете в моя хеш таблица в PHP. Казвам знак за долар маса, която е моя асоциативен масив, който е празна на реда с код до горе. Тогава аз индекс в него не, като се използват редица, а буквално с помощта на ключова дума, която ме интересува. Може би това е ябълка или круша или банан или каквото и да, но специално аз съм индексиране в Харесва ми, предложен по-рано. Взимам името на моя асоциативен масив, и тогава аз използвате цитат цитата в квадратни скоби с низ, вместо действително номер. И така, това е всичко. Функцията за натоварване е направено. След като това контур итерации, Вложил съм всичко в хеш таблица. Сега малка забележка, има няколко неща, които е необходимо да се определи. И версията Аз ще пост онлайн ще има всички нюанси, но това е най-вече просто ще бъде известна проверка за грешки и някои малки ощипвам. Но това е наистина същността на това. Ако аз сега искат да приложат функцията наречен проверите, което очаква Думата като доводът му, как бих могъл да го направим това? Е, аз просто ще кажа, ако вътрешността на моята маса, при местоположението на думата, ако е зададен. Така че, ако има is-- Всъщност, знаеш ли какво? Отивам да го направя в малко Псевдокод. Но идеята е същата. Ако това се равнява вярно, върнете вярно. Всичко е наред. Else-- можете да видите къде вид това е going-- да се върне фалшиви. Готово. Проверка се прави. Доста приятно, нали? И така, какво е това наистина се бе? И това също, аз нарязани някои ъгли. Виж версията онлайн за всички леки нюанси. Но това е същността на това. Index във вашия асоциативен масив, а.к.а. Hash маса, да видим дали има стойност там, ако е настроен да е вярно, и ако е така, върнете вярно. Така че ние сме сведено Всички сложността. Така вид против разпенващ, нали? Аз няма да се притеснява да го завърши с разтоварване, защото в fact-- О, знаеш ли какво? Да, нека да го завърши с разтоварване. Оставете в хеш таблица може да изглежда като функция разтоварване, върнете. ОК, така че това е разтоварване. Защото няма нищо да се разтоварят, нали? Няма по изчистване. Не съм изрично да поиска от операционна система за нищо. Току-що започна да използва променливи. И така, това също е проява на характеристики на по-високи езици ниво. Така отново, повечето от този термин ние сме били, занимаващи се тук с C. Super ниско ниво. Можете да видите паметта на компютъра. Можете да докоснете всичко, което Искам в RAM на компютъра, за добро или за лошо. До тук, отиваме да се откажат от тази власт. Но, Боже мой, виж как много по-малко код съм написал. В действителност, ако не говорехме и говорим за моето писане, щяхме да сме били прави с този пример преди пет минути. Така че това, което е цената се плаща? Ами нека да разгледаме. Нека да разгледаме. Отивам да вървим напред и да тичам CS50. Позволете ми първо да отида в днешните примери, в които Имам директорията на текстове, както и преди. Отивам да тичам разтвора, че той идва с проблем зададете пет нарича правопис, който е в профила му CS50. И аз отивам да я изпълните на нещо голяма като Библията на крал Джеймз, Просто, за да можем наистина да тури решения на персонала на изпитание. Сега понякога интернет е малко по-бавно, малко по-бързо, може да отнеме известно време, за да преминете. Но тя взе общо .56 секунди да проверите правописа на крал Джеймс Библията използва разтворът на персонала. Така че доста добре. Yours може да бъде много по-бавно, и това е напълно наред. Но тя е правилна тук. Така че това е решение на персонала. Ако отида в и почистване на PHP версия. И аз ще направя малко като печене шоу нещо. Отиваме да вземе кода написах по-рано, така че е съвсем верен. Тъй като кодът написах не върви коректна точно сега. Но ако аз тичам на PHP версия, какво трябва да се откаже от днес? Отне ми пет минути, за да приложат р зададете пет, аз твърдя. На каква цена са ми се плаща? Да. АУДИТОРИЯ: Speed. SPEAKER 1: Speed. Какво имаш предвид? АУДИТОРИЯ: Това ще отнеме повече време. SPEAKER 1: Добре. Да видим. Това ще отнеме повече време, да не пиша, но за да го стартирате. Да. Така че нека да опитаме това. Така че тук аз ще отида напред и да направим PHP на правопис, а защото на файла наречено правопис. Така че аз не бягам от речника, изземване, Бягам програмата, наречена правопис. Отивам да премине в същото файл, King James петата. Той лети с. Това би могло да бъде само скорост на интернет, така че не се чете прекалено много в това. Но тя се чувства по-дълго със сигурност. 1,26 секунди. Сега това е все още доста адски бързо, нали? И единствената причина, че се чувствах като по-скоро три, или четири, или пет секунди, това е само защото Интернет беше бавен. Времето на компютъра, прекарано беше 1.26 секунди, спрямо мисля 0.56. Така че повече от два пъти по-бавно. Сега, че все още е доста проклинам бързо, но това е проява на, наистина, че точна цена. Тъй като ние сме за устен в кода ред по ред, и че програмата PHP е четене ми Код горе до долу, от ляво на дясно, тя трябва да направи повече мислене. Тя трябва да конвертирате вид то вътре в себе си към съответната машина код в движение, така да се каже, въпреки че механиката са малко по-различно. Вместо просто хранене на Intel CPU суровите единиците и нулите че той разбира, роден. Така че абсолютно, ръцете надолу, сме платили цена. И код, написан на език като PHP е по-бавна. Но, Боже мой. Така че сега, когато съм проверка на правописа ми файл, аз прекарвам допълнително 0.7 или така секунди срещу 20 часа за изпълнение по-бърза проверка на правописа, нали? Това е вид компромис. И ако сте само началото стр определя пет, може да не е 20 часа. Може да бъде много по-малко от това. Но това е компромис, за истински. И ако сте с код за наистина голям набори от данни, или на още по-стар хардуер, тези видове разлики Със сигурност може да се добави. Всякакви въпроси до този момент? Да. АУДИТОРИЯ: [недоловим] SPEAKER 1: Съжаляваме, може да ти го кажа още веднъж? АУДИТОРИЯ: [недоловим] SPEAKER 1: Вие сте се отказват от време. Е, така да. Вие сте спестяване на време чрез не се налага да го компилирате, ако това е това, което иска. И наистина, в CS50, голямата част от програмите, въпреки че може да отнеме известно време да пиша, те са сравнително кратък. Няколко десетки, няколко стотин реда код, и така те съставят доста бързо. Но когато започнете написването големи програми, като, ако сте Microsoft или сте Google и писане наистина големи програми в С или C ++, или по подобен начин, съставен езици, може да отнеме много секунди, или дори минути или повече за съберат милиони реда код. И там също, че Разликата ще се добави. И в действителност, след като ние преход днес, същия ден днес, за да уеб програмиране използвайки PHP, вие сте Ще го намерите толкова много по-приятно да се напише код когато не е нужно да правите тези глупави стъпки, като промяна на вашия терминал прозорец, тип грим здравей, повторното го стартирате, презаредите прозореца. Просто толкова много глупави механични стъпки, които Просто получите в начина на правене интересното, най-забавната работа. И наистина ние изхвърляме, че далеч с PHP. И ние можем да си взаимодействат с по-бързо. Да. АУДИТОРИЯ: [недоловим] SPEAKER 1: Разбира се. Мога ли да се изясни какво е означава да се тълкува? Когато компилирате език като C, тя върви надолу както казахме да машина код, нули и единици. И Intel реши преди години, че някои модели на нули и единици представляват допълнение, или изваждане, или печат, или други основни операции. В света на интерпретиран език като PHP или JavaScript, или Python, или Ruby или чепки други, вместо някой е написал interpreter-- в този случай, тя също е наречена PHP, идентичен с име на language--, че по същество има голям цикъл в него, че итерации над всички линии от кода че аз я храня като вход, като здравей дот PHP, или речника дот PHP. И тогава може да се мисли за тяхната голяма контур, както с много условия. И тези условия казват, ако човешко е написал на ключовата дума за, започнете да правите си код отново и отново. Или ако човекът има писмено линията на код, ако само изпълни своята Следващата линия условно. Така че това е наистина като за устен то в човешкия смисъл линия по ред, и че просто отнема време. Това отнема режийни. И така, това е price-- добра question-- плащаме. Така че нека да направим още една демо че е малко по-драматично. Налице е, бих казал, на стадион това при 90% вероятност за липса ужасно, но вие ще бъдете изумени с 10% вероятност. Така че всяка година ние се опитваме за да направите това, с което ние опитайте се да се напише програма, която минава през проблем зададете нула, за които сте подадени вашите телефонни номера и един много друга демографска информация, и ние програмно можете да изпратите текстово съобщение. И тогава телефона на всички започва да издава звукови сигнали или вибриращи, и това е просто невероятно, защото добре, погледнете какво компютри могат да направят. Това рядко се работи правилно Изглежда, в голямата си част защото аз обикновено се в черния списък от Gmail или друга услуга за всъщност се опитва да направи това по десетобалната система. Но смешно нещо е прекалено, тъй като ние не разполагат с всички тук днес, забавно Всъщност последният път, когато Опитах това преди две години, Мисля, че съм написал програма които седяха в една линия итерации над всички ученици в класа, и всеки от тях текстово съобщение, и тя каза нещо подобно, Защо не си в лекция? Любов, CS50 бот. Нямаш представа колко извинителен и сортиране на болезнени имейли Получавал съм в отговор от страна на п минус 100 души, които не са били тук онзи ден. И дори по-смешно, по-срамно story-- Знаете ли, че, нека да го сложи там. Това е вече на видео за няколко години назад. Така че скоро ще ме видите напиши за цикъл, при който това е много лесно да се напише, че бъг в за линия, така че за първи път през примката, вие изпрати на едно текстово съобщение. За втори път през контур I е трябвало да изпрати още едно текстово съобщение, и след това един по-дълъг текст съобщение, и още един. Но се оказва, ако направите правописна грешка при програмирането, понякога могат да пишат програми, които изпращат една текстово съобщение, след две текстови съобщения, след това три текстови съобщения до всички, който вече е получил текстово съобщение. И както знаете, прави нещо, плюс нещо, плюс нещо, плюс нещо, е голям O на много на текстови съобщения, или п квадрат, или по 0.10 $ на текстово съобщение, $ 20,000. За щастие аз удари Control-C преди това е случило, но аз го дължа най-малко един от вашите предшественици $ 20 за 200 някои странни текстови съобщения, които, не само отиде до телефона си, но също беше като по-стар флип телефон така ми харесва избута си памет всяка друга лична текст съобщение, че е намерила в действителност. Така че ние имаме една цел днес, за да не го направя. Може би включите режим самолет. Всичко е наред. Така че нека да отидат в един програма тук callled-- че аз ще се обадя на текст дот PHP. И по-рано, аз имам два файла тук. Направих файл само за персонала, който има всички от информация на персонала, всички имена от сайта на курса. И тогава, за сега аз съм сложил някои фалшиви номера 555-1212. Така че това не би действително отиде навсякъде. Но забележете вътрешността на този файл CSV, които ние говорихме за кратко, преди да в контекста на файл IO. Какво е файл CSV? Разделени със запетаи променливи. И това е нещо като много лека база данни, ако щете. Има вид на нещо като четири колони в този файл, а има назъбени, но запетаите същество представляват колони във файла. В първата колона е TF или името на CA. Втората колона е фамилното име на автора. Трета колона е телефонния си номер. И четвърто колона очевидно is-- Четвъртият колона е очевидно какво? ОК, така че това е техния носител. Така че Verizon, Sprint или, или какво не. И ако аз misspoke рано, CSV. Разделени със запетая стойности е CSV тук. И така, какво мога да направя с това? Ами това е просто един голям текстов файл, и това е вид дълго, нали? Подобно на това ще да бъде вид досадно. И се оказва, обаче, че ако аз искате да изпратите текстово съобщение до, нека Alex кажа тук. Позволете ми да отида в моя браузър и да излезете от режим на цял екран само за да мога да превключвате назад и напред. Оказва се, нека да видим, ако отида в Оттук и влезете в Gmail, всичко е наред. Не гледайте към тази част. Само мога да видя. разбира се на живо може да още виждате какво правя. Всичко е наред. Така че тук е само с Gmail Предвид Джон Харвард. Така че, ако искате да изпратите текстово съобщение до Alex, Мога да разбира съставите съобщение. И се оказва, и аз съм го тествали с Алекс преди тук, така че можете да добавите определен домейн Име на телефонни номера на хората, защото съществува в света неща, наречени SMS на приятел шлюзове. Което е луксозен начин на казвайки всички от нас, които имат мобилни телефони, които има телефонни номера, разбира се, там вероятно е за вашата носител, определен суфикс като най- Vtext.com за Verizon текстово съобщение дот ком, които можете да добавите към вашия личен телефонен номер, и след това Вие или приятели, или родителите ти да вие текст в този конкретен адрес. И Verizon има сървър, имейл сървър, че при получаване на този имейл, поглежда към цифровата част и след това използва каквото и специална промишленост магия те трябва да всъщност го изпрати над ефира на вашата конкретна клетка телефон. Сега това е хубаво, защото аз не правя наистина знаят как да изпратите текстово съобщение или да пишат код, все още за мобилния си телефон, и може да се направи точно това за окончателен проект, но за сега всичко Имам е моя лаптоп тук. Затова искам да обхождане, че CSV файл, ред, по ред, по ред, по ред, вземете всеки от телефонни номера на персонала, и техния носител и programatically, свързвам, че е, свържете телефона номер с подходящо име на домейн и след това да изпрати съобщение. Така че това е много стъпки. И късмет правиш, че в C. Това е кошмар на ситуация, да отворите файл, за да го прочетете линия, по ред, по ред, колкото виждаме, или може скоро да видим с проблем зададете пет, ако не и проблем зададете четири, а след това динамично да свързвам две струни заедно, защото в C, да вземе две струни и да ги комбинира, това, което правиш минимално трябва да направите най-вероятно? Вие трябва да декларират повече памет, нали? И питам, изчистване, може ли да имам повече памет? Така че мога да сложа половината от тази тук, половината от тази тук. Това е просто толкова много стъпки. И от този момент сте загубили интерес към глупаво малко демо , където можете да направите телефона звуков сигнал на всеки. Нека да направим този вид на PHP стил, с което ние просто започнете да използвате повече от това кухненска мивка. И идеите са фундаментално еднакви, но ние не трябва да се притеснявате твърде много за които по-ниско ниво. Така че нека да видим как бих могъл го направим. И точно, така че аз не правя повтаря грешките от миналото, Аз съм писал някои бележки за себе си тук. И нека да видим дали мога да ходим през някои от основните стъпки, и след това заради времето, ние ще може би нарязани някои ъгли в края. Отивам да вървим напред и да направим отворена скоба PHP за да започне този файл. И аз ще отида напред и да направим това. Дръжка на файла, тъй като ще Веднага виждате, всъщност призовава функция, наречена е отворена. И не забравяйте, това отваря файл. И цитатът, край на цитата, R означава това, което, отново? Просто го отвори за четене. Сега в р комплект за, си направил това. И се справят може да бъде всичко, Фу, бар, БАН, всяко име на променлива. Но като цяло компютър учен би нарекъл отворен файл, като ви файлов манипулатор, нещо, за да се задържи така да се каже. Аз съм просто ще направя някои проверка за грешки. Така че, ако дръжката е невярна, също като в C, аз отивам да правя нещо подобно, не може да отвори файла, наклонена черта п. И тогава аз съм просто ще да вървим напред и да излезете. И се оказва, в PHP, Аз не съм в тялото на функцията. Няма по-основна функция тук. Така че аз не се върне, само по себе си. I излезете. Кое е по същество едно и също нещо. И аз да излизате с едно у-вероятно. Едно просто означава грешка от някакъв вид. Това е различна от нула, така че това е грешка. Добре, така че ако аз съм тук сега в моята програма съм отвори файла. Отивам да вървим напред и да декларират масив наречен адреси, и в C аз ще трябва да се знае размер на масива предварително, нали? Или ще трябва да декларира това е указател, а след това използвайте изчистване. И тогава всеки път, когато чета през друг ред във файла, Отивам да се наложи да изчистване повече памет, изчистване повече памет. Това е болка в областта на шията. И слава Богу, PHP и Ruby, и Python, и JavaScript, те ще растат вашите редици за вас автоматично. Няма повече изчистване. Няма повече управление на паметта. Компютърът ще се погрижи за това. Но цената, която плащате. Това е малко по-бавно. И за програма като тази ние няма да забележи. Отиваме да изпрати 100 текстови съобщения. Например няма да го почувствам. IT наистина започва само да значение на езика по избор когато вашите данни или вашите програми получите наистина, наистина доста голям, както е случаят, още повече, че Нашият уеб базиран неща. Но за сега нека да продължим напред. Докато се оказва, че има функция в C е наречена получите CSV. File получите CSV, че отнема подаде дръжка за аргумент, и тя ще действа тогава, ред, чрез ред, по ред, да се чете в един ред. Така че той просто чете линия на текст от файл. Но това, което е хубаво за тази функция, тя не просто ме предаде ред от текста. Тя изглежда за тези запетаи, и прави разбор на линията. И да прави разбор на линията означава да се раздели Агенцията по определени стойности в този контекст. С други думи, знака за долар ред е променлива, която е ще ми даде един куп индекси. Това ще бъде най- първата колона в моя CSV. Това ще бъде вторият колона, това ще бъде трети, и това ще бъде четвъртият. Защото изземване, и Excel не сътрудничат за последен път сме направили това, но ако изтегля персонала са разпръснати CSV. Опа, не, преименувате. Ако изтеглите дот персонала CSV, и се опитайте да го отворите, Вече съм registered-- о I не сте обновили Excel, тъй като миналия път. Ще видите, че в точка персонала CSV, имам четири колони. Така че, когато прочетох в първи ред за Аби тук, знак за долар поредна 0 е Аби, знак за долар ред един е Lyons, знак за долар поредни две е номера й, и след това носител на телефона си. Така че това е всичко. И това е хубаво, защото аз не е нужно да разбера сега където всички тези запетаи в действителност. Така че аз ще отида напред и направите това, предвид факта, че определението, Отивам да се каже, че името й е в ред скоба нула, както беше обещано. И аз отивам да grab-- и Всъщност, знаеш ли какво? Аз няма да се притеснявате за името й, в този случай. Отивам да се запази по-лесно. Отивам да правя номера й е в ред скоба две, мисля. И носител й беше в къде? Row три, една над. Така че нищо ново там. Това е просто нула индексиране в масив. И сега, аз отивам да направите следното. Ако превозвачът равнява равнява AT & T-- Аз съм просто ще имате loop-- Искам да създам имейл адрес, който изглежда така. Това ще бъде 617-555-1212 най-, какво е това, text.ATT.net, е това, което искам да направя. И така, как мога да направя това? Отивам да направите следното. Нейният адрес ще бъде номера й, и сега, нека да вървим напред и да направим това. Това е някаква фънки синтаксис. Можех да направя трик на сто ите, но аз всъщност може просто да направите това. Така че това е нещо, с PHP, но нека да разгледаме това, което правя. Dollars подписват адрес на ляво, просто променлива. Дай ми една променлива. Не е нужно да се уточни вида. PHP ще го разбера. От дясната страна, какъв е типът на данните на тази цялата работа по отдясно? Прилича на низ, защото има двойна цитира в левия и десния край. Сега има някои фънки нов синтаксис тук. Има фигурните скоби, и номера на знака за долар. Но вземе познайте какво е това синтаксис Вероятно казва PHP да направиш за мен? Да. Само поставете стойност там. Така че без процента ите. Можем да използваме печат е, или е печат е или нещо подобно, но PHP и много високи езици ниво, започваш да се види, че сте могли направи същото нещо функционално, може би шест различни начини. И така, тя започва да се превърне въпрос на дизайн или стил. Така че това е само една загадъчна търсят начин да се каже, дайте ми един имейл адрес, но плъг-ин броя в между тези фигурни скоби. И фигурните скоби не ще окажете в крайния адрес. Сега можем да прескочим някои от тези редове заради времето си. Така че, ако превозвачът е равен равнява verHorizon-- Опа, Verizon-- Искам да направя нещо много сходни, когато адресът получава, цитирам, край на цитата, номер на text.ATT.net. И тогава аз мога да направя същото по вид нещо за останалата част от превозвачите. Но аз просто ще направя точка, точка, точка за сега. А сега нека да предположим, че Искам да добавя масив, бутнете. Искам да добавя към масив, наречен адреси. Този адрес, това е начина, по който добави нещо към масив в PHP. Не е нужно да се направи изчистване. Вие не трябва да промените размера на масива. Можете само да кажа, масив, да бута. Какво искаш да push-- какво масив искаш да прокара нещо върху? Адреси. Какво искате да бутнете върху адреси? Адрес. И всъщност, ако Наистина искам да бъда умен, някои синтактична захар за това, така да се каже, което просто означава, как може да направите това в на по-хубава начин, би било да се направи това. Това също води до нарастващо на адреси масив по размер един, и след това допълнително плясване имейл адрес в нея. Да. АУДИТОРИЯ: [недоловим] SPEAKER 1: A правописна грешка относно останало if-- о, носител. Това е добре. Той също така няма да се хареса моя отказ да приложат част от тази програма по-късно. Но ви благодаря за вниманието. Още един бъг. Благодаря. Искаме това да бъде Vtext.com. Да. Всичко е наред. Така че откъде идва тази ни остави? Ние съм писал код, за да отворите файла. Ние имаме една линия, за да превъртите над редовете във файла. Имаме код, който добавя към моя масив, един по един, правилно форматиран имейл адрес. Така че всичко, което наистина остава, е да изпратите имейл до всеки един от тези хора. Така че аз съм отишъл напред и себе си приготви по следния начин. Това, което аз ще направя тук is-- и нека отидете напред и да прескочите до известна действителната код, която изглежда така. Така че тук е предварително изпечен версия писах по-рано. И забележи завърших прилагане на Sprint. Завърших прилагане T-Mobile. Завърших прилагане Virgin Mobile. И аз ще се извиня предварително. Има няколко превозвачи, които някои ученици в класа имат че аз не си направи труда да изброява в състояние, ако тук. Така че не всички текстове ще изгаснат. Но нека да видим какво друго трябва да направя. I затворете файла, просто като в р зададете четири. И това е нов синтаксис. И ние ще видим малко по- малко на това с течение на времето, особено с р определя седем и осем. Но това е синтаксис за създаване специален вид структура. Оказва се, че има библиотека, която идва с PHP, наречена PHP писмото. Неговата цел в живота е да програмно изпращат имейли. Това е код, някой друг е написал, че прави по-лесно за нас да изпращате имейли, така че ние не трябва да се запази връщане назад и напред, за да Gmail, и поставите в имейл адресите на хората. Има цял куп линии тук че честно казано, аз просто вид копира и поставили в документацията. И в действителност, ако сте любопитно, оставих всичко на URL адресите на документацията в кодекса, че ние ще публикуваме по-късно. И забележи, че сред нещата, които правя е, че казвам това библиотека, използвате сървъра на Gmail, нали? SMTP говорихме накратко за когато сме са в Йейл в това да бъдеш просто мейл протокол за трансфер. Това е протоколът, който сървърите, използвани за изпращане на електронна поща, и that's-- Gmail има един от тези. A порт, това е номера на порта TCP. Това е добре, ако не сте виждали преди 587. Просто знам, че от документацията. Ето потребителското си име. Отивам да използвате CF50 бота. И в един момент, аз съм просто ще напишете в действителната парола на бота. И тогава тук, забележете, това, което остава. Задам от адрес да бъде най-бот CS50.net. Мисля, че няма да съжалявате, изпращане на текстово съобщение до 800 души, които казва, липсваш, любов CS50 бот, може би за тези, които не може да го направи днес. И тогава, в съответствие 76, какво да правя? Този вид изглежда като C. Така че аз за е равна на 0, п equals-- сега брои е нова. Оказва се, че ако искате да получите броя на нещата, в масив, не е нужно да го помня вече. Можете просто да зададете функция, наречена брой, и тя ще ви каже колко адресите са в този масив. И тогава аз отивам да добавите адреса на имейла. И знам, че това, от използване на документацията. Има добавка адрес функция. И сега забележи там е една част от синтаксиса. Виждали сме това и преди в C. Подобно в същия дух. Можете да мислите за знака за долар поща като променлива, която е то. Но това е структура на вътрешната страна на които са не само свойства, променливи, ако щете. Но се оказва, че в PHP, които е обектно-ориентирано програмиране език, като Java, ако сте приели АРС. Dollar знак поща, ако искате to-- той също има функции вътре в него, или методи. Така че това е да се каже, че специален PHP Мейлър библиотека, ако аз имам една променлива от него, ако искам да се обадя функция, която идва с тази библиотека, за днешните цели, Просто знам, вие използвате наколонените стрелка. Няма по точкова нотация. Това е просто стрелката. Но това не е указател. Това е просто назаем от синтаксиса на C. Така наричаме добавите адрес вътре в предмет или променлива тази библиотека. Всичко е наред. Това е магическо линия. Ето как аз изпрати съобщение. Това е еквивалентът на отваряне Gmail, тя пише навън и удари изпратите. Но това ще вместо да изпрати приятел на този адрес, с този орган, от CS50 бота. И сега ключова линия. Тази линия е отсъствал по подобен 2011 когато аз мисля, че последното се опита това. Тази линия има, разбира се, изчиства адресите. Така логично, ако аз не изчисти адрес след всяка итерация, първият приятел или текстово съобщение, отива на Алис, Второто отива Алис и Боб, третият отива на Алис и Боб и Чарли, оттук и много скъпа грешка Направих тази година. Така че нека да видим. Има ли някакви въпроси преди да Ви изпратим всички текстово съобщение с 10 процента вероятност? Някакви въпроси? Всичко е наред. Нека да ме пусне в тук и промяна паролата на това, което би трябвало да работи, най-вероятно ще се черна от Gmail. Така че те не всички могат да отидат посочени, тъй като те вероятно не ни харесва изпращане на 800 имейли в цикъл за всички наведнъж. Тъй като това не е особено човешкото поведение. О, аз отивам да се промени нещо друго. Up на върха, аз отивам да sent-- промените файла на учениците са разпръснати CSV. И аз няма да се отвори това, но това е идентична CSV файл с не 100 служители, но 800 студенти, просто Харвард, Йейл, защото има вдлъбнатина октомври тази седмица. И изглежда, че такива неща идиот да се направи в текст всички от тях, защо те не са в клас на почивка. Това е добре. Само на студенти от Харвард Днес във вътрешността на този файл. А сега нека се върнем да ми терминален прозорец. Аз съм един вид нервен. OK, така че сега аз отивам да отидат в указател и PHP текст дот PHP. Какво ще кажете за един смел доброволец? Така че аз не искам това за мен. OK, хайде нагоре. Как се казваш? МАЯ: Maya. SPEAKER 1: Maya. Хайде нагоре, Мая. Всичко е наред. Да видим дали това работи. Сложих моя собствен имейл адрес в file-- моя собствен телефонен номер във файла, така че да се надяваме, че ще се получи един, както добре. Приятно ми е. МАЯ: По същия начин. SPEAKER 1: Така че всичко, което трябва да направите, е натиснете влиза да изпрати 800 текстови съобщения, ако аз не се притеснявам. Ница. Може да отнеме известно време, статистически, докато стигнем до имейл address-- текстово съобщение, че е в стаята точно сега. Нека да се бавим и да видим. АУДИТОРИЯ: [свирки] SPEAKER 1: О, да. АУДИТОРИЯ: О, нещо, за което. SPEAKER 1: За примки are-- това Не е бавен, защото на PHP. Това е бавен, тъй като Gmail е с нас, а не дроселиране отдаване под наем да ни изпратите повече от като един имейл на секунда. Всичко? Това е трудно нещо за мен да тестват най- дома само с мен и ми един телефон, така че. Е, че се надяваме от бота? Да? Не? Кажи да. Не? Това е от един приятел? Неудобни. ДОБРЕ. Сигурен, че това е работа все пак. Ъъъ. Те black-- О, чакай малко. О, знаеш ли какво? Един момент моля. Само Мая и I-- Mia, нали? МАЯ: Maya. SPEAKER 1: Мая, ще знам какво съм направил грешно тук. О, чакай малко. Мисля, че току-що изпрати 100 текстови съобщения до 555-1212. В готовност. Аз не може да спечели всяка година. ДОБРЕ. Мая? Fix, че в пост-продукция. По дяволите! Вследствие на адрес. OK, стои. Извинете. Това е болезнено всяка година. OK, в един момент. Това е добре. Аз вместо да смяташ да правиш това. Print адрес. OK, стои. Печат на адреси, скоба аз. Да, това ми харесва. Dollar sign-- OK Аз ще обясня какво съм прави в един миг, след като съм стартирате тази. Всяка година. OK, започваме. Имам just-- и аз не искам да покаже телефонен номер на всеки, но Мая може да потвърди с кимване на главата, че тя вижда всеки е телефонен номер в класа че аз отивам да копирате в една програма, наречена Gmail. И ако в Gmail, какво искаме да кажем? Липсваш ми. Love-- това не е от мен. Аз дори не са хит още изпратите. Така че нека да вървим напред и да направим това, ако мога да я увеличите инча ДОБРЕ. Така че аз съм с помощта на програма, наречена Gmail сега. Ако Мая, която искате да щракнете върху бутона Send, ние ще се симулира това, което, че Код трябвало да направи. Всичко? [BEEPS] АУДИТОРИЯ: Да. SPEAKER 1: Да? Спасението? АУДИТОРИЯ: Да. SPEAKER 1: Miss вас. И аз отивам да изпрати останалите. Изпратих половината, защото аз не мисля, Gmail ще позволи на тези, проверете. Така че просто не забравяйте, днес е денят че сте научили, че мога да използвам Gmail. Това беше ужасяващо. Голяма ръкопляскания да Maya. Благодаря. Добре, така че. какво [BEEPS] Имаме няколко звукови сигнала, нали? Всичко е наред. Сега аз отивам да получите 700 наистина нещастни имейли назад от съученици. Така че най-малко ще видим ако това е струвало. И така, какво се обърка? Ще разбера какво се е случило грешна след факта, но просто погледнете колко е лесно това е да се направи това в PHP. И така, какво всъщност можем да направим сега, че ние имаме това изразителност на PHP. Това was-- това беше ужасно. Всичко е наред. Така че това е това, което е трябвало да излезе. Това ме тества тази сутрин на моя телефон, действителната снимка на моя телефон. Но сега нека разгледаме защо ние всъщност въвеждане всички тези неща на първо място. Така че целта не е да се пиша тези програми, които са написани в командния ред, нали? Така че аз написах една проста Здравейте програма, аз написах малко по програма, която прави условни, и се използва линия за четене и така нататък. И на теория, аз просто написах програма, която изпрати 800 текстови съобщения, или да се даде 800. И тази програма беше всичко Все още тече в командния ред. И това, разбира се, не в интернет, нали? Целта сега е да започнете да използвате това, което аз твърдя, е по-лесен за използване език, смея по- мощен език от гледна точка от функциите, които дойде с него, за да започне пишете код, който генерира уеб страници. Така че за последен път и миналата седмица, ние говорихме за HTTP и HTML. И това, което е хубаво за HTML е, че това е просто чист текст. И със сигурност е текст нещо, което можете, отпечатате, като буквално се обадите на печат е функция, или функцията за печат. И наистина, това е, което е PHP Сега ще ни позволи да направим. Така сред примерите, има в днешния изходния код, в допълнение към някои от кода че сложих там преди малко, имаме програми като тази например. Froshims или Първокурсник Интрамуралния Sports, е всъщност една от първите extracurriculars Аз се включиха с преди години. И съквартиранта ми и аз, с някои други деца на територията на колежа, използва, за да стартирате програмата за froshims. Аз съм се моите текстови съобщения сега. Сега, за да сме, през деня, така че това Беше 1996 г., или така, нямаше интернет, но не е имало process-- там е имало сайт за froshims. И така, ако искате да се запишете за футбол или волейбол, или каквото и да, бихте попълните това нещо нарича лист хартия, и вие ще пресечете Harvard двор, и вие ще го плъзнете в слота поща на Проктър, който беше в Уигълзуърт, едно от общежитията. И това беше ти, регистриран. И той или тя би тогава композира имейл до вас ръчно, който много прилича I Току-що е тук с Maya, и тогава ще бъде потвърдена както като са били регистрирани. Така че това беше като ниска висящи плодове, така да се каже. Това е вид на глупав, че сме използвали хартия за това. Исках да можем просто да отида на интернет страница, или имат първокурсниците отидат на уебсайт, абонирайте се за спорт, и просто да се автоматизира много от тези неща чрез поставяне на техните имена и имейли и така нататък в база данни. И всъщност, най-първата версия на сайта си, използвайки супер грозно HTML, би изглеждал нещо подобно. Това е всъщност, по ирония на съдбата, по- неудобно търси от това обратно след това. Но аз бях един език за програмиране. Не PHP, а по-скоро, наречена Perl, който е по-стар език, но много сходни по дух. И аз просто напълно научи за себе си. И това ми отне известно време да го разбера, питам много въпроси от приятели. Но идеите там са абсолютно еднакви. Защото това, което е наистина предназначени PHP за да не се неща на команди ние просто играе с, но за уеб програмиране. Това е наистина изравни в своята функция настроен на мрежата, както следва. Това е froshims. И ако аз исках да се регистрират в тази форма, това е доста грозно, със сигурност, но нека да продължа напред и да бъде по-малко удобни студент, и каквото и спорта за Matthews, кликнете Register. Това, което искам да бъде в състояние да направите, е да представят информация от форма, да не сървър на Google като направихме миналия път, напълно измама чрез използване на техния гръб, I искат да приложат моя собствен гръб код. Което означава, че пиша PHP код, който живее в URL че данните за формуляри могат да се подават до. И тогава си код, написана на PHP на сървъра, след това може да се отговори, че приноса на потребителите. Както името му, или ниво на комфорт, или в общежитието, а след това направи нещо с него. В този случай, аз просто глупаво да го отпечата като текст, който не е толкова хубава. Но вие със сигурност може да представете си, ако знаете HTML, и вие скоро ще знаем как да се генерират HTML с печат е и печат, и други подобни функции, вие със сигурност може да генерира по-хубава уеб страница, която казва, хей Дейвид, сега сте регистриран. Ти си по-удобно студент от Matthews, нали? Можете да използвате само един куп% ЕЕН, или фигурните скоби и знака за долар нотация аз използвах преди малко, за да генериране на текст, който е по-удобен за потребителя от това. Така че нека да погледнем на този файл. Froshim нулева точка PHP изглежда по този начин. Когато се презареди CS50 IDE, froshim нула изглежда по този начин. Това е froshim нулева точка PHP. И какво ще забележите в този файл? АУДИТОРИЯ: [недоловим] SPEAKER 1: Съжалявам, малко по-високо? АУДИТОРИЯ: [недоловим] Всичко е в HTML. И в действителност, това е, защото това, което е интересно за PHP е, че тя е проектирана да бъде, по-добре или за лошо, размесени с HTML код. И в действителност, въпреки че този файл, froshim нулева точка PHP, има коментар PHP в горната от него, всичко е просто HTML. Но от друга страна, ако аз се отворят, нека да речем, абонирайте нулева точка PHP, които Просто има голям коментар на върха. Това също изглежда почти изцяло като HTML, с изключение на това, което? Line, какво, 21 изглежда малко странно. Но забележете аз съм вписване PHP режим с отворена скоба въпросителен знак PHP. Тогава аз имам някои неща. И след това в края на тази линия почти имам, въпросителен знак PHP. И това е, което искам да кажа от смесени с. Можете да пишете HTML, че просто желаете сървърът да изплюе. Но ако искате да направите нещо динамично по средата на страницата, като въведете името ми или общежитието или ниво на комфорт, Мога да използвам функция като печат R, който е отпечатате рекурсивно, което просто означава, разпечатате тази променлива, то форматирането обаче искате. Това наистина не е за хуманни цели, това е просто за отстраняване на грешки или диагностични цели. Ето как го направих. Ако вместо това отидете froshims две точки PHP, забележите, че действието на тази форма не е регистрирана нулева точка PHP като old-- предишната всъщност беше. Но това е регистрирано две точки PHP. Така че нека да разгледаме как точно това се държи малко по-различно. Ако аз отида в версия две. Ако тук, ако се регистрирате като Дейвид, по-малко удобно, от общежитието на Матюс, Регистрирай се. Така че този път той каза, вие са регистрирани, не съвсем. Нека да видим това, което направих тук. Ако аз гледам на регистър две точки PHP, това има още малко PHP код. Това е малко по-чист, въпреки че Все още увива малко дълго по тази линия. Забележете тук. I разпечатате моя HTML тагове, главата ми маркер, моето заглавие тагове, главата, тялото. И тогава аз започвам да се каже, неща, като въведете PHP режим. И така, този етикет, отворена скоба PHP-- въпросителен знак PHP казва, хей, сървър, execute-- интерпретира следната неща като PHP докато не видите крайния маркер. И въпреки, че може би не знаете всеки друга PHP, отколкото сте виждали до този момент, можете да прочетете вид то доста интуитивно. Ако името е празна, или комфорт е празна, или в общежитието е празна, какво да правя? Какво да кажем за потребителя? Трябва да предоставите вашето име, комфорт и общежитието, и така нататък. Else, казвам ти регистрирано, както не съвсем. И аз не кажа наистина защото няма база данни. Аз не правя нищо с данните. Аз съм просто го захвърли за демонстрационни цели. Сега вид skimped над линия 22. Има и още синтаксис там, но знака за долар подчертават пост е нещо интересно. И това е, което е хубаво за PHP. В PHP, имате, което се нарича няколко супер глобални променливи. Те са нещо като още по- важно от глобални променливи. И ето, всички капитализирана като такива, ела с PHP. Така че, ако имате сървър, който има инсталиран уеб сървър, като Apache, и инсталиране на езика подкрепа за PHP, всички изведнъж ви да започнете да използвате тези супер глобални променливи в кода си. И това, което е хубаво за PHP е, че ако просто напиши файл, който завършва в точка PHP, го постави на уеб сървър, и тогава да подадат формуляр за да го чрез това действие маркер и форма маркер, че действията на атрибут в форма таг, PHP и интернет напълно разбира, как да вземете всички тези двойки ключови стойности от на URL адреса като въпрос марка р е равно на котки, тя ще разбера как да се р и котки. Ако изпратите снимка или потребителско име, или парола, за да харесва Facebook, PHP ще разбера за вас където всички тези данни са. И тя просто ще предаде можете асоциативен масив наречен знак за долар долна пост, или знак за долар подчертая получите, в зависимост от това, дали сте използване на получаване или публикувайте изявления. И това само ще ви предадат супер глобална променлива, така че, ако искате да получите най името че потребителят подава чрез които интернет формуляр, Вие буквално само да кажа името на супер глобалната променлива, цитирам, край на цитата, име. И цитирам, край на цитата комфорт, и цитирам, край на цитата общежитието. И ние отиваме, за да може да се направи това и много повече с PHP. И въпреки, че това е вихрушка поглед към него, ние ще се потопите в много по-следващата седмица. Ние ще представим на база данни така, че вие ​​сте в действителност ще започне да прилага собствената си електронна търговия based-- като сайт във времето само една седмица. Така че ние ще се видим следващия път, и Надявам се да имам текстовите съобщения. Чао. [За възпроизвеждане на музика] [ОТВАРЯНЕ НА ВРАТАТА] SPEAKER 2: Хей. SPEAKER 3: Какво става? SPEAKER 2: Какво правиш? SPEAKER 3: Работа върху един проблем набор. SPEAKER 2: Nice. Дай пет. [ДАЙ ПЕТ] Какво are-- ъ-ъ, какво правиш тук? SPEAKER 3: Просто да излиза. Просто се върнах от фитнеса. Не можех да помогна, но забележите, когато сме на високо fived, че имате доста груби ръце. Смятате ли да отидете на фитнес? SPEAKER 2: No. Не. SPEAKER 3: Пич, ти изглежда доста голям. Кое е по-лошо, защото всеки знае, 8-топка е едрият мъж на територията на колежа. Дай пет. SPEAKER 2: Uh, не. Не, мисля, че съм добър. Мисля, че съм добър.