[Prehrávanie hudby] Reproduktor 1: Toto je CS50 a to je koniec týždňa sedem. Dnes je možná, kde sme Naozaj vám výučbu jazykov. Zaviedli sme v minulosti pár týždne HTML a CSS, z ktorých ani jedna sú programovacie jazyky. A skutočne, aj keď sme nie pozrieť sa na takmer všetky značky že prichádza s HTML a takmer všetky vlastností, ktoré CSS je dodávaný s, že je trochu to pre HTML a CSS. My si len všeobecne začať za predpokladu, že vás pochopiť všeobecné myšlienky tagov a atribútov, a stránky odosielaná z klienta na server. Pretože dnes začneme pozerať na ďalší programovací jazyk, PHP. Chystáme sa urobiť super rýchly. Nebudeme vás naučí, PHP samo o sebe, rovnako ako sme sa snažiť, aby vás učili C, sám o sebe, ale skôr programovanie. A skutočne, jeden z ciele pre tento kurz nie je naučiť vás C, alebo HTML, alebo CSS, alebo PHP, alebo ľubovoľný počet iné buzz slová alebo skratky, ale skôr informatike a ako programovať zásadne. A skutočne, dnes začneme brať tieto školenia kolesá off všetky ďalej tým, že letí prostredníctvom jazyk volal PHP, a to nasledovne. Tu je to, čo tento jazyk vyzerá. Ukazuje sa, že nie je potrebné hlavnou funkciou v programe písomnej v jazyku PHP s názvom. Takže už znie trochu jednoduchšie ako C, s ktorými sme oboznámení. Ukazuje sa, že ak ste chcú deklarovať premennú, to budete robiť takmer identicky C. Ale tam je jasne jeden rozdiel tu keď Prehlasujem reťazec, alebo možno dva rozdiely. Čo vyzerá inak? Divákov: Znak dolára. Reproduktor 1: Áno, je to dolár podpisovať, ktorý sme nikdy nevideli. A čo chýba? Jo? Divákov: [Nepočuteľné] Reproduktor 1: Jo, nie je typ dát. Tak to dopadá, že PHP je to, čo zavolajte voľne typový jazyk, kde C je silne napísaný. Voľne napísal jednoducho znamená, že existujú rôzne typy údajov, tam sú reťazce a ints a pláva. Ale počítač čísla, ktoré mimo. Tie ľudský programátor Nemusíte na to prísť. Takže všetko, čo musíte urobiť, vyhlásiť je premenná znak dolára, názov vašej variabilná, a potom sa, napríklad, quote koniec citátu, hello world. No to je to, čo podmienka vyzerá v PHP. Akékoľvek rozdiely? Nie. Tak sa ukazuje, sú zhodné. A môžete mať menej pobočiek alebo viac pobočiek, ale syntaxe zákruty presne to isté. Boolean výrazy môžu nutné objednať dohromady. Boolean výrazy môže byť spojkou A .. Stále máte prepínače. Dokonca aj keď ste nepoužili tieto, tieto existujú v C a oni sú funkčne ekvivalent v PHP. A v skutočnosti, v PHP sú trochu silnejší. V jazyku C, môžete porovnať iba určité dátové typy, ako ints a znakov, zatiaľ čo v PHP môžete skutočne porovnávať plné opeřit struny bez nutnosti sa starať o ukazovatele a podobne. Tak tu je to pre slučku. To je len pseudokód kód, ak chcete. Ale štruktúrne je identická s C Tu je while, pseudokód therefore-- identický s C. Tu je robiť, keď loop-- identické. A tak je tu druh tento vzor tu, pričom tam je niekoľko ďalších syntaxe Funkcia budeme skutočne uvidí. V skutočnosti, tu je pekná spôsob, ako v PHP pričom Ak chcete iterovat cez pole, a vy nechcú skákať cez duševnej a syntaktické obruče vlastnenie int i = 0, aj menej ako N, I a plus-- ktorý je len veľa otravné syntaxe. Môžete povedať, že trochu viac plynule pre každú čísla ako číslo, kde sa v tomto prípade dolár čísla znamenie, ja som za predpokladu, je ako čísla pole s názvom. A potom ja som za predpokladu, že číslo, singulární, bude premenná. A čo PHP urobí za mňa, keď som opakovať v priebehu tejto slučky je, v každom opakovaní, to bude aktualizovať premenné číslo byť i-ty prvok v číslach, množnom čísle. Tak to proste zvláda všetko pre mňa. Žiadne hranaté zátvorky, no znak dolára, žiadne bodkočiarkami. Je to len trochu jednoduchšie. No, ak chcete, aby poľa, sa ukazuje, že ste Môžete urobiť niečo celkom podobného C. Syntax je trochu iný. Ale tu je pole s názvom Dolár znamienkom. A ja používam, v PHP, námestie konzoly, to dopadá. A budeme vidieť tieto znovu napriek tomu v JavaScript-- iný jazyk. Len som použiť hranatú zátvorku notáciu mať zoznam oddelený čiarkami celých čísel, v tomto prípade. Ale to mi dáva pole. Ale ešte silnejší v PHP, máme tiež, aké sú všeobecne volal asociatívne pole. A veľa jazykov majú tieto rovnako. Vec, o C poliach je to, že indexy pre polia, vec, ktorá vás používať v hranatých zátvorkách, prostredníctvom ktorého máte prístup k prvkom, musí byť čo? Divákov: [Nepočuteľné] Reproduktor 1: Musí byť čísla alebo celé čísla, konkrétne z nuly na hore. No, v PHP, a to dopadá out, v iných jazykoch, môžete začať mať indexy, ktoré nie sú číselný. Ale sú v skutočnosti slová alebo frázy, tak, že skôr ako skúste si spomenúť, kde niečo je, alebo uložené v premennej i, môžete skutočne použiť slovo a povedal that-- môžete povedať ani slovo, ako je tento. Takže znak dolára citácie je meno premennej tu. To je trochu funky syntax to je združuje dve kľúčové hodnoty párov pre túto premennú. Konkrétne sa to dáva mi matice, ktorá má dĺžku 2. Ale indexy nie sú 0 a 1. Indexy sú citácie koniec citátu symbol a citovať cena koniec citátu. A hodnoty týchto indexov, v tomto poradí, je FB na Facebooku a $ 79,53, keď som sa naposledy kontroluje cenu za to. Čo to znamená? No, to znamená, že namiesto písania kódu takto, kde som niečo urobiť ako je dolár sign-- alebo skôr, v C Ani by som mať znak dolára. Ja by som niečo ako je citácie a potom Ja by som si držiak som sa dostať na niektoré ľubovoľne číselne indexované hodnoty. Začína dnes v PHP, ak ste sa chcú dostať na nejaké hodnoty, máme nejako viac sémantický výrečnosť. Len ozdobný spôsob, ako hovoriť môžeme stačí zavolať veci, aké sú. A ak chcete získať na niečo symbol, teraz si doslova robiť citovať koniec citátu symbol v hranatých zátvorkách namiesto jednoduchého čísla. Takže je to pekný pohodlie. A to je tak nejako to teraz. Je tu zväzky Ďalšie funkcie v PHP. A skutočne, PHP prichádza s príslovečná kuchynský drez. Desiatky, stovky funkcií prísť s PHP-- tak veľa viac ako prišiel s C. A to nie je primárne určené k premôcť, ale skôr pomôcť si uvedomiť, že my nie Už nemusíte písať kód to je druh tu dole koncepčne. Teraz môžeme len začať využívať oveľa viac pokročilých funkcií, že jazyky ako PHP majú. Takže nemusíme sa starať o pohybujúce sa veci okolo v pamäti. Nemusíme sa starať o malloc a všetky tieto nižšej úrovni, výkonné podrobnosti, ktoré budete zápasiť s, ak nie boj s, pset5, ale môžete začať čoskoro vziať za samozrejmosť. V skutočnosti, poďme napísať super jednoduchý program v PHP, a to nasledovne. Chystám sa ísť hlava do CS50 IDE tu, a to, čo budem robiť je vytvoriť nový súbor, ktorý veľmi jednoducho sa bude volať ahoj dot PHP. Takže namiesto toho, dot c, to je bude nazývaný dot PHP. A potom sa v tomto súbore, Môžem začať písať. Ale ukazuje sa, že jedna vec, ktorú musím vedieť je, že každý súbor PHP všeobecne, potrebuje začať s nejakou špeciálnou syntax. Podobne v duchu do HTML, ale opäť, PHP je programovací jazyk, nie značkovací jazyk. Takže každý súbor, a je to niečo hlúpy hľadá Pripúšťam. Otvorený držiak, otáznik, PHP. A to je len spôsob, ako jazyk je povedať, hej, počítač prichádza nejaký kód napísaný v jazyku PHP s názvom. A potom sa na samom konci svojho súboru, robíte druh druhu opaku. Nemusíte písať PHP znovu, stačí robiť otáznik, uholník. A potom niečo, čo dať dovnútra z týchto dvoch značiek, aby som tak povedal, bude, alebo by mal byť, PHP kód. Takže poďme niečo urobiť super jednoduché. Chystám sa ísť ďalej a robiť tlač def, hello world, spätné lomítko n, zachrániť. A teraz na moju výzvu, budem robiť, aby hello-- nie, budem robiť, dot lomítko ahoj. Nie, bodka lomítko, hm. Takže niečo je niečo iné. A skutočne, to je hlavný rozdiel Medzi PHP a jazyky, ako je C C. bol tzv zostavujú jazyk. Čo to znamená pre C treba zostaviť? Aký bol dôsledok? Jo. Divákov: Napísal ju do strojového kódu tak to mohlo byť spustený v počítači. Reproduktor 1: Presne tak. Musíme najprv previesť do takzvaný kód prístroja, nuly a jednotky, pred tým, než bude skutočne spustiteľný a rozumel v počítači. Tým, Intel Inside. CPU vnútri počítača. PHP, naopak, je to, čo sa nazýva interpretovaný jazyk, ktorý Znamená to, že nemusíte skompilovať do núl a jednotiek, strojového kódu, namiesto toho ho nechať ako zdrojový kód. A namiesto toho odovzdať ako vstup na program, tlmočník že niekto iný písal Pred rokmi, že to chápe riadok po riadku, znak pre znak. Takže inými slovami, Ľudia tam napísal program, ktorý bude vyzerať vo Vašom kóde riadok po riadku, a zistiť, čo počítač by mal robiť, bez preložením priamo do núl a jednotiek. Takže ak to vidí pre sláčiky, Tento takzvaný interpret sa bude ako, v poriadku, mal by som niečo urobiť znovu a znovu a znovu. Čo mám robiť? Dovoľte mi, aby som sa na ďalšom riadku. Dovoľte mi, aby som sa na ďalšom riadku. A to naozaj interpretuje ju riadok po riadku. Tak vykonať ho, nemám používať značku. Nechcem používať dot lomítko v tomto prípade. Namiesto toho som robiť PHP, čo je názov programu, tiež známy ako Interpret, to je predinštalovaný CS50 IDE, a teraz musím zložiť linka argument, príkaz, ktorý je jednoducho meno z súbor, ktorý chcem interpretovať. Alebo presnejšie mimochodom, že chcem utiecť. A keď som stlačte klávesu Enter, tu to máme. Hello world. Teraz sa ukazuje, že som použitú tlačovú def úmyselne aby nás most z C na PHP. Väčšina programátorov PHP, ako uvidíte, ani neobťažujte použitie tlačového def. Jednoducho použiť funkciu nazvanú tlač, ktorý C nemal. A tak keď som znovu spustiť to teraz, to vlastne chová funkčne rovnaké. Nemôžem použiť percento ov a percenta aj, a tak ďalej, ale existujú aj iné spôsoby, v PHP robiť to. To je ale iba hovoria, že syntakticky, iné ako niektoré podivné veci hore top, a niektoré podivné znaky dole na dne, poňatie má teraz programovanie v tomto inom jazyku sa bude presne rovnaké. V skutočnosti, poďme urobiť jednu ďalší príklad. Takže budem pokračovať a zatvorte tento súbor. Dovoľte mi, aby som vytvoriť ďalšie, ktoré Zavolám podmienky 1 bodka PHP. Takže bez nulovej, pretože to, čo som urobil Bol Obzrel som sa pred niekoľkými týždňami, sme mali súbor nazvaný Podmienky 1 bod C. A čo Ja som bol premenený v mojom hlava, a tu na papieri, a čoskoro na kurz je webové stránky, riadok po riadku do PHP. Takže vo verzii C, sme urobili niečo ako reťazec s dostane dostať reťazec. Takže je to trochu inak k tomu, že v PHP. Namiesto toho som som jednoducho ísť robiť, alebo skôr, ja mohol urobiť int n dostane dostať int, v tomto prípade skôr. Takže namiesto toho, budem robiť n dostane čítať riadok, rád by som celé číslo, prosím. Takže je to len môj výzva. A tak to dopadá, a Ja by som len vedieť od mať čítať alebo vidieť funkcie predtým, čítať riadky funkcie v PHP preberá argument, ktorý je výzva pre človeka, a jeho účel v živote je prečítať riadok textu že on alebo ona druhy uvedené v. A potom to, že ukladá Text do premennej n. A teraz by som mohol urobiť niečo ako som to urobil pred niekoľkými týždňami, rovnakým týždeň jeden z triedy. Ak je n väčšie ako nula, potom idem požičiavať si, že syntax sme práve videli, print def, si si vybrala kladné číslo, spätné lomítko n. Else Ak n presne rovná nule, ja som bude pokračovať a povedať, tlač def, si si vybrala nulovej spätné lomítko n. Else, tu by mal prípad Samozrejme sa, tlač def, si si vybrala záporné číslo. A môžeme určite realizovať logika tejto veci v veľa rôznych spôsoby, ale bod tu je to syntakticky, sotva niečo je nové. Je to len znak dolára a Nová funkcia a čítať online. Ale v podstate to, čo je nové teraz je mi to tlmočenie. Ja som priechodom ako vstup na iný program. Takže ak chcem spustiť to, ak je Neurobil som žiadne chyby, Chystám sa spustiť PHP, z Podmienky 1 bod PHP, Enter, Budem písať v počte 50, a predpokladajme, že teraz to funguje. Vzhľadom k tomu, logika je isté ako jeden týždeň. Dobre, takže to je celkom nezaujatý, že jo? Mohli by sme to urobiť v akomkoľvek počet jazykov. Urobme niečo spôsob silnejší. Poďme problém vrchná sada päť. Takže budem pokračovať, a to urobiť. Idem k vytvoreniu súboru volal slovník dot PHP, a naklonený ako by ste mohli byť na zakódovanie nadol veľa poznámok, poznámky pomôžu iba vy, ak ste povolený implementovať problémy nastaviť päť v PHP. Ale uvidíme, ako rýchlo sme sa teraz môžu implementovať, že rovnaký problém set. Takže v slovníku dot PHP, budem predpokladať, že tu už súbor vo svete s názvom pravopisu. A skutočne, Urobil som to v predstihu, a nebudeme prejsť tejto línii po riadku, ale ak ste zvedavý neskôr a naozaj chcete zabaliť svoju myseľ okolo Rozdiely medzi C a PHP, doslova porovnať tento súbor, pravopisu, z dnešného zdrojového kódu že budeme písať neskôr dnes, proti p set Päť Speller bodka c, že ​​dávame vám, a to je skoro rovnaký riadok po riadku. Je tu niekoľko ďalších dolára. Pár funkcie trochu inak. Ale je to príjemný spôsob, zo nejako videl, ako preložiť jedného jazyka do druhého. A to je takmer totožné linka pre linku. Ale budem predpokladať, že sa existuje, a to, čo budem robiť tu je pokúsiť sa vyhodiť váš myseľ reimplementing celistvosť problém dal päť cestu rýchlejšie, než si robil tak ďaleko. Tak napríklad, budem prvý, deklarovať globálnej premennej s názvom veľkosť, a nastaviť tak, rovná nule. Teraz to nie je moc úspory. Kurzy sú ste zaviedli veľkosť skoro rovnaké, alebo náznak náznak, bude dnes večer alebo zajtra, len pomocou globálnej premennej s názvom veľkosť, a nastavenie rovná nule. To nie je zvlášť úžasný spojler. Takže aké boli vaše údaje štruktúry výber, tých z vás, ktorí utekajú a prečítajte si, čo spec dátové štruktúry sa väčšina z vás používate? Hash tabuľky alebo vyskúšať, možno Niektorí ich varianty. Takže vykonávanie hash tabuľky aspoň, je trochu veľa riadkov kódu, v poriadku? A nie všetky z nich by mohol byť funkčná v tomto bode v týždni, ale to je v poriadku. Pretože v PHP, keby som Ak hash tabuľky, hotovo. Je to tak? Takže tejto premennej, ktoré som len vyhlásil, je samozrejme volal znak dolára stôl, na zavedenie predtým. Ale ja naozaj chcem, na koniec dňa, pole. Ale nie numericky indexovaný poľa, pretože to je ako dva týždeň veci, keď sme hovorili o poliach. Chcem hash tabuľky. Ale hash tabuľka je naozaj len konkrétny spôsob, ako povedať, Ak asociatívne pole. Ak chcete byť schopní pridružených kľúčov s hodnotami. Kľúče s hodnotami. Čo je to slovník, naozaj? No je to úplne zväzok kľúčov. Slová ako jablká, hrušky, a banán, a všetky tieto anglických slov že vám ruku. A hodnoty, ktoré ste efektívne vloženie do slovníka sú buď pravdivé, alebo neprítomnosť, false. Inými slovami, vkladáte celá partia kľúče a hodnoty, jablko, to je pravda, hruška, pravda, banán, pravda. Tak, že pri načítaní alebo hľadať up týmito údajmi vo vašom hash tabuľky s vašou funkciu kontroly, ty si buď vrátiť odpoveď, Áno, našiel som to v mojom komplexe hash tabuľky, alebo nie, nie je to tam, takže sa return false. Takže na to, že všetko, čo potrebujete, je dátový štruktúra, ako som navrhol pred. Ja len musia byť schopní združovať slová ako, citujem koniec citátu, symbol, s hodnotou, ako je, pravého. Takže tu je moja hash tabuľky. Poďme skutočne používať to. Takže tam je niekoľko funkcií Potrebujem implementovať. Chystám sa ísť dopredu a hrýzť off funkcia nazvaná veľkosti. To trvá žiadne argumenty. Ja nemusím obťažovať s Slovo, neplatné, v PHP. Ja som jednoducho ísť k návratu veľkosť. A ako stranou, PHP má tento minorly nepríjemné detail, kde keď sa niečo je globálna, musíte povedzte funkciu, v ktorej, ktorú používate to, hej, to je globálna premenná. Takže, menšie hlúposť, ale vám musieť urobiť to napriek tomu. A čo zaťaženie? Idem na vykonanie funkcia nazvaná zaťaženie že sa v mene slovníku, rovnako ako v problém nastaviť päť. A ako budem pokračovať, Všimnite si, že nemám bolo písanie celkom rovnaký veci. Čo je to sa pochopiteľne líši v PHP o ako deklarovať funkciu oproti C? Jo. Divákov: [Nepočuteľné] Reproduktor 1: žiadny typ návratu. A naozaj, je to tak, PHP ak je to voľne napísaný, je tiež v tomto zmysle trochu nedbalý. Nemusíte špecifikovať ako programátor to, čo táto funkcia vracia. Budete musieť skutočne vyzerať v kóde postava, ktorá sa. Alebo čítať komentáre alebo dokumentáciu. Takže výhody a nevýhody tieto druhy rozhodnutí. Ale musím povedať, kľúčové slovo, funkcia. A keď sme sa dozvedeli JavaScript za pár týždňov budeme vidieť to isté znova, ale je to rovnaký nápad. Meno funkcie, jej tvrdenie alebo argumenty alebo jeho nedostatok, a teraz Tu je implementácia. Takže budem rezať zákruty len niektoré byť dramatický len na chvíľu. Ale budem pokračovať a povedať. To je, ako môžem nahrať súbor do poľa. K dispozícii je funkcia v PHP s názvom súboru. Podáte to je názov súboru. To podá naspäť poľa, vnútri z ktorých je každý riadok zo súboru. Z nula, jedna, na up sa n mínus 1 liniek. To je to, že jo? Nie je f čítanie. Nie je f get s. Nie je percent s. Neexistuje žiadne bolesti hlavy. Nie je feof. Všetky tie veci, s ktorými ste zápasí snáď, s p set štyri a päť, zmizne. Tak som len čítal tieto riadky do súbor, a potom viete, čo? Ak chcem iteráciu nad týmito slovami, Môžem urobiť, pre každý liniek ako linky. Pamätajte si, že to bol druh šikovný spôsob iterácie nad pole, index indexom, a na každom opakovanie volania aktuálny riadok, znak dolára riadok. A práve tu budem ísť a hovoriť stôl, držiak, riadok, dostane pravdivé. Inými slovami, je to, ako som sa vložiť do môjho tabuľky hash v PHP. Hovorím znak dolára tabuľku, ktorá je môj asociatívne pole, ktorá bola prázdny na riadok kódu hore. Potom som index do nej nie, pomocou celej rady, ale doslova použitie kľúčové slovo, ktoré mi záleží. Možno je to jablko alebo hruška alebo banán alebo čokoľvek, ale konkrétne som indexovanie do neho rád navrhol som už skôr. Beriem mene môjho asociatívne pole, a potom som používať citácie unquote v hranaté zátvorky s reťazcami, namiesto skutočného počtu. A tak to je. Funkcia zaťaženie je hotovo. Akonáhle sa táto slučka iteruje, ja som dal všetko do tabuľky hash. Teraz malý disclaimer, je tu pár vecí, ktoré som si napríklad opraviť. A verzie uvidíme po on-line budú mať všetky nuansy, ale je to väčšinou len bude nejaký kontrola chýb a niektoré drobné vychytávky. Ale to je naozaj podstata toho. Ak sa teraz chcem realizovať funkcia zavolaná zistiť, ktorý očakáva slovo ako argument, Ako by som mohol ísť o tom, že? No, ja proste chcel povedať, ak je vnútri môjho stola, na umiestnenie slova, , Ak je nastavený. Takže ak tam je-- v skutočnosti, viete čo? Budem robiť to v trochu pseudokódu. Ale myšlienka je rovnaká. Ak to sa rovná pravda, vráti true. Dobre. Else-- môžete trochu vidieť, kde toto je going-- vrátiť false. Hotovo. Kontrola sa vykonáva. Celkom pekný, že jo? A tak to, čo je to naozaj dostať na? A to taky, rezať som nejaké rohy. Pozrite sa na on-line verziu pre všetky nepatrných nuansy. Ale to je podstata toho. Index do vášho asociatívne pole, tiež známy ako Hash stôl, či tam je hodnota tam, ak je nastavená na hodnotu true, a ak áno, return true. Takže sme sa scvrkol všetky zložitosti. Takže druh mysle vyfukovanie, že jo? Nebudem sa obťažovať s dokončením vyložiť, pretože v fact-- oh, viete čo? Jo, poďme dokončiť ho vyložiť. Uvoľniť sa v hash tabuľky by mohol vyzerať rovnako ako funkcia vyložiť, vráti. OK, takže to je vyložiť. Pretože nie je nič vyložiť, že jo? Nie je malloc. Nechcel som výslovne požiadať operačný systém pre čokoľvek. Len som začal používať premenné. A tak to aj je prejavom rysy vyšších jazykov úrovni. Takže znovu, väčšina tohto termínu sme sa zaoberali tu dole s C. Super nízkej úrovni. Môžete vidieť pamäte počítača. Môžete dotknúť niečo, čo chcú v pamäti RAM počítača, k lepšiemu alebo k horšiemu. Tu hore, ideme vzdať túto moc. Ale môj bože, pozrite sa, ako oveľa menej kódu som napísal. V skutočnosti, keby som bol nehovoríme a hovorí o mojom písaní, by sme boli vykonané s Tento príklad pred piatimi minútami. Takže čo je cena zaplatené? Tak poďme sa pozrieť. Poďme sa pozrieť. Chystám sa ísť dopredu a spustite CS50. Dovoľte mi, aby som najprv ísť do dnešné Príklady, kedy Mám adresár textov ako predtým. Chystám sa spustiť riešenie, ktoré Dodáva sa s problémom nastaviť päť nazvaný pravopisu, ktorá je v účte CS50 je. A budem spustiť na niečom veľký ako Biblia Kinga Jamesa, len preto, že sme naozaj dať zamestnancov riešenie k testu. Teraz niekedy internet je niečo pomalšie, o niečo rýchlejšie, Chvíľu môže trvať posúvať. Ale trvalo celkom .56 sekúnd kontrolu pravopisu Kinga Jamesa Biblie pomocou riešení zamestnancov. Takže celkom dobre. Yours by mohol byť oveľa pomalší, a to je úplne v poriadku. Ale to je tu správne. Tak to je riešenie personál. Ak by som ísť a vyčistiť verzii PHP. A ja budem robiť niečo ako pečenie výstavy vec. Chystáme sa vziať kód, ktorý som napísal skôr, takže je to úplne správne. Pretože kód som napísal nebude byť úplne správne práve teraz. Ale keď som spustiť verziu PHP, čo musím vzdať dnes? Trvalo mi päť minút, implementovať p set päť, ja tvrdí. Akú cenu som zaplatil? Jo. Divákov: Speed. Reproduktor 1: Speed. Čo tým myslíte? Divákov: Bude to trvať dlhšie. Reproduktor 1: Dobre. Pozrime sa. Bude to trvať dlhšie, nie písať, ale k jeho spusteniu. Jo. Tak poďme skúsiť. Tak tu budem pokračovať a robiť PHP z pravopisu, a pretože súbor je volal Speller. Takže som nebeží slovník, odvolanie, Bežím program s názvom Kontrola pravopisu. Idem sa potom v tom istom Súbor, King James piaty. Je to lietanie. To by mohlo byť len vysokorýchlostný internet, takže sa nemusíte čítať príliš do toho. Ale to cíti dlhšie istý. 1.26 sekúnd. Tak to je ešte celkom sakramentsky rýchlo, že jo? A jediný dôvod, prečo sa cítil ako viac ako tri, alebo štyri, alebo päť sekundy, že je to len preto, bol internet je pomalý. Čas strávený Počítač bol 1,26 sekúnd, myslím, že v porovnaní s 0,56. Takže viac ako dvakrát tak pomalý. Teraz, keď je to stále sakramentsky rýchlo, ale je to prejav z, naozaj, že presná cena. Vzhľadom k tomu, že sme tlmočenie v kóde riadok po riadku, a tento program PHP je čítanie môjho Kód zhora nadol, zľava doprava, to musí urobiť viac myslenia. To má na druh previesť to vnútri seba samého na zodpovedajúce stroji kód za behu, aby som tak povedal, aj keď mechaniky sú trochu odlišné. Namiesto toho, aby práve kŕmenie k Intel CPU surovej nuly a jednotky že natívne chápe. Takže absolútne, ruky dole, sme zaplatili cenu. A kód napísaný v jazyku, ako PHP má tendenciu byť pomalší. Ale môj boh. Takže teraz, keď som kontrolu pravopisu my súbor, trávim navyše 0,7 alebo tak sekúnd vs 20 hodín na vykonávanie rýchlejší kontrola pravopisu, že jo? Je to tak trochu kompromis. A ak ste práve začína p set päť, nemusí byť 20 hodín. Môže byť oveľa menej než to. Ale je to kompromis, naozaj. A ak ste spustenie kódu na naozaj veľké dátovej sady, alebo na ešte starší hardvér, tieto druhy rozdielov určite sa sčítajú. Nejaké otázky tak ďaleko? Jo. Divákov: [Nepočuteľné] Reproduktor 1: Je nám ľúto, to hovoríš ešte raz? Divákov: [Nepočuteľné] Reproduktor 1: Ste vzdať čas. No, tak jo. Tie sa šetrí čas tým, nemajú na kompilácii, či to je to, čo sa pýtate. A skutočne, v CS50, väčšinu programov, aj keď môže chvíľu trvať písať, že sú relatívne krátke. Niekoľko desiatok, pár sto riadkov kódu, a tak zostaviť celkom rýchlo. Ale keď začnete písanie väčších programov, ako keď ste Microsoft alebo ste Google a písanie naozaj veľké programy v C alebo C ++, alebo podobne skompilovaný jazyky, by mohlo trvať mnoho sekúnd, alebo dokonca minúty alebo dlhšie, zostaviť milióny riadkov kódu. A tam taky, že Rozdiel bude sčítať. A v skutočnosti, akonáhle sme Prechod dnes, v rovnaký deň Dnes, na webové programovanie pomocou PHP, že ste ísť na to nájsť len toľko príjemnejším písať kód keď nemusíte robiť tieto hlúpy Kroky, ako je zmena k vášmu terminálu okná, typ make ahoj, re spustite ho, znova okno. Len toľko hlúpy mechanické kroky, ktoré len dostať v ceste robiť zaujímavé, zábava práce. A skutočne sme hodiť to preč s PHP. A môžeme komunikovať s tým rýchlejšie. Jo. Divákov: [Nepočuteľné] Reproduktor 1: Iste. Môžem objasniť, čo to znamená byť vykladané? Pri kompilácii jazyk ako je C, to ide dole ako sme povedali na stroji kód, núl a jednotiek. A Intel sa rozhodol pred rokmi, že Niektoré vzory núl a jednotiek predstavujú sčítanie, odčítanie alebo, alebo vytlačiť, alebo iné základné operácie. Vo svete interpretovaný jazyka ako je PHP alebo JavaScript, alebo Python, alebo Ruby, alebo kytice iní, namiesto toho niekto napísal interpreter-- v tomto prípade, to je tiež nazývaný PHP, totožná s meno právneho language-- že v podstate má veľkú slučku v tom, že vykonáva iterácii cez všetky riadky kódu že som kŕmiť ako vstup, rovnako ako ahoj dot PHP, alebo slovník bodka PHP. A potom si môžete myslieť na ich veľká slučka ako mať veľa podmienok. A tieto podmienky povedať, ak je človek napísal kľúčové slovo pre, začať robiť jeho alebo jej kód znovu a znovu. Alebo v prípade, že človek má písomný riadok kódu, ak len vykonať ich ďalší riadok podmienečne. Takže je to naozaj ako tlmočenie že v ľudskom zmysle, riadok linkou, a to len nejakú dobu trvá. Trvá nad hlavou. A tak to je price-- dobrý question-- platíme. Takže poďme urobiť ďalšie demo to je trochu dramatickejší. Tam je, povedal by som, že, približný to na 90% pravdepodobnosť zlyhania hrozne, ale budete sa diviť, s 10% pravdepodobnosťou. Takže každý rok sa snažíme to urobiť, čím sme pokúsiť sa napísať program, ktorý prechádza problém nastaviť nulu, pre ktorú som predloženej vaše telefónne čísla a Mnoho iných demografických informácií, a my sme programovo poslať textovú správu. A potom telefón každého z nás začne pípať alebo vibračné, a je to proste úžasné, pretože dobre, pozrite sa na to, čo počítače môžu robiť. To len zriedka funguje správne Zdá sa, že z veľkej časti preto, že som si na čiernu listinu typicky Gmail alebo inú službu Pre skutočne snaží urobiť na stupnici toto. Ale legrační vec je príliš, pretože sme dnes nemajú všetci tu, zábava fakt v poslednej dobe sme sa Snažil to pred dvoma rokmi, Myslím, že som napísal program že sedel v slučke iterácii cez všetkých študentov v triede, a každý z nich textovú správu, a povedal niečo ako, prečo nie si v prednáške? Láska, CS50 topánok. Nemáš predstavu, koľko ospravedlňujúci a druh bolestivé e-maily Dostal som odpoveď podaná n mínus 100 ľudí, ktorí neboli tu ten deň. A ešte zábavnejšie, viac hanebné story-- Viete, poďme dať to tam. Už je na videu pred pár rokmi. Takže budete ma čoskoro vidieť napísať pre sláčiky, pričom je to veľmi jednoduché písať chybu v tom, že pre slučku, tak, že prvé doba cez slučku, budete odoslanie jednej textovej správy. Druhýkrát cez slučky I by ste odoslali ešte jednu textovú správu, a potom ešte jeden texte správy, a ešte jedna. Ale ukazuje sa, ak urobíte preklep pri programovaní, niekedy môžu písať programy, ktoré odosielajú jeden textové správy, potom o dva textové správy, potom tri textové správy všetkým, kto už dostali textovú správu. A ako viete, robiť niečo, a niečo, a niečo, a niečo, je veľký O šarže textových správ, alebo n štvorcový, alebo $ 0,10 na textovú správu, $ 20,000. Našťastie som narazila Control-C pred tým sa stalo, ale ja som dlhujem aspoň jednu z vašich predchodcov 20 dolárov za 200 niektoré podivné textové správy, ktoré, nie len šiel do svojho telefónu, ale Tiež to bolo ako staršie Flip telefón tak to páči vytlačení zo svojich Pamäť každý druhý osobný texte Správa on mal vlastne dostal. Takže máme jeden cieľ dnes, nie k tomu, že. Možno Zapnutie režimu V lietadle. Dobre. Tak poďme na A Program tu callled-- že budem hovoriť text, bodka PHP. A v predstihu, mám dva súbory tu. Urobil som súbor len pre zamestnanca, ktorý má všetci z personálu info, všetky mená z webových stránok Course. A potom teraz som len dať Niektoré falošné čísla 555-1212. Tak to by sa v skutočnosti nikam. Ale všimnite si vnútro tohto súboru CSV, ktorý sme hovorili o krátko pred v kontexte súboru IO. Čo je to CSV súbor? Oddelené čiarkami premenné. A to je niečo ako veľmi ľahký databázy, ak chcete. Tam je druh akési štyri stĺpce v tomto súbore, a tam zubaté, ale čiarky podstate predstavujú stĺpce v súbore. V prvom stĺpci je TF alebo názov CA. Druhý stĺpec je ich priezvisko. Tretí stĺpec je ich telefónne číslo. A štvrtý stĺpec zrejme je-- Štvrtý stĺpec je zrejme to, čo? OK, tak je to ich nosič. Takže Verizon alebo Sprint, alebo čo nie. A keby som misspoke skôr, CSV. Oddelené čiarkou hodnôt je tu CSV. Tak čo mám robiť s tým? No to je len veľký textový súbor, a je to celkom dlho, nie? Rovnako ako to bude byť trochu nepríjemné. A ukázalo sa však, že keď som chcete poslať textovú správu, poďme hovorí Alex tu. Nechaj ma ísť do svojho prehliadača a ukončiť celoobrazovkový režim Len tak môžem prepínať tam a späť. Ukazuje sa, pozrieme sa, či som ísť tu, a prihláste sa do služby Gmail, v poriadku. Nepozerajte sa v tejto časti. Len som sa dostať do vidieť. Samozrejme, že môže livestream stále vidieť, čo robím. Dobre. Takže tu je práve Gmail s Účet John Harvarde. Takže ak chcem zaslať textová správa Alexovi, Môžem samozrejme napísať novú správu. A ukázalo sa, a ja som skúša to s Alexom predtým tu, takže môžete pripojiť určitú doménu meno na telefónne čísla ľudí, preto, že existuje vo svete veci volal SMS na e-mail brány. Čo je ozdobný spôsob, ako hovoriť všetky z nás, ktorí majú mobilné telefóny, ktoré majú telefónne čísla, samozrejme, tam pravdepodobne je pre vášho operátora, určitá prípona podobne, pri Vtext.com pre Verizon textové správy dot com, ktoré môžete pripojiť k vášmu vlastné osobné telefónne číslo, a potom Vy alebo priatelia, alebo vaši rodičia môžu text, ktorý v danú adresu. A Verizon má server, e-mail serverov, že po obdržaní tohto e-mailu, sa pozerá na numerickej časti a potom používa bez ohľadu na špeciálnej odvetví kúzlo majú skutočne poslať cez rozhlasové a televízne vysielanie na konkrétnu bunku telefón. Teraz je to pekné, pretože sa mi nepáči naozaj vedieť, ako poslať textovú správu alebo písať kód, ale pre môj mobilný telefón, a vy by ste mohli robiť presne, že pre konečný projekt, ale teraz všetci Mám, je môj laptop sem. Takže chcem iterovat cez to CSV Súbor, linka, po riadku, po riadku, po riadku, chytiť každý z telefónnych čísel štábu, a ich nosiče a programatically, zřetězit, to je, pripojte telefón číslo s názvom príslušnej domény a potom poslať e-mail. Tak to je veľa schodov. A veľa šťastia robiť to v C. Je to nočná mora o situácii otvoriť súbor, aby si ho prečítali linka, po riadku, po riadku, ako ste sú vidieť, alebo sa môže čoskoro vidieť s problémom set päť, ak nie Problém set štyri, a potom dynamicky zřetězit dva reťazce dohromady, pretože v C, aby sa dva reťazce a kombinovať ich, Čo robíte minimálne musíte urobiť, s najväčšou pravdepodobnosťou? Musíte deklarovať viac pamäte, že jo? A spýtajte sa, malloc, môžem mať viac pamäte? Tak som si dal polovica z toho tu, polovica tohto sem. Je to tak veľa krokov. A tým bodom ste stratili Záujem o stupídne malé demo kde si telefón pípne každého. Poďme urobiť tento druh PHP štýl, ktorým sme práve začať používať viac, že ​​kuchynského drezu. A myšlienky sú v zásade rovnaký, ale nemusíme sa báť príliš veľa o tom nižšej úrovni. Tak uvidíme, ako by som mohol ísť asi robí. A práve preto, že som nie opakovať chyby minulosti, Napísal som nejaké poznámky pre seba tu. A uvidíme, či by som nás môže chodiť cez niektoré zo základných krokov, a potom pre dobro časom my budeme snáď odrezala niektoré zákruty na konci. Chystám sa ísť ďalej a robiť otvorený držiak PHP začať tento súbor. A ja idem ďalej a to urobiť. Popisovač súboru, ako budete čoskoro vidieť, v skutočnosti volá funkciu nazvanú f otvorené. A pamätajte si to otvorí súbor. A citát, koniec citátu, r znamená čo, znovu? Len to otvoriť pre čítanie. Teraz v p sada pre ste to urobil. A rukoväť môže byť čokoľvek, fu, bar, bas, akýkoľvek názov premennej. Ale všeobecne počítač vedec by zavolať otvorený súbor, dáva vám popisovač súboru, niečo, čo sa držať, aby som tak povedal. Ja som jednoducho ísť robiť niektorí kontrolu chýb. Takže ak je rukoväť falošný, rovnako ako v C, budem robiť niečo podobné, nemožno otvoriť súbor, spätné lomítko n. A potom som som jednoducho ísť pokračovať a ukončiť. A ukázalo sa, v PHP, Nie som vo vnútri funkcie. Nie je hlavné funkcie tu. Tak som sa nevracajú, samo o sebe. Aj ukončíte. Čo je v podstate to isté. A ja som s ukončením pravdepodobne jedným y. Jeden jednoducho znamená chybu nejakého druhu. To je non-nula, takže je to chyba. Dobre, takže keď som sa teraz tu v mojom programe som otvoril súbor. Chystám sa ísť dopredu a vyhlásiť pole s názvom adresy, a C by som vedieť Veľkosť poľa vopred, že jo? Alebo budem musieť deklarovať to je ukazovateľ, a potom použiť malloc. A potom zakaždým, keď som si prečítal cez ďalšie riadku v súbore, Budem musieť malloc viac pamäte, malloc viac pamäte. To je bolesť v krku. A našťastie, PHP a Ruby, a Python a JavaScript, oni porastie vaše pole automaticky za vás. Žiadne ďalšie malloc. Žiadne ďalšie správa pamäte. Počítač sa stará o to. Ale cena, ktorú zaplatíte. Je to trochu pomalší. A pre program, ako je táto nebudeme všímať. Budeme posielať 100 textových správ. Napríklad nebude to cítiť. Je to naozaj začne len na Nech už je váš jazyk voľby keď vaše dáta alebo vaše programy naozaj, naozaj značný, ako tomu bude v prípade, skôr s našej webovej veci báze. Ale teraz poďme vpred. Aj keď sa ukáže, je tu Funkcie v C nazýva f dostať CSV. Súbor si CSV, že trvá popisovač súboru ako argument, a to pokračuje potom, riadok, podľa riadok, po riadku, čítať v rade. Tak to proste číta riadok textu zo súboru. Ale čo je pekné o tejto funkcii, to nie je len mi ruky riadok textu. Zdá sa, že pre tieto čiarkami, a analyzuje linku. A analyzovať linku prostriedky rozdeliť že na určité hodnoty v tomto kontexte. Inými slovami, znak dolára riadok je premenná, ktorá je chystá dať mi veľa indexov. To sa deje, že je Prvý stĺpec v mojom CSV. To bude druhý stĺpec, toto bude tretia, a to bude štvrtý. Vzhľadom k tomu, odvolanie, a Excelu nie spolupracovať v poslednej dobe sme to urobili, ale keď som stiahnuť personál dot CSV. Jejda, nie je možné premenovať. Keby som stiahnutie pracovníci ministerstva dopravy CSV, a skúste otvoriť ju, Už som registered-- Oh ani aktualizovať Excel od poslednej návštevy. Uvidíte, že v pracovníci ministerstva dopravy CSV, mám štyri stĺpce. Takže keď som si prečítal v Prvý riadok na Abby tu, znak dolára riadok 0 Abby, znak dolára rad z nich je Lyons, znak dolára riadok dvoch je jej číslo, a potom nosič svojho telefónu. Tak to je všetko. A to je pekné, pretože ja Nemusíte hneď prísť na to, kde v skutočnosti sú všetky tieto čiarkami. Takže budem pokračovať a to urobiť, vzhľadom k tomu, že definícia, Budem hovoriť, že jej meno je v riadku konzoly nula, ako som sľúbil. A ja idem na grab-- a v skutočnosti, viete čo? Nebudem sa báť jej meno, v tomto prípade. Budem držať to jednoduchšie. Chystám sa urobiť jej číslo je v riadku konzole dva, myslím. A jej nosič bol kde? Riadok tri, jeden cez. Takže nič nové tam. Je to len nula indexovanie do poľa. A teraz, budem robiť nasledujúce. V prípade, že dopravca rovná rovná AT & T-- Ja som jednoducho ísť mať loop-- Chcem vytvoriť e-mail adresa, ktorá vyzerá takto. Je to bude 617-555-1212 na to, čo sa deje, text.ATT.net, je to, čo chcem robiť. Tak ako to mám urobiť? Chystám sa urobiť nasledujúce. Jej adresa bude jej číslo, a teraz, nechaj ma ísť dopredu, a to urobiť. To je nejaký funky syntax. Nemohol som urobiť percent y trik, ale ja si vlastne len urobiť. Takže toto je PHP vec, ale uvažujme, čo robím. Dolárov podpísať adresu na ľavá, len variabilné. Daj mi premennú. Nemám špecifikovať typ. PHP sa na to prísť. Na pravej strane, aký je typ dát tej celej veci na na pravej strane? Vyzerá to ako reťazec, pretože tam je dvojitý cituje na ďaleko odišiel a krajnej pravice. Teraz tam je nejaký funky nová syntaxe tu. Tam je zložené zátvorky, a číslo znak dolára. Ale hádajte, čo je to, že syntax Pravdepodobne hovorí PHP urobiť pre mňa? Jo. Stačí vložiť hodnotu tam. Takže žiadne percent s. Mohli by sme použiť tlač f alebo S print f, alebo niečo podobné, ale PHP a mnoho vyššej úrovne jazyky, budete vidieť, že by ste mohli robia to isté funkčne, možno Šesť rôznych spôsobov. A tak to začína byť otázka dizajnu alebo štýlu. Tak to je len mystický hľadá spôsob, hovoriť, daj mi e-mailovú adresu, ale plug-in číslom v Medzi týmito zloženými zátvorkami. A zložené zátvorky nebude skončí v konečnom adresu. Teraz môžeme preskočiť niektoré Tieto linky pre kvôli časom. Takže v prípade, že nosič sa rovná rovná verHorizon-- Jejda, Verizon-- chcem robiť niečo veľmi podobné, ak adresa dostane, citát, koniec citátu, Číslo na text.ATT.net. A potom môžem robiť rovnaký druh vec pre zvyšok nosičov. Ale budem robiť bodka, bodka, bodka teraz. A teraz poďme predpokladať, že Chcem pridať pole, tlačiť. Chcem pridať do array, nazvaný adresy. Táto adresa, je to, ako vás pridať niečo do poľa v PHP. Nemusíte robiť malloc. Nemáte chcete zmeniť veľkosť poľa. Stačí povedať pole, tlačiť. Čo chcete, aby to, čo push-- pole chcete tlačiť niečo na? Adresy. Čo chcete, aby sa zasadila na adresy? Adresa. A v skutočnosti, ak ste naozaj chcem byť šikovný, niektoré syntaxe cukor pre to, aby som tak povedal, čo znamená len, ako to môžete urobiť v krajší cesta, by sa to urobiť. To má tiež za následok rastúcu adresy pole podľa veľkosti jedna, a potom PLOP že dodatočné e-mailovú adresu do neho. Jo. Divákov: [Nepočuteľné] Reproduktor 1: preklep na inak if-- oh, dopravcu. To je v poriadku. To bude tiež nemal rád môj zlyhanie realizovať časť tohto programu neskôr. Ale ďakujem vám za lov. Ešte jedna chyba. Ďakujem. Chceme, aby sa to byť Vtext.com. Áno. Dobre. Takže tam, kde to pre nás? Napísali sme kód na otvorenie súboru. Máme slučky iterovat cez riadky v súbore. Máme kód, ktorý sa pridá k mojej poľa, jeden po druhom sa správne formátovaný e-mailovú adresu. Takže všetko, čo naozaj zostáva len poslať e-mail, aby každý z týchto ľudí. Tak som išiel dopredu a pripravil som takto. Čo budem robiť tu je-- a poďme choďte do toho a preskočiť do určitej skutočnom kódu ktorý vyzerá takto. Takže tu je pre-pečené Verzia som písal skôr. A všimnite si som dokončil vykonávanie Sprint. Dokončil som sa vykonáva T-Mobile. Dokončil som sa vykonáva Virgin Mobile. A ja sa vopred ospravedlniť. Je tu niekoľko nosiče, ktoré niektorí študenti v triede majú že som sa neobťažoval zoznamu v IF podmienka tu. Takže nie všetky texty zhasne. Ale poďme sa pozrieť, čo ešte musím urobiť. Aj zatvorte súbor, len ako v p set štyri. A to je nová syntax. A uvidíme trochu bit z toho v priebehu času, najmä s p nastaviť sedem a osem. Ale to je syntax pre vytváranie špeciálny typ konštrukcie. Ukazuje sa, že je knižnica, ktorá prichádza s PHP, volal PHP Mailer. Jeho zmyslom života je programovo odosielať e-maily. Je to kód niekto iný napísal, že uľahčuje nám posielať e-maily, takže nemusíte mať na tam a späť do služby Gmail, a vložiť do e-mailovej adresy ľudí. Je tu celý rad liniek tu že úprimne, ja to jednoducho skopírovali a vložiť z dokumentácie. A v skutočnosti, ak ste zvedavý, som opustil všetky adresy URL dokumentácia v kóde, ktorý budeme písať neskôr. A všimnite si, že medzi veci, ktoré som robím je, hovorím túto knižnicu, použitia servera Gmail, že jo? SMTP sme hovorili krátko o Keď sme sa sa na Yale o tom, že Simple Mail prenosový protokol. Je to protokol, ktorý servery používané na odosielanie e-mailov, a that's-- Gmail má jeden z nich. Port, to je číslo portu TCP. To je v poriadku, ak vás Nevidel 587 predtým. Len viem, že z dokumentácie. Tu je moje užívateľské meno. Budem používať CF50 topánok. A vo chvíli, ja som jednoducho ísť zadajte do topánka aktuálnej heslo. A potom tu dole si všimnite, čo zostane. Set som z adresy sa BOT na CS50.net. Myslím, že nebudete ľutovať zaslaním textová správa na 800 ľudí, že hovorí, chýbaš mi, lásko CS50 topánok, možno pre tých, ktorí nemohli robiť to dnes. A potom sa v riadku 76, čo mám robiť? Tento druh vyzerá ako C. Takže aj rovná 0, n equals-- teraz počítať je nové. Ukazuje sa, že ak chcete získať počet vecí, v poli, nemusíte pamätať si to ešte. Stačí si len položte Funkcia tzv počet, a to vám povie, koľko Adresy sú v tomto poli. A potom budem pridať adresa, na e-mailu. A viem, že to od pomocou dokumentácie. Je tu funkciu add adresu. A teraz tam všimnete je z jedného kusu syntaxe. Videli sme to predtým v C. Podobne v duchu. Môžete myslieť na znak dolára mailom ako premenná, ktorú je. Ale je to struct vnútri ktoré sú nielen vlastnosti, Premenné ak chcete. Ale ukazuje sa, že v PHP, čo je objektovo orientované programovanie jazyk, rovnako ako Java, ak ste sa APC. Znak dolára mailu, ak chcete to-- to tiež má funkciu vo vnútri nej, alebo metódy. Takže to znamená, že špeciálna PHP Mailer knižnica, ak mám premennú tejto zmluvy, keď chcem volať funkciu, ktorá Dodáva sa s tejto knižnici, pre dnešné účely, Len viem, že si použiť notáciu so šípkou. Nie je bodka notácie. Je to len na šípku. Ale to nie je ukazovateľ. Je to len požičal od syntax C je. Tak zavolaj pridať adresy vnútri objekt alebo variabilné tejto knižnice. Dobre. Toto je magický riadok. Takto by som poslať e-mail. To je ekvivalent otváranie Gmail, písať to, a biť odoslať. Ale bude to miesto toho poslať e-mail na túto adresu, sa tohto orgánu, od CS50 topánok. A teraz kľúč riadok. Táto linka bola chýbajúca v podobnej 2.011 Myslím si, že keď som naposledy skúsil. Tam, že linka, samozrejme, vymaže adresy. Takže logicky, ak I nerušte adresu po každej iterácii, prvé e-mail alebo textovú správu prejde k Alicu, druhý ide do Alice a Bob, tretí ide do Alice a Bob a Charlie, preto je veľmi drahé chybu Urobil som ten rok. Takže poďme sa pozrieť. Sú tam nejaké otázky predtým, než Vám zašleme celý text Správa s 10 percentnú pravdepodobnosť? Nejaké otázky? Dobre. Poďme ma ísť sem a zmena heslo na to, čo by mal fungovať, bude pravdepodobne dostať na čiernu listinu Gmail. Takže oni by nemohli ísť všetci out, pretože sa pravdepodobne nemajú radi nás posielanie e-mailov 800 v slučke for naraz. Vzhľadom k tomu, že to nie je najmä ľudské správanie. Oh, budem meniť ešte jednu vec. Až na vrchole, budem sent-- zmeniť súbor, aby študenti dot CSV. A ja sa neotvorí, ale to je totožný CSV súbor s nie 100 zamestnancami, ale 800 študentov, len z Harvardu, pretože Yale má vybranie októbra tento týždeň. A vyzerá to, že druh trhnúť veci urobiť na text všetkých z nich, prečo že nie sú vo svojej triede na dovolenku. To je v poriadku. Len Harvard študenti dnes vo vnútri tohto súboru. A teraz sa vráťme k môjmu okne terminálu. Som trochu nervózny. OK, takže teraz budem ísť do adresáre, PHP a textu bodka PHP. Ako sa o jednom statočnom dobrovoľník? Takže nechcem to na mňa. OK, poď hore. Ako sa voláš? MAYA: Maya. Reproduktor 1: Maya. Poď hore, Maya. Dobre. Uvidíme, či to funguje. Dal som svoje vlastné e-mailovú adresu v file-- svoje vlastné telefónne číslo v súbore, takže dúfam, že budem mať jeden rovnako. Rád som ťa spoznal. MAYA: Podobne. Reproduktor 1: Takže všetko, čo musíte urobiť, je stlačte Enter pre odoslanie 800 textových správ, keby som nemal mhouřit. Nice. Chvíľu môže trvať, štatisticky, kým sa k e-mailu address-- textová správa, ktorá je v miestnosti práve teraz. Poďme sa leňošenie a vidieť. Divákov: [Whistling] Reproduktor 1: Oh, áno. Publikum: Oh, mám ťa. SPEAKER 1: Pre slučky are-- to nie je pomalý, pretože PHP. Toto je pomalé, pretože Gmail je škrtiaca nás a nie nechal nás poslať viac ako ako jeden e-mail za sekundu. Čokoľvek? To bolo ťažké niečo pre mňa vyskúšať na domov sa len ja a môj jednom telefóne, takže. Je to snáď od topánok? Ano? Nie? Povedz áno. Nie? Je to od kamaráta? Trápne. OK. Celkom istý, že to funguje hoci. Uh Oh. Oni black-- oh, počkaj. Oh, vieš čo? Ešte chvíľu. Len to bolo Mayovia a já-- Mia ,? MAYA: Maya. Reproduktor 1: Maya, budú Vieš, čo som urobil zle. Oh, počkaj chvíľku. Myslím, že som poslal 100 textové správy do 555-1212. Pripraviť. Nemôžem vyhrať niektorý rok. OK. Maya? Fix, že v post produkcii. Sakra! Podľa adresu. OK, čakajte. Prepáčte. Je to bolestivé každý rok. OK, jeden moment. Toto je dobré. Ja namiesto toho bude, ako to urobiť. Print adresa. OK, čakajte. Tlač adresy, držiak i. Jo, páči sa mi to. Dolár sign-- OK budem vysvetľovať, čo som si robiť vo chvíli, potom, čo som bežať toto. Každý rok. OK, ideme na to. Mám jen--, a ja nechcem ukázať, telefónne číslo každého, ale Maya môže potvrdiť s kývnutím hlavy, že ona vidí každý je Telefónne číslo v triede že budem kopírovať do program s názvom Gmail. A ak sa v službe Gmail, čo chceme povedať? Chýbaš mi. Love-- to nie je odo mňa. Ešte som ani hit ešte poslať. Tak poďme do toho a robiť to, či môžem priblížiť. OK. Takže som pomocou program s názvom Gmail teraz. Ak Maya, by ste chceli kliknite na tlačidlo Odoslať, budeme simulovať, čo to Kód by mal urobiť. Čokoľvek? [PÍPNUTIE] Divákov: Jo. Reproduktor 1: Áno? Spasenie? Divákov: Jo. Reproduktor 1: Chýbaš mi. A ja vyslať zvyšok. Poslal som preč polovicu, pretože som si nemyslel, že Gmail by ti, prejsť. Takže stačí spomenúť, dnes je deň, že ste sa dozvedel, že môžem použiť Gmail. To bolo desivé. Veľký potlesk pre Maya. Ďakujem. Dobre, takže. čo [PÍPNUTIE] Máme niekoľko pípnutie, áno? Dobre. Teraz budem mať 700 naozaj nešťastné e-maily späť od spolužiakov. Tak aspoň uvidíme, či to stálo za to. Tak čo sa stalo? Budem zistiť, čo sa po faktu zle, ale stačí sa pozrieť, ako ľahké to bolo k tomu, že v PHP. Čo teda môžeme vlastne robiť teraz, máme túto expresivita PHP. To was-- to bolo hrozné. Dobre. Takže to bolo to, čo by mala ísť von. To bolo mi testovanie dnes ráno na mojom telefón, aktuálny obrazovky môjho telefónu. Ale teraz poďme zvážiť, prečo sme vlastne zavádzajú všetky tieto veci na prvom mieste. Takže cieľom nie je napísať tieto programy, ktoré sú zapísané na príkazovom riadku, je to tak? Tak som napísal jednoduchý ahoj programu, som napísal malý program, ktorý robí podmieňovací, a použité pre čítanie linky a tak ďalej. A teoreticky, len som písal program, ktorý rozoslala 800 textových správ, plus mínus 800. A tento program bolo všetko ešte bežať na príkazovom riadku. A to je samozrejme nie na internete, že jo? Cieľom je teraz začať používať to, čo tvrdím, je jednoduchšie použiť jazyk, Trúfam si tvrdiť viac mocný jazyk, pokiaľ ide z funkcií, ktoré prichádzajú s ním, na začiatok písanie kódu, ktorý generuje webové stránky. Tak naposledy, a minulý týždeň, hovorili sme o HTTP a HTML. A čo je pekné o HTML je to, že je to len čistý text. A text je určite niečo, čo môžete vytlačiť doslova volaním tlač funkcia f, alebo funkcie tlače. A naozaj, že to, čo je PHP teraz bude, aby sme mohli robiť. Takže medzi príklady sme majú v dnešnej zdrojového kódu, Okrem niektorých z kódu že som dal tam pred chvíľou, máme programy, ako je to napríklad. Froshims, alebo nováčik Intramurální Sports, bol vlastne jeden z prvých extracurriculars Som sa zaplietol s rokmi. A moja spolubývajúca a ja som s niektoré ďalšie deti na akademickej pôde, použitý na spustenie programu froshims. Začínam svoje textové správy teraz. Teraz tak sme, späť v deň, takže toto je 1996 alebo tak, tam bol internet, ale nebolo tam process-- Nebolo webové stránky pre froshims. A tak ak by ste chceli zaregistrovať futbal alebo volejbal, alebo čokoľvek, by ste vyplniť túto vec volal kus papiera, a tie by pešo cez Harvard dvor, a vy by ste ju posuňte do poštového drážky Proctor, ktorý bol v Wigglesworth, jednej z koľají. A to boli tí registrovaná. A on alebo ona by potom zostaviť e-mail na vás manuálne, rovnako ako ja práve tu urobil s Maya, a potom by ste byť potvrdená ako mať been registrovaný. Takže to bolo ako nízka visiace ovocie, aby som tak povedal. Bolo to trochu hlúpe, že sme používali papier za to. Chcel som, aby sme boli schopní jednoducho ísť na internetových stránkach, alebo majú bažanty Vydajte sa na webové stránky, zaregistrujte sa na šport, a len automatizovať veľa tyhle veci tým, že ich mená a e-maily a tak ďalej do databázy. A v skutočnosti, že úplne prvá verzia webových stránok, pomocou výborný škaredý HTML, Možno sa pozrel niečo také. Bolo to vlastne, ironicky, viac trápne hľadá než tento chrbte potom. Ale ja som použil programovací jazyk. Nie PHP, ale skôr s názvom Perl, čo je starší jazyk, ale veľmi podobný v duchu. A ja proste úplne učil to pre seba. A to mi chvíľu trvalo, než sa prísť na to, žiada veľa otázok priateľov. Ale tam myšlienky boli presne rovnaké. Pretože to, čo PHP bol vlastne určený pre nie je príkazový riadok veci sme práve hrali s, ale pre webové programovanie. Je to naozaj viazaná v jeho funkcii nastavená na web, takto. To je froshims. A keď som chcel registrovať v tejto podobe, je to celkom škaredý, iste, ale nechaj ma ísť napred a byť menej pohodlné študent, a bez ohľadu na šport pre Matthews, kliknite na tlačidlo Registrovať. Čo chcem, aby bolo možné urobiť, je predkladať informácie z formulára, Nie je k serveru Google, ako je sme minule, úplne podvádzanie pomocou ich backend, ja chcú zaviesť vlastné backend kód. Čo znamená, že písať PHP kód, ktorý žije na adresu URL že môžu byť údaje formulára predložené. A potom sa váš kód, napísaný v PHP na serveri, potom môže reagovať na tento vstup užívateľa. Rovnako ako jeho alebo jej meno, alebo komfortu, alebo koľaji, a potom urobiť niečo s ním. V tomto prípade som len blbo vytlačili ako text, ktorý nie je tak celkom. Ale môžete určite Predstavte si, že ak viete, HTML, a budete čoskoro vedieť, ako generovať HTML s potlačou, f, a tlač, a podobné funkcie, môžete samozrejme generovať krajší webovú stránku, ktorá hovorí, hej Davide, tie sú teraz registrované. Si menej pohodlné študentka z Matthews, že jo? Stačí si len použiť veľa% SES, alebo zložené zátvorky a znak dolára notácie Použil som pred chvíľou, aby generovať text, ktorý je viac užívateľsky prívetivé ako toto. Takže poďme sa pozrieť na tomto jednom súbore. Froshim nula bodka PHP vyzerá takto. Keď som sa znova načítať CS50 IDE, froshim nula vyzerá takto. To je froshim nula dot PHP. A čo ste si o tomto súbore? Divákov: [Nepočuteľné] Reproduktor 1: Prepáč, trochu hlasnejšie? Divákov: [Nepočuteľné] Je to všetko v HTML. A v skutočnosti, že je, pretože čo je zaujímavé o PHP je to, že bola navrhnutá byť, pre lepšie alebo horšie, zmiešali s HTML kódom. A v skutočnosti, aj keď to Súbor, froshim nulovú dot PHP, má PHP komentár hore o tom, že je to všetko len HTML. Ale naopak, keď som otvoriť, poďme povedzme, registrujte nula bodov PHP, ktorý Len má veľkú komentár v hornej časti. Aj to vyzerá skoro úplne ako je HTML, s výnimkou čo? Line, čo, 21 vyzerá trochu divne. Ale ja som si všimnúť do režimu PHP s otvoreným držiakom otáznika PHP. Potom mám nejaké veci. A potom na konci tohto riadku Skoro som sa, otáznik PHP. A to je to, čo mám na mysli premiešali. Môžete napísať kód HTML, ktorý ste práve chcete, aby server vypľuť. Ale ak chcete urobiť niečo dynamický niekde uprostred stránky, ako vložka moje meno, alebo koľaji alebo úroveň pohodlia, Môžem použiť funkciu ako tlače R, čo je tlačiť rekurzívne, čo znamená len vytlačiť túto premennú, formátovanie ju však budete chcieť. Je to naozaj nie je pre ľudských účely, je to len pre ladenie alebo diagnostické účely. Tak to je, ako som to urobil. Keby som namiesto toho ísť froshims dvoch bodka PHP, Všimnite si, že akcie tohto formulára nie je zaregistrovaný nulové dot PHP ako old-- ten predchádzajúci vlastne bol. Ale je to zaregistrovalo dve dot PHP. Takže poďme sa pozrieť, ako tento sa chová trochu inak. Ak by som ísť do verzie dve. Ak je tu, keď som sa zaregistrovať ako David, menej komfortné, z koľaji of Mathews, Registrovať. Takže tentoraz to hovoril, vy sú registrované, naozaj nie. Pozrime sa, čo som tu urobil. Keď sa pozriem na registri dvoch dot PHP, to má trochu PHP kód. Je to trochu čistejšie, aj keď to Stále zábaly trochu dlhšia na tejto trati. Všimnite si, sem. Som vytlačiť môj HTML tag, moja hlava tag, môj názov značky, hlava, telo. A potom som začať hovoriť veci, ako je vstup do režimu PHP. A tak, že záznam, otvorte držiak PHP-- otáznik PHP hovorí, hej, server, execute-- interpretovať nasledujúce veci ako PHP až uvidíte koncový tag. A aj keď možno neviete niektorý iné PHP, ako ste doteraz videli, si môžete prečítať druh to celkom intuitívne. Ak je názov je prázdny, alebo je pohodlie prázdny alebo koľaji je prázdna, čo mám robiť? Čo mám povedať užívateľovi? Musíte zadať svoje meno, pohodlie, a koľaj, a tak ďalej. Inak som povedať, že ste registrovaný, no nie tak celkom. A ja hovorím, naozaj pretože tam žiadna databáza. Nerobím nič s dátami. Ja som len hádzať to preč na účely demonštrácie. Teraz som trochu šetril po linke 22. Je tu viac syntax tam, ale znak dolára zdôrazňujú príspevok je celkom zaujímavé. A to je to, čo je pekné o PHP. V PHP, máte, čo sa nazýva niekoľko flash globálne premenné. Sú nejako ešte viac Dôležitejšie než globálne premenné. A tí, všetko kapitalizovaný ako taký, prichádzajú s PHP. Takže ak máte server, ktorý má inštalovaný webový server, ako je Apache, a nainštalovať jazyk podpora pre PHP, zrazu máte môžete začať používať tieto super- globálne premenné v kóde. A čo je pekné o PHP je, že ak ste práve napísať súbor, ktorý končí v dot PHP, dať to na webovom serveri, a potom odoslanie formulára na to prostredníctvom tejto akcie tagu a tag formuláre že činnosť atribút v forma tag, PHP a web úplne vyrieši, ako sa chytiť Zo všetkých týchto párov kľúčových hodnôt out URL, ako je otázka mark q rovná mačky, to bude zistiť, ako q a mačky. Ak odoslať fotografiu, alebo užívateľské meno, alebo heslo, ako je Facebook, PHP sa prísť na to, pre vás kde všetci, že dáta sú. A to bude len ruky ste asociatívne pole volal znak dolára podčiarkovník príspevok, alebo znak dolára podčiarkovník dostať, V závislosti na tom, či ste pomocou GET alebo POST podanie. A to bude len ruky vás super globálne premenné, takže ak sa chcete dostať na meno že užívateľ predložený prostredníctvom tejto webovej formulár, ste doslova len povedať meno zo super globálne premenné, citujem, koniec citátu, meno. A citát, koniec citátu pohodlie, a citovať, koniec citátu koľaji. A budeme mať možnosť robiť toto a ešte oveľa viac s PHP. A aj keď to bolo víchrica pohľad na to, budeme ponoriť do oveľa budúci týždeň. Budeme zaviesť databázu takže ste vlastne chystá začať vykonávať vlastný e-obchod based-- rovnako ako webové stránky v niekoľkých týždeň času. Tak sme sa uvidíme nabudúce, a dúfam, že máš na textové správy. Bye. [Prehrávanie hudby] [Otváranie dverí] SPEAKER 2: Ahoj. SPEAKER 3: Čo sa deje? SPEAKER 2: Čo to robíš? SPEAKER 3: Práca na problém sade. SPEAKER 2: Nice. Vysoká päť. [HIGH FIVE] Čo are-- uh, čo tu robíš? SPEAKER 3: len visí von. Práve som sa vrátil z posilňovne. Nemohol som si pomôcť, ale Všimnite si, keď sme high-fived, že máte celkom drsné ruky. Myslíte si, ísť do posilňovne? SPEAKER 2: Nie. Nie. SPEAKER 3: Ty vole, vyzeráš dosť veľký. Čo je zlé, pretože každý vie, 8-ball je veľký muž na akademickej pôde. High-päť. SPEAKER 2: Uh, nie. Nie, myslím, že som dobrý. Myslím, že som dobrý.