[Powered by Google Translate] [Týden 8]
[David J Malan] [Harvard University]
[To je CS50.] [CS50.TV]
>> Vítejte zpět.
To je CS50, a to je začátek týdne 8.
Pár příležitostí, které tento týden,
mezi nimi, to talk zde na nichž některé jídlo se podává.
Pro více informací podívejte se na snímky, které jsou on-line.
A také další akce tento týden naší Thomas Carriero.
Je to jeden z bývalých kolegů CS50 je hlava výuky, který je nyní na Dropbox,
a on je ten, kdo zahnutý nás se víte co,
takže pokud chcete více, že hlavy jejich rozhovoru to odpoledne pro Dropbox a další.
CS50 oběd je tento pátek.
Do k nám, pokud jste schopni, 01:15, jako obvykle, na Fire and Ice.
>> A teď jsme se ponořit do něčeho s názvem Semináře.
Naše CS50 Semináře, vzpomínám, jsou tyto volitelné kurzy vedené výukové kolegy
a kurz asistenti a přátelé kurzu,
lidé ze skupiny na koleji tzv. ABCD, který je skupina
technophiles na akademické půdě, stejně jako skupina tzv. HCS,
Harvard Computer Society, vysokoškoláci, kteří jsou podobně zájem v práci na počítači.
Letošní seznam seminářů zahrnuje semináře na Android a iOS a JavaScript
a PHP, Unix, Vim, a další, takže si uvědomit, že tyto semináře se blíží.
Pokud byste se chtěli RSVP pro žádného z nich zamíří do dané adrese URL tam.
Budeme pak post na hřišti internetových stránkách časy a místa, jakmile budou dokončeny.
Ale vím, že je 5 roků v hodnotě předchozích seminářů k dispozici on-line,
z nichž mnohé jsou stále velmi aktuální, pokud jde o technologie, které by mohly
Chci si hrát s vaším závěrečných prací, tak zamiřte tam pro některé dostupné videa jejich.
>> CSS, ti z vás, kteří jsou obeznámeni s CSS už,
co je to v kostce?
Co je to CSS?
Je to kaskádové styly, a co to znamená?
Co to udělat pro nás, CSS?
Dobře, pojďme zahřát snadnější jeden, HTML, Hypertext Markup Language.
Co to udělat pro nás?
Každý, kdo vůbec?
Je to stále velmi trapné ptát na tyto otázky.
HTML, hypertext markup language.
Ano? Ne?
[Neslyšitelné Student odpověď]
Dobře, dobře, to nám umožňuje označit text zobrazit ve webovém prohlížeči.
To není programovací jazyk.
Je to opravdu značkovací jazyk, což znamená, že pokyn prohlížeč, jak zobrazit
informace, takže nejjednodušší inkarnace to jako jsme viděli
je něco, co super jednoduchý jako boldfacing, otevřený držák b uzavřený držák říká
aby tento text tučně, a to je ve skutečnosti jen jedním z mnoha způsobů, jak
ve kterém můžeme udělat, a opravdu, v těchto dnech lepší přístup
k stylizace své webové stránky, dělat věci tučné a kurzíva
a ve středu a oprávněná, a podobně, není provedeno pomocí HTML tagů alone
ale spíše s technikou zvanou CSS, kaskádové styly.
To je jazyk sám pro sebe.
To také není programovací jazyk, ale-
všichni, tohle je Dan, který vede k nám ještě dnes.
Některé technické problémy. Není problém.
>> CSS nám umožňuje stylizovat stránku
nastavením, co se nazývá vlastnosti, takže se pojďme podívat na to
prostřednictvím několika základních příkladů.
Nech mě jít do přístroje dnes.
Mám zdrojový 8 pondělí adresář tady,
a já jdu do adresáře s názvem CSS, kde máme spoustu
souborů čekajících na nás tady,
a v této složce máme, například, search0.html z minula.
Nyní si připomeňme s search0 jsme odjeli na tuto poznámku
podle druhu prováděcích Google nebo opravdu jen přední konec pro ni týden nebo tak dávno,
a všimněte si, že jsme měli nějaké nové značky tam.
Měli jsme h1 pro velké, tučné čísla,
forma, která nám umožnila skutečně HTML formulář pro vstup uživatele.
Akční, co bylo význam akčního atributu
na HTML tagu form?
Jaký byl význam tohoto, akce?
Budu prostě dělat to dnes.
Akce je určení, kde je formulář bude předložen.
Skutečnost, že říká, že action = "google.com / search"
znamená, že když uživatel klepne na tlačítko Odeslat nebo ekvivalent
bez ohledu na formu pole jsou vyplněna se bude zaslán na našem serveru
nebo naše zařízení, ale spíše, že konkrétní URL na Google.
A metoda, že to bude používat, se nazývá dostat,
a získat pro tuto chvíli je jen technika pro předávání informací s sebou na webový server
prostřednictvím adresy URL, takže se pojďme rychle podívat zpět na to, jak to funguje.
>> Všimněte si, že je to vstup, jehož jméno je q
jehož typ je text a pak druhý vstup typu předloží
jehož hodnota je CS50 hledat, a skutečně, když se otevřít tento soubor zde,
search0.html, je to super jednoduchý formulář,
a když jsem hledat něco jako počítačové vědy
a poté stiskněte klávesu Enter nebo klikněte na CS50 Hledání
Všimněte si, že to, co se stane, je mimo dostat do Google
Já jsem konkrétně skončil na této adrese nahoře,
google.com / search? q = počítač + vědy,
informatika a výpočetní technika je samozřejmě to, co jsem napsal palců
+ Prostě znamená, že je-li mezera byla,
a je to v prohlížeči jen aby se ujistil, že to není
zmatek a bílá plocha v aktuální URL.
A pak q, samozřejmě, je parametr název.
Neviděli jsme, jak jsme, programátor, může skutečně přístup q dosud.
Můžeme předpokládat, že Google ví, co s tím dělat tady,
ale budeme se tam dostat včas dnes.
>> Ale dovolte mi, abych se podívat na místo search1.html,
který vypadá trochu jinak, protože jsem se rozhodl, že tato forma tady byla jen trochu kulhá.
Myslím, že je to v levé horní části.
Je to opravdu žádné estetika k ní, a tak se chci stylizovat tento
trochu více, jako je Google, jehož strana, odvolání,
i když nemusí navštívit tak často, vypadá to dnes na Halloween.
Pokud bychom místo toho otevřít verzi 1 tohoto souboru, vyhledávání 1.html, jsem soustředěný to.
Přesto dost ošklivé, ale aspoň teď jsem začal kontrolovat estetiku této stránce,
nejen značkování jejich.
Pojďme se podívat na hledání 1, a je to opravdu jen jeden rozdíl tu je,
které by mohly vyskočit na vás, nebo možná taky ne,
ale to, co je jeden řádek nebo fragment rozdíl?
>> Tam je to styl atribut, tak se ukazuje, že v HTML
většina prvků, většina tagy mít atribut style na ně,
a uvnitř tohoto atributu style je řetězec v uvozovkách,
a že řetězec v uvozovkách je CSS.
Můžete si dát kaskádových stylů tam
zadáním jako název vlastnosti
dvojtečku následovanou hodnotou.
To je druh nešťastného návrhu rozhodnutí před několika lety
že CSS je jazyk sám pro sebe,
ale syntakticky je to velmi odlišné od HTML.
V tomto případě, vidíme, že uvnitř mé stránky, který je uveden v HTML,
Mám CSS uvnitř těchto uvozovek, a konvence pro CSS
je, že to, co se nazývá vlastnost následuje, opět, tlustého střeva,
následuje hodnota tohoto majetku, takže není rovnítko.
Nejsou tu žádné další citace.
Je to právě tento čárkami oddělený hodnota klíče dvojice,
a textový řádek dělá přesně to, co říká.
To zarovná text v těle stránky, což je opravdu odvahu na stránce,
v centru města.
>> Dobře, konečný výsledek pak, aby bylo jasno, je to.
Ne všichni, že sexy, ale alespoň je to střed a trochu více jako skutečné Google.
Ale co když místo otevření verze 2 této
a poukázat sem novou značku dohromady?
Nyní v hlavě mé stránky, které byly dříve jen měla, který tag
ve všech předchozích příkladech?
Prostě měl toto, titul.
Před chvílí hlavu tag vypadal takhle.
Nyní místo má styl značky uvnitř něj,
a to taky, omlouváme se, syntakticky vypadá velmi odlišně od HTML,
ale člověk si zvykne na to, kdy uvnitř stylu tagu
Nyní mohu vytknout to, co bylo před chvílí
atribut, atribut style, a můžu dát na samém vrcholu mé straně.
>> Proč?
No, je to krok směrem k vyčištění věci, podobně jako v psaní C kódu
bychom někdy píší funkce vytknout společnou funkčnost.
Je to jen trochu čistší, kdo factoring se věci, jako je estetika
na jednom centrálním místě, spíše než mít to všechno roztrousit celém HTML.
To také dělá to, co říká, i když tam je trochu nové syntaxi.
Tohle je výběr, a tělo prostě znamená, vyberte tělo prvek
a použít následující vlastnosti k tomu.
No, majetek je přesně stejný.
Pro správnou míru jsem přidal středník na konci,
která má tendenci být úmluva, a já jsem zabalil tento celý majetek
ve složených závorkách, protože jsem mohl skutečně mít různé věci tady.
Mohl bych vlastně říct něco jako barva: modrá;
>> Teď to taky nebude mít krok k něčemu všechno hezčí,
ale když jsem se teď vrátit k verzi 2 jsem aspoň teď dělal tělo mé
Page je text celé modré.
Tlačítko zůstane stejná, protože to je vstup. Není to čistý text.
Ale všechno ostatní, co je text, stejně jako CS50 Hledání nahoru nahoru, je ve skutečnosti modré.
Opět, vše jsme udělali teď je odstranit z těla tagu, oznámení,
styl atribut, a máme ovlivnil ji zde.
To není velké zlepšení, ale vezmeme-li v ještě o krok dál
upozornění, co můžeme udělat v této třetí verzi zde.
>> V search3.html webová stránka je téměř shodná
s výjimkou toho, co nový tag teď?
Link, takže tohle není výstižně pojmenovaný
protože nejste propojení ve smyslu klikací hypertextový odkaz.
Spíše, že jsi trochu dělá ekvivalent # include v C
přičemž link tag s atributu href
a rel atribut říká jít dopředu
a kopírování vložit obsah souboru s názvem search3.css tady, v podstatě.
To není úplně to udělat, ale je to duch toho.
To říká, že jít otevřít tento soubor, search3.css,
a zacházet s ní, jako by uživatel měl ji napsali přímo tady v záhlaví stránky
stejně jako já v předchozím příkladu.
Search3.css, zatím, je velmi jednoduchý.
Je to opravdu jen obsahuje přesně to, co bylo před chvílí
ve stylu značky, ale já jsem ovlivnil ho sem vlastním souboru.
>> I když jsme se strávili mnoho času na to vše v HTML nebo webové programování
Jen intuitivně, co je motivace, možná, pro factoring ven
tento malý úryvek dokonce CSS do vlastního souboru
a pak i s tímto link tag tady?
[Neslyšitelné Student odpověď]
Dobře, je to jednodušší vykládat v tom smyslu, že máte svůj CSS do CSS souboru.
Máte svůj HTML v souboru HTML, takže je to lépe čitelné v tomto smyslu.
Co jiného by mohlo být přesvědčivé? Jo.
[Neslyšitelné Student odpověď]
Jo, takže můžete zahrnout to mnohokrát, takže teď budeme dělat tyto
základní příklady s jednotlivými soubory, ale předpokládám, jste vlastně dělat
skutečný webové stránky, jako vy bude pro PSet 7 nebo váš konečný projekt možná,
a chcete mít více webových stránek, jako je jistě obyčejné na
Skutečná World Wide Web, a to by bylo docela lame
muset zkopírovat a vložit stejnou modrou barvu
a stejný text zarovnán centrum v každém z těchto stránek.
Spíše to dává větší smysl vytknout, stejně jako jsme udělali v C
s. soubor h, vložte ji na jednom centrálním místě,
v tomto případě search3.css, a pak se nechá libovolný soubor
na své webové stránky, aby skutečně zahrnout tento soubor prostřednictvím tohoto tagu zde v řádku 16.
Jak je typicky případ, jsme začali s verzí 0, jaký druh práce
ale nemusí být nutně nejlepší, a na každém kroku,
Vyhledávání 1, vyhledávání 2, a teď hledejte 3 jsme přijali tyto dětské krůčky
k vzorům, které jsou trochu čistší a jsou přípravné
pro složitější stránky, které bychom mohli dělat po silnici.
>> Dovolte mi otevřít jednu poslední příklad zde jen pro zobrazení
ještě více stylizovaná stránku, ale nejprve pojďme se podívat na HTML.
To je search4.html, a všimněte si, že strukturálně je to téměř stejné
kromě zavedení nové značky, div.
Div je tag, který zavádí rozdělení stránky.
Můžete myslet na to jako neviditelný obdélník.
Je to druh vytváří pás o výměře do webové stránky
že můžete stylizovat najednou.
Co jsem udělal tady je následující.
Uvnitř mého těla tagu, který byl tam celou dobu,
Říkám vytvořit rozdělení stránky zde přes linky 45 až 47,
a to znamená, že v podstatě mi neviditelný obdélník podél horní části stránky.
Pak mi druhý obdélník, byť neviditelná, pod tím,
a identifikovat podle jména obsahu, a pak konečně,
mi třetiny rozdělení stránky na dně
tzv. ID.
Uvidíme, proč jsem to udělal za chvíli,
ale koncepčně mám záhlaví divizi.
Mám obsahu divizi, a mám zápatí rozdělení stránky
i když se jedná jen v kódu.
Uživatel nebude vidět 3 obdélníky,
ale nějak strukturně tam v zákulisí
jsou skutečně přítomen.
>> Nyní, koho to zajímá? Proč vlastně dělat?
Všechno ostatní na stránce je stejný jako jsme viděli předtím.
Tady je moje forma. Tady je můj vstup, můj vstup, konec řádku, a tak dále.
Zde je obrázek, i když, tak uvidíme, kdy to přišlo z za chvíli.
Zde je zápatí, který je nový, jen proto, že jsem chtěl představit
některé další obsah zde.
Pokud se posunout nahoru všimnout, že ID této div je záhlaví.
ID tohoto div je obsah, a ID tohoto jednoho je zápatí.
A jak již název napovídá, pokud máte atribut ID
ve formátu HTML, podle definice musí jednoznačně identifikovat
jedním z prvků, jeden z tagů ve vašem stránce.
Zátěž je zcela na vás, nezapomeňte, že máte záhlaví ID již.
Máte zápatí. Máte ID obsahu již.
Počítač nebude přijít na to, co k dispozici ID je pro vás,
takže si mohl náhodně dát 2 slova o ID záhlaví,
a že by prostě bylo špatné.
>> Musíte mít na paměti to, co jste vytvořili,
ale jakmile jste udělali, že oznámení, co můžeme dělat tady.
Nyní mohu specifikovat v mém stylu značky na vrcholu
nebo ekvivalentně v mém souboru CSS, když jsem byl stále používáte tuto verzi,
Mohu říci, # hlavičku, a co to znamená, že bez ohledu na tag
v této webové stránky má ID záhlaví
a #, jen lidskou konvencí, představuje ID.
Ostrý znak nebo znak libry představuje ID.
Header je název, který jsem dal.
To znamená, že použití této vlastnosti CSS
na jakoukoli tag na této stránce nese ID záhlaví.
Stejná dohoda zde.
Použít tuto vlastnost, která se stane být stejné, do jakéhokoli prvku
jehož ID je obsah, a pak tady dole
všimnete jsem trochu obsáhlejší s zápatí.
Jakýkoliv prvek, jehož ID je zápatí, který tam může být jen jeden z definice,
jděte do toho a aby její velikost písma menší,
jeho písmo hmotnost tučné, její okraj 20 pixelů.
>> Co to znamená?
Je to jen marže na horní, dolní, a levý a pravý.
To znamená, že mi 20 pixelů neviditelného rozpětí kolem něj
jen tlačit všechno ostatní pryč od toho trochu, jako byste mohli udělat v aplikaci Word,
Microsoft Word nebo Pages nebo podobně.
A pak textu Zarovnat na střed.
Pojďme se podívat na konečný výsledek, a pak se vrátíme do jedné zbývající fragment CSS tam.
Toto je verze 4, naše poslední na vyhledávání příkladů, a je to mnohem, mnohem víc sexy.
Nyní, ve spravedlnost, jsem Googled "Google Font logo generátor."
A že mi umožnila vytvořit GIF, formát obrazu, který vypadá jako, že tam.
Ve skutečnosti, můžete to udělat taky.
Máme "google fonty logo generátor."
>> Pojďme se podívat, jestli to můžeme udělat.
Dobře, myslím, že to je na internetových stránkách jsem použil.
Dá se říci, EC 10, například, a aby jim jejich vlastní.
Můžete hrát s touto celý den a potom klepněte pravým tlačítkem na něj
a pak stáhnout aktuální GIF, který je všechno, co jsem udělal.
A skutečně, to je důvod, proč v mém HTML, připomenout, tady
Měl jsem disk značku, která jsme viděli minulý týden krátce
jehož zdrojem je logo.gif.
A co byl opět motivace za to, že tento atribut alt,
Tato alternativa atribut?
Jo.
[Neslyšitelné Student odpověď]
Dobré, takže 2 důvody opravdu, pokud prohlížeč nedokáže vytáhnout obraz
protože máte pomalé připojení k síti nebo obraz je poškozen
nebo něco podobného, ​​že alespoň člověk může vidět "CS50 hledání"
a pak také pro přístupnost důvodů.
Pokud máte uživatele, který je slepý a používá pro čtení z obrazovky
a proto samozřejmě nemůže vidět obrazy, které lze alespoň
slyšet text, pokud jejich počítač mluví to na ně.
>> Obecně platí, že je to nejlépe praxi, pokud jde o dostupnost stránek
tak, aby i uživatelé v této situaci může vidět nebo slyšet, abych tak řekl,
co to je, že je na vaší straně.
Je tu ještě jedna věc, že ​​jsem udělal tu
což je docela zajímavé, a uvidíme, více o tom v problému nastavení 7
prostřednictvím jednoho z krátkých filmů pod vedením jednoho z výukových stipendistů.
Ale # obsah se týká tagu
jehož ID je obsah, ale pak je tu mezera, a pak je tu slovo vstup.
No, co je na tom zajímavé CSS je, že můžete
odkazují na tagy na stránce druhu hierarchicky,
a co to úryvek z prostředků CSS je najít značku
jehož ID je obsah, a potom použijte následující vlastnosti
na všechny vstupní značek, které jsou potomky obsahu,
to je, že jsou odsazeny uvnitř ní.
Odsazení, opět, je jen důležité, aby v počítači, ne k člověku,
ale podle konvence jsme odrážce věci tak, jak jsme se jít hlouběji do stránky,
tak to znamená uplatňovat rozpětí 5 pixelů na každém vstupního prvku
že je někde uvnitř nebo vložený uvnitř
prvek, jehož ID je obsah.
>> Kdo to má platit pro?
No, je to vlastně jen tyto 2 lidi tady.
Všimněte si, že uvnitř tohoto formuláře tam 2 vstupy,
jako tam byl na všech těchto příkladech.
Ale všimněte si, že tyto 2 vstupy stalo, že se vnořena,
i když trochu hlouběji, pár vrstev odsazení,
uvnitř tagu, jehož ID je obsah.
Co to znamená?
Pokud půjdeme do prohlížeče zde můžete vidět někdy tak trochu-
dovolte mi, abych přiblížit, že je trochu vycpávky mezi tlačítkem
a mezi textového pole.
>> Dovolte mi, abych dočasně vypni to.
Nech mě jít do mé CSS, a nech mě jít dopředu a jen
změnu tohoto rozpětí od 5 pixelů na 0 obrazových bodů.
Nech mě jít napřed a pak uložte soubor, přejděte zpět do vyhledávače
a znovu, a dívat se na střed stránky.
Všechno dostal stlačený dohromady, a když jsem poprvé šlehačkou tento příklad se
Myslel jsem, že se podíval hloupý s textovým polem a pak tlačítko bezprostředně pod ním.
Chtěl jsem pad ji trochu, tak jsem představil marže.
Co neuděláme v přednášce, je jít přes několik desítek
CSS vlastnosti, které existují, protože opět, tam jsou věci jako velikost písma,
font hmotnost, rozpětí, text zarovnat, a několik desítek dalších,
a budeme vás odkázat na problém nastavit 7 různých cvičení on-line
a odkazy, které vám umožní vybrat tyto věci.
Ale to, co je skutečně důležité na konci dne
>> je pochopit, jak jsou aplikovány tyto věci.
Opět, pokud máme styl tag uvnitř kterých
může jít o selektory, řazení identifikátorů, které určují
kterým chceš použít tyto vlastnosti,
a pak si dát vlastnosti jako klíčový hodnota dvojice
odděleny dvojtečkou a pak skončil s středníkem,
nebo můžete ripovat všechny tím ven a dát ji do samostatného souboru CSS
sama o sobě.
Dobře, nějaké otázky na pojmy
nebo velký obraz CSS?
Budete opět vidět více z toho v PSet 7,
ale budeme držet to obecně docela jednoduché.
Ne? Dobrá.
Je čas pro skutečný programovací jazyk,
a vrátíme k trochu CSS ve formě příkladu.
PHP je vlastně úžasně přístupné jazyk
v tom, že je syntakticky téměř ekvivalentní C.
Jinými slovy, pokud víte, C, víte, z velké části PHP,
alespoň syntakticky, i když tam jsou některé nové funkce
a některé nové pojmy budeme muset podívat na.
>> Ale pro nejvíce se rozdělit, teď, když jsme přechod z C na PHP
většina nových věcí je skutečně ve velkém obrázku,
jak použít jazyk programu na webu jak protichůdný k
na příkazovém řádku nebo v řádku bliká jak jsme to dělali doposud.
Pro srovnání, zejména s PSet 7 a závěrečné projektu kupředu,
se využít této adrese zde, pokud chcete, aby si přečetli na formalitách PHP.
Je to vlastně jako bezplatný on-line učebnici efektivně,
a budete také zjistíte, že to, co je opravdu hezké o PHP
je to, že existují stovky funkcí, které přicházejí s tím,
vzhledem k tomu, v C jste nutně mít přístup k
více funkcí, než bylo v matematické knihovně, CS50 knihovna.
V PHP a mnoho moderních jazyků, Python a Ruby mezi nimi,
získáte přístup k tolika dalším funkcím, které znamená, že si psát
mnohem méně kódu, protože můžete stojí na ramenou jiných lidí
kteří již bylo napsáno určité věci pro vás.
>> Pojďme se rychlou prohlídku syntaxi PHP a pak napsat pár příkladů.
Co je hezké o PHP v první řadě
je tam to není hlavní funkce.
Pokud chcete napsat program v PHP stačí začít psát kód,
a nemusíte se starat o hlavní.
Není int. Tam to není návratu.
Není argv, argc, že ​​je nutné při psaní programu.
Spíše stačí začít psát kód, a to v části
protože PHP je to, co se nazývá interpretovaný jazyk.
C byl sestaven, a to byl sestaven v tom smyslu, že začnete
se zdrojovým kódem, spusťte jej přes Clang, což je kompilátor,
a nakonec po nějakém počtu kroků získáte objektový kód, 0s a 1s.
PHP a Python a Ruby a Pearl a další
jsou různé druhy jazyků, ve které nesestavují je.
Nemusíte jít od zdrojového kódu na 0s a 1s.
Stačí spustit zdrojový kód, a spustit zdrojový kód
písemně v obvyklé textového souboru, končit. php v tomto případě
místo. c, a to, co program dělá na počítači
je to doslova interpretuje svůj kód řádek po řádku po řádku.
>> Jinými slovy, spíše než napsat program a program spustit
přímo, místo toho napsat program s soubor s koncovkou v. php.
Pak spustíte vlastní program s názvem php.exe, pokud jste na Windows,
nebo jen PHP, pokud jste na Mac OS nebo Linux,
a poskytují jako vstup do programu PHP vlastní zdrojový kód,
a jeho účel v životě je číst kód shora dolů, zleva doprava,
a to co jste to řekl, aby dělal.
>> Pojďme se podívat, co to bude znamenat syntakticky.
V PHP máme podmínky.
Tento snímek je totožný s tím, co jste viděli zpátky v týdnu 1
protože syntakticky podmínky, IFS a jinde IFS a jinde v PHP
vypadat přesně takhle.
Pokud jde o booleovských výrazů jdou vypadat přesně takhle.
Pokud jde o anding věci společně jako booleans to bude vypadat přesně takhle.
Přepíná vypadají stejně, a získáte navíc tu výhodu, v PHP
že spínače v C by mohly přejít pouze na char nebo int.
Dalo by se to přejít na hodnotu řetězce.
V PHP můžete skutečně výraz
že je proměnná, jejíž obsah je řetězec,
a můžete skutečně udělat porovnání řetězců v reálném intuitivním způsobem,
není ukazatel srovnání, aby bylo možno rozhodnout, zda chcete věc i nebo j, nebo něco jiného.
Uvidíme, že potenciálně zanedlouho.
>> Smyčky příliš nádherně, jsou stejné.
Pro smyčky mají inicializaci, což je podmínka, a určitý počet aktualizací.
Zatímco smyčky také existují v PHP.
Do while také existují v PHP,
a pole existují v PHP, ale tady je místo, kde syntaxe začíná být trochu jiný,
ale tyto pojmy jsou stejné, a pojmy jsou opravdu stejné
jako tomu bylo v týdnu 0 se Scratch.
V první řadě je $ sign.
To byl návrh rozhodnutí v PHP podle něhož všechny proměnné
v PHP design začíná znakem $.
Není víc X, Y, Z. Nyní je $ X, Y $, $ Z jen proto, že.
Je to něco, co mít na paměti, a nyní na pravé straně
to vypadá podobně jako pole,
ale my jsme se pomocí hranatých závorek zde.
V PHP a JavaScriptu, jak budeme nakonec vidět,
deklarovat pole, které dělat otevřenou hranatou závorku a zavřel hranatou závorku,
a pak máte čárkou oddělený seznam hodnot, ať už ints
nebo řetězce nebo písmen, co chcete, v této výrazu tam.
>> Nyní, jak jsme něco takového v C?
Co bylo syntaxe pro staticky deklarovat pole známých čísel?
To bylo složené závorky, tak malý rozdíl zde, ale v obou PHP
a nakonec JavaScript, pouze využívá hranaté závorky, takže opravdu
jediný zajímavý detail je zde $ znak pro název proměnné
a také hranaté závorky, a tam je jedna divná věc
, která byla vynechána i na levé straně znak =.
Co chybí, že jsme se vyžaduje několik týdnů? Jo.
[Neslyšitelné Student odpověď]
Velikost, takže žádná zmínka o velikost pole.
Upřímně řečeno, neexistuje žádná zmínka o hranatých závorkách na levé straně
označení =, a co jiného chybí z linky?
Jo. >> [Neslyšitelné Student odpověď]
Typ, takže to, co je zajímavé zejména o PHP
je to, že se nejedná o silně typový jazyk jako C,
a že je silně zadali v tom smyslu, že je třeba říci char,
musíte říct int, musíte říct float.
>> Kdykoliv budete chtít proměnnou musíš říct řinčet co jeho typ.
PHP je trochu línější.
Je to volně zadali v tom smyslu, že
můžete mít plováky a připaluje a řetězce
a ints a tak dále, ale jazyk sám
opravdu není jedno, co si dát dovnitř proměnné.
Nemusíte informovat v předstihu, co datový typ
se děje v proměnné.
Je to zcela na vás, tak to je pěkný
v tom, že nemusíte mít strach, jak moc o údaje psaní
a obav, jaké jsou vaše argumenty jsou, a tak dále.
To také znamená, případně funkce v PHP se bude moci vrátit
buď int většinu času, a možná jednou za čas
se vrátím bool, a false, například znamenat, že se něco pokazilo.
To nám dává nějaké upsides, ale také nám umožní druh záměrné
trochu línější, pokud jde o datové psaní.
>> Co jiného je tam mít na paměti, tady?
Proměnné vypadají docela líbí, takže $ s = "hello, world."
To je snad inferable z předchozího příkladu,
a máme jiný typ smyčky.
Tenhle budeme skutečně vidět jednou za čas, protože je to docela šikovný,
foreach konstrukce.
V tomto případě, je smyčka foreach se uvnitř svých slov závorce 3 typicky,
$ Něco první, což je to, co pole chceš iteraci členy,
pak doslova klíčové slovo jako, a pak konečně,
další proměnné jméno, které dostanete na výběr.
To může být foo, bar, nebo prvek,
a co tento konstrukt dělá
je-li $ pole obsahuje 10 prvků
na každé iteraci tohoto pole-líto, na každé iteraci tohoto cyklu
proměnná nazývá prvek bude aktualizován
být první element v poli, pak druhý prvek v poli,
pak třetí prvek pole, a tím odstraňuje potřebu
dělat něco otravného hranatá závorka notaci a
$ I, aby se index do pole.
PHP dělá všechny, které pracují pro vás a na každé iteraci
Jen podá vám další prvek z pole
aniž byste museli znát nebo se starat o jeho číselné umístění indexu.
>> A pak konečně, pro teď, je tu ještě jedna další rys PHP
že to bude velmi užitečné, zvláště když jsme se začít s programováním na webu,
a to je známé jako asociativní pole.
V pole, které známe, tedy pokud jde o 20 sekund před
a za posledních 8 týdnů jsou číselně indexované pole,
druh tradičních polí, kde indexy jsou ints,
0, 1, 2, úplně nahoru.
Asociativní pole jsou mnohem silnější.
Ty vám umožní mít libovolné klávesy,
libovolné indexy a libovolné hodnoty.
Zatímco v tradičním pole je 0, 1, 2,
v asociativním poli můžete mít index
nebo klíč foo, jejichž hodnota je bar.
Pak můžete mít jiný klíč, jehož jméno je baz a jejichž hodnota je qux.
>> Opět platí, že hloupé počítačové vědy druhové názvy proměnných zde,
ale jde o to, že tato pole nemá držák 0 nebo konzolou 1.
Je to místo bude mít držáku foo a konzoly Baz.
To je mnohem více univerzální v tom, že budeme mít možnost spojit
slova s ​​jinými slovy, klíče s hodnotami zcela svévolně,
a budeme mít možnost získat tyto hodnoty zpět v konstantním čase
protože pod pokličku toho, co asociativní pole
opravdu je hash tabulka.
Připomeňme, že hash tabulky umožňuje, aby v některých vstupů
jako dal ve slově Davida, pokud chcete vložit Davida do nějakého slovníku,
a pak se vrátit nějakou hodnotu obvykle.
V případě speller, true nebo false.
David nebo cokoliv slovo nebo není ve slovníku.
Asociativní pole je opravdu jen hash tabulky,
ale je to mnohem více uživatelsky přívětivé ztělesnění toho.
Jak uvidíme, bude to, které nám umožní dělat některé věci
velmi, velmi snadno.
>> Pojďme se podívat na nějaké základní PHP
Příklady a uvidíme, co můžeme udělat s tímto jazykem.
Nech mě jít napřed a otevřít v našem zdrojovém adresáři dnes
soubor s názvem hello1.php.
Tento soubor je další komentář, než je skutečný kód,
tak ať mi skutečně odstranit všechny připomínky ze souboru
a předloží vám možná nejjednodušší PHP programu tady.
5 řádků, a některé z nich jsou prázdné místo,
takže zaznamenáte některé klíčové rozdíly zde.
Soubor se jmenuje hello1.php.
První řádek, když je <? Php.
Podobný v duchu do HTML,
že posloupnost znaků řekne počítači
"Hej, počítač, tady je program jsme v PHP."
To je jistý, že to není zmatený, že je to nějaký jiný jazyk.
Linka 2 je zajímavý bílý prostor.
Linka 3 je náš starý přítel printf,
tentokrát v souvislosti s PHP.
PHP má vlastní verzi printf, která se chová úplně stejně,
takže je to jen bude tisknout "Hello, world".
A pak to opak tag tady,>, znamená to, že je to pro mé PHP kódu.
>> Pojďme se podívat, jak spustit tento.
Chystám se vrátit do svého terminálovém okně zde.
Chystám se jít do mého PHP adresáře.
Všimněte si, že máme spoustu souborů, první z nichž jeden je hello.php.
Nech mě jít napřed a spustit tento, hello1.php, zadejte.
Přístup odepřen. Dobře.
Jak jsme pevně věci, jako je tento v minulosti?
Co je to? >> [Neslyšitelné Student odpověď]
Potřebujeme číst a psát, ale nech mě to udělat ls-l.
Označit tuto poněkud záhadný výstup podle něhož hello1
Zdá se, že číst a zapisovat mně
ale čitelné všemi ostatními.
Ukázalo se, že to ve skutečnosti není krok správným směrem.
Rozdíl, opět s interpretovaný jazyk
se nemusíte spouštět program přímo.
Byste místo toho použít tlumočníka a předat jej kódu
že jste napsali tak to může interpretovat je řádek po řádku.
V tomto případě, tlumočníka nebo program, který jsem ve skutečnosti chcete spustit
je doslova nazývá PHP.
>> Někde na tomto disku spotřebiče je program,
někdo jiný napsal jen PHP nebo Windows php.exe.
Co budu dělat, je zde budu skutečně spustit PHP
ale dát to jako argument příkazového řádku kódu, který jsem napsal,
a pak budu oddálit a stiskněte klávesu Enter.
To běží můj program mi, shora dolů, zleva doprava.
Nech mě jít napřed a otevřít mírný rozptyl tohoto.
V hello2.php oznámení, že to taky
je většinou připomínky, tak mi dovolte zbavit těch jako rozptýlení,
a to, co je jasně odlišné nyní o tomto souboru?
Tam je to nová řada, poněkud tajemná nahoře.
V řádku 1 je #! / Bin / php.
Bin je úmluva o Linuxu a Mac OS pro binární soubory,
tak / bin znamená, že tento je složka obsahující spoustu binárek
, který je naprogramován, z nichž jedna je PHP.
#! je přezdíval shebang,
který je rychlý způsob, jak to říct, a co to znamená
je, že při spuštění tohoto programu teď tam náznak v horní části souboru
, která říká počítači, co interpret použít.
>> To je trochu nepříjemné, pokud jste měli říct svým uživatelům a vaše zákazníky
"Hele, my napsal tento program s názvem hello1.php."
Jediné, co musíte udělat, je navždy spustit PHP a pak název tohoto programu.
Upřímně řečeno, bylo by to prostě být hezčí spustit hello1.php,
a skutečně, můžeme-li se provést následující kroky.
Nech mě jít dál a dělat ls-l, a všimněte si, v hello2 je to pořád jen číst psát
a pak si přečtěte číst, tak jsem si ještě udělat, hello2.php.
Ale jsme zavedli to někdy tak krátce minule, příkaz chmod.
Pokud jsem to chmod a + x, což znamená, že všechny Plus vykonatelnosti,
a pak hello2.php a pak se ls-l opět všimnout, co se změnilo.
Jeden, Linux je mi ukázal název souboru v zelené sdělit myšlenku,
že je to spustitelný, ale ještě důležitější je, na levé straně
Všimněte si, že bit reprezentovat x pro spustitelný soubor je nyní nastavena.
Co to teď znamená, můžu běžet ./hello2.php jako obvykle,
zmáčkněte Enter, a to z důvodu shebang na velmi začátek souboru
to je náznak, znovu, Linux, která říká,
použít tento interpret spustit tento soubor.
Nedělejte si starosti nutit uživatele, aby skutečně psát.
>> A co je hezké teď je to tak trochu irelevantní pro moje zákazníky nebo moji přátelé
jaký jazyk jsem napsal tento program, takže můžu pokračovat s MV
a přejmenovat věc hello2, například.
A teď když to udělám ./hello2
a oddálit můj program běží.
Tyto přípony souborů jsou lidské konvence, která je nezbytná
něco jako Clang a dělat, kteří hledají pro ně.
Ale pro PHP, mohl bych zavolat tuto příponu, co chci.
Mohl bych přimět svět, aby si mysleli, že jsem opravdu dobrý Ruby,
a já jsem mohl psát hello2.rb a pak spustit to,
a voila, teď mám verzi Ruby, která je úplná lež.
Ale přípony souborů jsou bezvýznamné
v případě, že je soubor spustitelný a má tento speciální náznak v horní části souboru.
>> Nyní, stejně jako stranou, dovolte mi ukázat vám rychle verze 3,
která je trochu užitečný trik vědět.
V hello3 jsem něco trochu špatně
že budu aktualizovat zdrojový kód online.
Ve verzi 3 se ukáže, že na většině linuxových počítačů
je tu program s názvem env pro životní prostředí,
a co můžete udělat je, pokud máte tušení, kde PHP
je nainstalován na místním pevném disku, protože to opravdu může lišit v závislosti na počítači
že někdo používá, env jen říká, spustit env,
který je na většině systémů, a zjistit, kde je PHP.
Jen běžný trik, takže nemusíte mít strach o to zjistit, kde je program.
Ale pokud si pozor, aby zjistili, kde je program a vy jste nestaral tak daleko
můžete použít příkaz, který.
>> Dovolte mi, abych oddálit a typ, který php,
a všimněte si, že mi říká, že je to vlastně v usr / bin / php.
Je to trochu lež. Je to také v přihrádce.
Je to prostě ukazuje mi první hit.
Pokud jste se někdy nad tím, kde je zvonění, které zvonění, to je v usr / bin / řinčet,
které tvoří, usr / bin / make, a co to znamená je po celou tu dobu
jste mohli být psaní usr / bin / řinčet zadejte spustit řinčet,
ale je to docela únavné k tomu, že, takže některé složky
jako usr / bin a bin jsou považovány za výchozí
takže počítač ví, hledat v nich pro vás.
Jakékoliv dotazy týkající se psaní super, super jednoduchý Hello World program
v PHP a necháte jej?
Vzhledem k tomu, teď začneme zavádět přesvědčivý syntaxi.
Dobře, jdeme na to.
Tyto programy jsme viděli skutečně všechny z nich před.
>> Pokud jsem otevřít, například, pojďme udělat beer1.php,
nepůjdeme přes několik verzí, ale to, co jsem udělal
byl jsem si sedl a nalil, nebo převést
můj C kód PHP kód zde.
Většina z horní části souboru je komentáře nahoru.
Ukázalo se, že je tu ještě jedna nová funkce musíme nazývá readline.
GetString, stažení, z týden 0 kupředu byl CS50 věc.
PHP přichází s vlastní uživatelsky příjemný funkci nazvanou readline
že trvá 1 argument, který určuje řádku
které chcete zobrazit na uživatele, a to, co dělá readline
je vrátí bez ohledu uživatel zadá v.
V tomto případě, jsem deklarování proměnné s názvem $ n.
Jsem skladování v něm návratovou hodnotu readline
po výzvě uživatele s tímto řetězcem.
Jen pro zálohování, skutečně spustit tuto věc, nech mě jít napřed
a spustit php beer1.php.
Kolik lahví bude? Udělejme 2 tentokrát.
Enter. To je vše.
>> Program je funkčně shodný s verzí C od týdny.
Ale syntakticky pojďme podívat, co je odlišné.
Poté, co jsem si int z uživatelského oznámení, že dělám nějakou kontrolu chyb,
a pokud je n menší než 1 jsem přestal a já vytisknout
Omlouvám zpráva pro uživatele a výstup s 1.
I to je trochu jiný.
V C co jsme udělali? V jazyce C jsme se vrátili 1.
V PHP můžete ukončit, 1, které upřímně řečeno je myslím trochu více intuitivní
proto, že jste doslova ukončení programu.
Dobře, a pak sem otravné píseň je totožný syntakticky
kromě proměnné, takže se zde v souladu 24 vpřed
všimnete moji duši pro smyčce je téměř stejný,
ale mám $ před i a n,
a co je také chybí linky 26, které jsme měli v minulosti
při deklarování proměnné i?
Tam je žádný typ.
Je nesprávné v PHP říci int.
Vy prostě musíte udělat, že.
Počítač, interpret PHP je dost chytrý na to, aby si uvědomit,
že pokud vložíte číslo $ I to bude léčit
jako číslo pro vás.
A pak se tady připojit $ i, $ i, $ i - 1.
To vše je stejné, a pak tady dole budeme dělat "Wow, to je nepříjemné" printf
a poté ukončete (0).
>> Opět, stánek s jídlem je, že i když budeme trávit poměrně
málo času na PHP, jistě versus to, co jsme udělali na C,
je to téměř stejné, a tak to, co budeme dnes dělat a příští týden
a dále je zaměřena opravdu na některé z nových myšlenek.
Jen vidět, že jedna věc se přeložit přes od C,
to bylo super jednoduchý program, který jsme dělali v 1. týdne
nebo 2, které kostičky hodnotu.
Ale co bylo zajímavé, v době, kdy o tomto programu je to, že
zavedl i pojem vlastní písemného funkce, kterou jsme sami napsali.
Syntaxe v PHP je téměř stejný.
Tady je můj program do horní.
Všimněte si opět chybí, je nějaké ponětí o hlavní.
I začít psát kód, a to je to, co se děje, aby si vykonán tlumočníka.
I vytisknout x je nyní 2, pravděpodobně.
Pak jsem tvrdit, Cubing ...
Pak jsem volat krychle funkce a předat $ x
a přiřadit návratovou hodnotu $ x.
Pak jsem tvrdit, že je to kostičky, a pak jsem řekl to, které snad
bude říkat x je nyní 8.
Syntaxe funkce v PHP je někdy tak trochu jinak.
Opět chybí, je návratový typ.
Opět chybí, je návratový typ a také chybí, je to, co jiný typ?
[Neslyšitelné Student odpověď]
No, jo, to je dobrý. Vraťme se k tomu v druhém.
>> Nemáme například int zde.
Nechceme, například, že int zde proto, opět v PHP
prostě nemusíte, a to neměl dělat, že,
ale tam je to nové klíčové slovo volaná funkce.
V PHP je to skoro trochu jasnější, protože pokud chcete funkci
jste doslova řekl funkci, dáte mu jméno a pak čárkami oddělený seznam
jestliže některý z jejích argumentů.
Není třeba říkat, neplatné nebo něco podobného, ​​že, a pak návrat je stejný,
$ * $ * $.
Co je také chybí? Sammy upozornil tento tady.
V horní části souboru zcela chybí v PHP je také prototyp.
I to je záměrné.
Jazyky a tlumočníci, jako PHP jsou chytřejší než C kdy byl
v kompilátory jako Clang.
>> Připomeňme, že zvonit, pokud jste neřekl to, že krychli existuje,
pokud jste si sdělit, že printf existuje jako s prototypem
nebo # include, dobře, to bude řvát na vás a ani kompilaci kódu.
PHP a další moderní jazyky jsou mnohem chytřejší, když přijde na tohle.
Budou mít to na sobě přečíst všechny vaše kódu
a pak křičet na vás pouze tehdy, pokud zjistí, že krychle nikde.
Nezáleží na tom, jestli je kostka na dně nebo horní, nebo dokonce v některých samostatném souboru.
PHP a podobné jazyky jsou nyní dost chytří na to dívat dopředu
na všechno, co před považovaly vás jak mít udělal chybu.
Pokud nám tedy zbývá?
>> Pojďme udělat poslední příklad tady v podmínkách,
a když jsem otevřít conditions2.php oznámení příliš
Syntaxe je zde téměř stejný.
Já používám readline místo GetString, ale že linka je stejná jako dříve,
"Rád bych číslo prosím."
Pak jsem mít, pokud podmínku, else if, a pak jiný,
ale funkčně je tento program také totožné s tím, co jsme dělali před několika týdny,
takže když jsem spustit tuto věc, PHP conditions2,
a dám mu číslo jako 23 -
Vybral jsem si kladné číslo. Pokud dám, že -1 Vybral jsem si záporné číslo.
Pokud dám, že jsem opravdu vybral 0 0.
Takže kdo se zajímá o všechno?
No, jeden z legrace druhu cvičení zde
aspoň pro mě bylo vrátit se zpátky a uvidíte, jak rychle bych mohl implementovat PSet 5,
pravopisné chyby Pset.
Připomeňme si, že tam byl tento soubor s názvem speller.c,
a tam byl soubor s názvem dictionary.c.
Co jsem udělal, bylo mi trochu strávil několik minut a já jsem konvertoval kód C
ke kódu PHP, a nebudeme trávit tolik času na speller
protože stejně jako v PSet 5 jste opravdu potřebujete
tráví hodně času na speller sám, protože vaše pozornost byla na slovníku.
>> Postačí, když řeknu, že pokud budete číst přes speller,
tento soubor zde, je to docela hodně odpovídá kódu C
jsme vám dali za PSet 5.
Právě jsem přidal nějaké $ místech.
Změnil jsem některé názvy funkcí v případě, že neexistovala v PHP.
Je tu ještě jedna další věc tady, preg_match,
což je trochu obsáhlejší způsob, jak dělat něco, ale vrátíme se, že nakonec.
Ale ve zkratce, pravopisu je téměř totožné, a když se podíváte na samém dně
to, co se nakonec vyplivne je to tady,
slova chybně, slova ve slovech slovníku, v textu.
Dobře, takže to, co je zajímavé, je nyní následující.
V horní části mého souboru jsem vyžadující dictionary.php.
Stejně jako C je # include PHP má speciální funkci nazvanou vyžadují
že skoro dělá to samé, vyžadují soubor s názvem dictionary.php.
Jak mohu jít o implementaci PSet 5?
Nech mě jít dál a otevřít soubor zde.
Dovolte mi, abych trochu odkaz zde.
A dovolte mi vytvořit nový soubor a začít volat tento dictionary.php.
Dovolte mi, abych dal jej do jiné složky, takže můžeme udělat žít.
A teď budu Zoom
Chystám se začít můj PHP soubor s otevřeným držákem php uzavřen držák.
A pak tady bylo několik funkcí, které jsem potřeboval k provedení pro PSet 5,
tak mi dovolte začít provádět některé z těch,
tak kontrola funkce, který měl vzít slovo jako argument.
Uděláme to a vrátit se k němu za chvíli.
>> Tam byl zatížení pro funkci, která se v čem jako argument?
Slovník, takže soubor, který jsem vlastně chtěl načíst.
Tam byl funkce velikosti, která nepřijala žádné argumenty
a tam byl na funkci, co byla ta druhá?
Uvolnit, která nepřijala žádné argumenty ani.
Jedná se o 4 funkce, které bych třeba nyní realizovat v PHP,
a to, co budu dělat, je pokračovat a udělat to.
Mnoho z vás používá hash tabulku v PSet 5,
tak nechte mě jít dopředu a vytvořit hash tabulku v PHP.
Hotovo.
To mi dává hash tabulky. No, proč?
Jeden je proměnná s názvem $ table, jen vykouzlit představu hash tabulky.
Hranaté závorky, i když, vzpomínám, představují co?
Pole, ale v polích PHP nemusí být číselně indexované.
Oni mohou také být asociativní pole,
což znamená, že můžete mít libovolné klíče a hodnoty.
>> Stejně jako v PSet 5, ti z vás, kdo to udělal hash tabulky implementace
pravděpodobně zní slovo a pak ji vložil do řetězce propojených seznamů,
nebo jste uložili hodnotu pravého kdesi něco v tom smyslu.
Můžete nějak vzpomněl na skutečnost, že slovo tam byl.
Pro tuto chvíli, že to bude můj hash tabulka,
a tak teď jít o provádění kontrolní funkci
I stačí se podívat dovnitř tohoto hash tabulky
a uvidíme, jestli slovo je tam.
Co budu dělat, je, že řeknu-li,
řekněme isset, což je PHP funkce, která doslova znamená, klíčů,
tak isset ($ tabulka [$ slovo],
a pokud ano, vrátí hodnotu true.
To je všechno. To je Pset 5 v PHP.
No, ve spravedlnost, v pořádku.
Else vrátí false, tak to tam není.
Co se opravdu děje?
No, pokud tabulka nebo hash table zde obecně-
je asociativní pole, které znamená, že můžete index do něj
se slovem jako "slovo", a budete muset vrátit nějakou hodnotu.
>> Jsme trochu dostat o krok napřed před sebe.
To by bylo docela pěkné, kdybychom skutečně načten soubor nejprve,
takže zatížení není tak jednoduché, ale nechte mě jít dopředu a vybičovat
Opravdu rychlá implementace zatížení.
Nech mě jít dál a říct, slova, dostane soubor slovník.
Soubor funkce v PHP otevře soubor
a vrátí se do tebe pole všech slov v tomto souboru,
Jen podá je na vás.
To byla velká bolest taky, ne?
Nyní foreach, tohle je náš nový konstrukt, foreach ($ slova jako $ slovo).
Tato smyčka se začnou iterace se pole slova
a přiřadit k $ slovo proměnné každé slovo v souboru
od prvního do druhého na třetí až čtvrté celou cestu
takže nemám dělat nepříjemné [i] notaci a podobně.
A to, co jsem prostě dělat pro každou z těchto slov
je uložte jej ve svém tabulce indexování do tabulky
a pak dělá pravda, protože si pamatovat
že slovo je v mém slovníku, vše co opravdu musíte udělat,
je druh otočit a trochu říkají, že toto slovo v mém hašovací tabulce je tam, pravda.
A pokud to tam není, nemám explicitně dát false,
jinak bych musel dát false ve všech možných slov ve vesmíru.
>> To stačí, mě jen nastavit hodnoty indexu
jako pravdivé, pokud slovo je vlastně v mém tabulky hash.
Teď jsem řezání pár zatáček sem, že budu mávat rukama na teď,
ale nyní zatížení funkce je hotovo.
I načíst všechna slova ze souboru do pole.
I iteraci tohoto pole, a pro každé slovo v poli
I zapojte ho do hash tabulky s 1 řádek kódu.
To je legrace. Víte, jak můžeme realizovat velikost teď?
No, velikost je vždy docela snadné, ve spravedlnost.
Zde se můžeme prostě vrátit počet tabulky.
To je docela snadné i spočítat počet věcí v tabulce.
To je vlastně docela není nejúčinnější.
Asi bych měla mít proměnnou s názvem velikosti, takže můžeme udělat
v konstantním čase, ale to je docela snadné.
Oh, a potom uvolněte, pokud skutečně chceme být anální zde
můžeme říci, že to, jak se uvolnit něco.
Stačí nastavit proměnnou rovnající se prázdné pole,
a zbaví všeho, co tam byl.
Není třeba volat zdarma.
>> Opět, jsem uřezal některé rohy, a omlouváme se za sadu problém přidělování 5
snad v C, ale pokud nyní pokračovat a spustit to,
Chystám se skutečně spustit verzi, která jsem napsal v předstihu
jen proto, že jsem neměl žádné syntaktické chyby vůbec.
Nech mě jít napřed a spustit pravopisu. Použití je stejné.
Zde je slovník soubor, který najdete jen slovo foo.
Zde je textový soubor, který najdete jen foo bar.
Pojďme kontrolu pravopisu tento, tak pravopisu, pomocí tohoto slovníku soubor na tomto textovém souboru.
Je tu ještě jedna chybně napsané slovo, bar, a voila.
Hotovo s PSet 5.
Pojďme se 5-minut přestávku tady, a vrátíme se a více na PHP.
Dobře, jsme zpátky.
Pojďme si-mě nenávidí za chvíli.
Pojďme se nyní skutečně uvidíme, jestli to není pozitivní
skutečně provádí tuto věc v PHP.
Dejme tomu, že trvalo 45 sekund na provedení.
>> Ale pojďme pokračovat nyní běží věci.
Nech mě jít napřed a spustit verzi C
z speller, a budeme jej spustit na jednom z největších souborů,
který je King James Bible.
A to je zde v-pojďme do našeho adresáře C,
speller na krále Jakuba 5th.
Mnoho slovy s chybným.
Dobře, tak to je výstup, který pravděpodobně dostal, i když časy se trochu liší,
pokud máš všechno funguje správně, a tak čas v celkové kontrolu pravopisu
Král James Bible byl 0,38 sekundy, takže docela dobrá použití této implementace.
Teď mě nech jít do verze PHP, které jsme právě napsali.
Dovolte mi, abych spustit pravopisu na krále Jakuba.
Jejda, ignorovat tuto chybu. Jsem ve špatném adresáři.
Speller na krále Jakuba 5th.
Téměř hotovo.
>> Dobře, bude vychytralý pozorovatel si uvědomit, že je více než 3 sekundy tam.
To je pravda, doba chodu.
Ukazuje se, že to chvíli trvá, plivat spoustu textu z
protože ukládání do vyrovnávací paměti problémy, ale dlouhý příběh krátký,
to bylo 3,15 sekund strojového času, CPU času,
versus to, co bylo před chvílí?
Jako 0.3.
Myslím, že je to o řád pomalejší, tak kde je to
směšné zpomalení přichází?
No, jak tomu bylo v případě s většinou všech konstrukční rozhodnutí, které jsme udělali
ve třídě během posledních 9 týdnů je to téměř vždy to kompromis.
Někdy mezi jen prostorem, někdy mezi prostorem a časem,
prostor, čas a vývoj úsilí, a opravdu tady, i když
jsme uložili obrovské množství času, možná potenciálně 10-20-30 hodin
rozvojové času provádí kontrolu pravopisu
od bičování ji v pouhých 45 sekund s tímto jazykem
cenou, kterou platíme, je, že je to o řád pomalejší v důsledku,
a to je obvykle případ s většinou všech interpretovaný jazyk,
PHP, Python, Ruby, Pearl nebo jiné rámci kterého
pokud se chystáte spustit prostřednictvím tlumočníka a mít to číst kód
řádek po řádku, shora dolů, zleva doprava,
že zprostředkovatel bude nějakou dobu trvat jeho vlastní,
a to, co jste cítili tu ve 3 sekundách, na rozdíl od 0,3 sekundy
je skutečnost, že je tento prostředníka, který má na doslova interpretovat náš kód
řádek po řádku, a nedej bože, pokud jste uvnitř smyčky
s velkým souborem obsahujícím stovky tisíc slov.
>> To režie se chystá sečíst a sčítají a sčítají a sčítají.
Pro nástroj, jako je tento, že to asi není nejlepší jazyk použít pro realizaci
spell checker, pokud bezprostřednosti je v zájmu uživatele a pro vás.
Ale luxus máme za chvíli je, pokud
používat jazyk jako PHP nebo hodně interpretovaných jazyků
v souvislosti s Web, v tomto případě, máte výhodu
že internet je mnohem pomalejší, než většina počítačů.
Máte GHz CPU v počítači, 2 GHz, možná dokonce více v těchto dnech.
Ale realita je na internetu je vysoká částka latence
přičemž pro prohlížeč mluvit na serveru, i když jsme to viděli minulý týden
, že je to docela rychle, polovina milisekundu nebo tak,
to taky přidává do, a pokud jste stahování věci jako obraz
nebo fotografie Facebook nebo získání okamžitých zpráv přes klábosení Facebook,
Gchat nebo podobně, všechny tyto zpáteční časy
mezi prohlížečem a serverem začátkem přidat až,
který dělá vaše konkrétní výběr jazyka v mnoha případech
ne všichni, že relevantní, tak jsi v pohodě pomocí mírně pomalejší jazyk
jako PHP nebo Python nebo Ruby
ale pro které existují obrovské upsides pro vás a vaše kolegy
a vaši přátelé, protože můžete realizovat věci tak, tak mnohem rychlejší.
A navíc, máte mnohem menší riziko určitých bezpečnostních nedostatků.
Je tu žádné ukazatele v PHP.
Nejsou tu žádné SEG poruchy, které lze snadno vyvolat
stejným způsobem byste mohli v C.
S C jsi velmi blízko k hardwaru.
S PHP a podobných jazycích jste trochu vyšší úrovni, abych tak řekl,
s mnoha obrany mezi vámi a tím, co se vlastně děje
uvnitř stroje, a je to jen kompromis.
>> Jsme se dostali do bodu, mít tyto modernější, jazyky vysoké úrovně
jako PHP, protože z poučení v jazycích, jako je PHP v C.
Ale pokud nechcete pochopit, co se děje na pod pokličku celou dobu
určitě nemůže dělat správná rozhodnutí designu,
a určitě, pokud jde o práci v místě, jako je Facebook nebo Google
nebo některé z těchto míst, která jsou stále hraje s velkými dat
i když jdete zpět a to medik a pracuje s nějakou MD
na některých velkých souboru dat, která zahrnovala pacienty a lékaře
a jako ty správné nástroje je velmi přesvědčivý
protože jinak vaše analýza nějakého datového souboru může trvat sekund,
nebo to může doslova trvat hodiny.
To je jen jeden příklad, ne bránit vás s tím, jak mnohem více úsilí
to bylo v C, ale které vám pomohou uvědomit, že když se implementovat něco v C
opravdu rozumíte, nebo teoreticky, opravdu pochopit,
jak všechno je nebo by mělo být pracovat, a máte téměř plnou kontrolu
nad tím, co se děje pod kapotou, a s těmito jazycích vyšší úrovně
budete muset vzdát větší kontrolu k lidem, kteří vymysleli je
a jsou předmětem více jejich konstrukčních rozhodnutí než ta vaše.
Ale pokud bereme za samozřejmé, že výkon
není tak důležité, na webu, protože z těchto dalších otázek,
jen síťové rychlosti jsou trochu pomalejší, než CPU rychlosti tak,
takže můžeme nějak dovolit, mírně pomalejší jazyk
pokud upsides jsme se může vyvinout věci 10 krát rychlejší, nebo dokonce více.
>> Pojďme se podívat, jak se můžeme začít používat to.
Nech mě jít do složky
mezi dnešními příklady tzv. frosh.ims,
a to bylo skutečně osobně motivováni tím, že první věc
Jsem napsal pro web lety po nástupu CS50 CS51 a
byl web pro program Frosh Chatu, prváka sálový sport,
který v té době to bylo dost lety, že v té době
tam byl žádné webové stránky pro program, i když tam byl Web,
a místo toho tam byl proctor v Wigglesworth přičemž pokud byste chtěli
k registraci pro volejbal nebo fotbal nebo co byste vyplnit kus papíru.
Ty by pak pěšky přes dvůr.
Ty by pak zaklepat na dveře a skluzavka v jejich dveřích nebo ručně do Proctor
kus papíru s vaším jménem na to, zda chcete nebo nechcete, aby se kapitán týmu,
Jaký sport jste chtěl dělat, a co koleji jsi byl palců
Bylo to trochu staré školy způsobem, jak dělat věci, a to bylo hlavním
možnost automatizovat mnoho tohoto procesu.
Stačí přejít na webových stránkách. Ty něco psát a.
Zde získáte e-mailem potvrzení, a bum, máte hotovo.
>> To byl úplně první věc, kterou jsem udělal, když v jazyce s názvem Pearl,
ale je to relativně snadné udělat v PHP, a to je trochu zástupce
z problémů, můžete začít řešit, když se můžete vyjádřit
programově a nemusí spoléhat na věci, jako stránkách Google
nebo Excel nebo nástroje, které budou předány na vás.
Vy nyní máte možnost dělat věci, jako je tento.
To je super ošklivý verze formě,
ale pojďme použijte ho na začátku rozhovoru, kdy je to
zhruba to, co vypadalo jako forma lety pro nás
k tomu, aby lidé na webu se přihlásit k Frosh PI.
Zeptali jsme se na jméno, zaškrtávací políčko za to, zda nebo ne oni chtěli být kapitánem,
muž nebo žena, a pak to, co koleji byli v,
a pak by odeslat tento formulář.
Podívejme se nejprve podívat pod kapotu na kódu HTML, který reprezentuje tuto webovou stránku.
Nech mě jít do froshims0,
a jako stranou, pro PSet 7 beru jako samozřejmost
adresáře a složky, které dávám věci dovnitř
Budeme vás provede přesně tam, kde věci musí jít do spotřebiče,
který mod příkazy budete muset spustit, takže se nemusíte starat o všechny
hloupé detaily synchronizace od samého počátku zde.
>> Dobře, tady je froshims0.php.
Dovolte mi, abych přejděte dolů, a to, co je zvědavý tady,
to je PHP soubor, ale to, co je uvnitř ní, jasně?
Je to mnohem HTML, a opravdu, původ PHP
byly opravdu za to, že Web-centric jazyk.
Před chvílí jsme ji k implementaci pivo příklad,
podmínky příklad, ahoj příklad, a to je v pořádku.
Můžete použít PHP jako skriptovací jazyk
kde je skript opravdu jen nomenklaturu k rychlému a špinavé programu
nebo něco, co píšete v napsaném nebo obecněji interpretovaný jazyk.
PHP je super užitečná pro, protože jste viděli, jak rychle
poměrně můžeme vybičovat programy v PHP.
Ale to bylo skutečně určeny k použití pro web,
a určené pro web v tom smyslu, že si všimnout tady v horní části souboru
Já začít s <? Php.
Pak mám spoustu zbytečných komentářů, udělených, ale pak jsem blízko PHP režim.
Ale pak jsem spadnout do režimu HTML.
>> Co je na tom zajímavé PHP je, i když soubor končí. Php
to je obecně určen pro přimíchané s HTML,
nějaký kód PHP, některé HTML.
A uvidíme, nakonec, že ​​můžeme začít dráždit ty od sebe
a aby naše HTML oddělené od našeho PHP úplně,
ale počátky PHP byly opravdu dát vám tento flexibilitu,
že pokud chcete nějaké HTML stačí napsat, a že bude
vyplivnout shodně prohlížeči.
Ale pokud budete potřebovat nějaký programovací techniku,
některé programovací kód, můžete si také dát do stejného souboru přesné, jak brzy uvidíte.
Tady je můj HTML.
Mám titul tohoto pro Frosh PI.
Mám tag body, který má nějakou CSS na to, aby centrum vše uprostřed,
a pak se sem mám formu, která zřejmě bude předložena
do nového souboru s názvem register0.php, tak uvidíme, že za chvíli.
Je to za použití metody zvané příspěvek, který se vrátíme k stejně.
Pak jsem nějaké formuláře vstupy, jeden tzv. jméno, jehož typ je text,
ten, jehož jméno je kapitán, jehož typ je checkbox,
a to jsme neviděli to předtím, ale to dělá přesně to, co říká.
Získáte políčka namísto textového pole.
Tady dole máte přepínač, který je jedním z těch kruhových tlačítek
, které si můžete vybrat buď tenhle nebo že jeden.
>> Všimněte si, že je to úmyslné, že jsem dal oběma přepínacích tlačítek jméno pohlaví.
To je, jak se dostat vzájemné vyloučení, kdy musíte kliknout
buď tento, nebo, že jeden, a kliknutím druhé
to unchecks druhé, takže budete muset dát jim stejný název
pokud chcete, aby se vzájemně vylučují takhle.
A pak na koleji, nemyslím si, že jsme viděli, to ještě, ale je to select menu, drop-down menu.
Tag pro které je select.
Ty pak dávají drop-down menu název,
a pak máte spoustu možností.
První z nich, jen pro estetiku, je prázdný řetězec.
Jen jsem chtěl, aby rozevírací být ve výchozím nastavení prázdné,
a pak je tu Apley, Canaday, Grays, a tak dále.
A všimněte si dichotomii zde.
Možnost v rozevíracím má hodnotu,
ale musí člověk-popisný název, který je v tomto příkladu
je totožný, ale pokud bychom opravdu chtěli být anální bychom mohli mít
hodnota tohoto rozbalovacího být jen krátká verze,
Grays, ale my jsme mohli opravdu říci, Grays Hall, že člověk skutečně vidí,
ale to není všechno, že zajímavé, tak jsem pořád jen jednoduché a udělal z nich totožné.
Pak se v dolní části máme tlačítko předložit
které jsme viděli dříve, ale nevšiml jsem dal jiné slovo.
Místo CS50 hledání jsem dal nálepku "Zaregistrovat".
>> Konečným výsledkem je tato stránka tady, a znovu,
pokud to dostat předloženy?
To dostane předložen do jisté souboru, hodnota atributu action,
který byl register0.php.
Pojďme se podívat, co se vlastně děje tady.
Nech mě jít napřed a vyplnit tento formulář, říkají David,
samec, Matthews, a pak řeknu zaregistrovat.
Dovolte mi, abych oddálit a klikněte na tlačítko registrovat.
Dobře, tak trochu k ničemu, ale pojďme se podívat, co se vlastně děje.
Všimněte si, že URL se změní tak, aby register0.php.
Co je zvědavě chybí z URL, ale, i když jsme jen nám formulář?
[Neslyšitelné Student odpověď]
Dobře, to je jen Chrome je uživatelsky příjemný těchto dnech.
To je ve skutečnosti neexistují. Prostě skrýt, aby se ušetřilo místo.
Ale dobrá myšlenka, dobrá myšlenka.
Ke druhému konci adresy URL, ačkoli, co chybí? Jo.
[Student] Řetězec dotazu.
Řetězec dotazu, tak vzpomínám z našich jednoduchých příkladech vyhledávání Google.
Jakmile jsem klikněte na tlačítko Odeslat URL
mě vzal do Google, ale pak tam byl? q = computer science nebo co jsem napsal dovnitř
To je proto, že jsme použili metodu GET s vyhledávacím příkladu.
>> Tentokrát jsme použili, jakou metodu místo?
Příspěvek, a jeden z bezprostředních rozdíly
mezi get a post je, že příspěvek neklade vstup uživatele v adrese URL.
Skrývá to. To ještě pošle.
Ve skutečnosti, co vidíme v prohlížeči zde, jak budeme odhalit v okamžiku
při pohledu na register0, je, že jsem jen vidět obsah
z pole, které byly předloženy z prohlížeče na server.
Ale URL nemá?, Nemá žádné klíčová slova
nebo hodnoty v něm, a proč je to?
No, po umožňuje podat také data z formuláře na server,
ale to není dát do URL, takže, jaké informace je příspěvek
vhodné zejména pro možná, když se ptáte uživateli
zadejte na vstupu do formy?
Něco jako hesla, něco jako to, co jiného?
Čísla kreditních karet.
Cokoliv, co je mírně citlivá pravděpodobně nebudete chtít končí v URL
i kdyby jen proto, že znamená, že vaše spolubydlící nebo jeho rodinný příslušník může jen troll prostřednictvím
vaše internetové historie a pak doslova vidět vaše hesla,
doslova vidět vaše čísla kreditních karet, protože většina prohlížečů
pamatovat v historii, co URL, které jste byli na,
takže už jen proto, že by to byl špatný nápad.
Použití poštovní kůže, které detailů od uživatele.
>> Také, jak si nahrát fotografie do Facebooku?
No, jen 2 mechanismy si můžete opravdu použít,
i když je tu pár dalších více tajemné ty, je získat a zveřejnit.
Jak se vám možná nahrát fotografii přes adresu URL?
Můžete skutečně udělat.
Můžete si vzít JPEG nebo bitmapy nebo GIF a můžete ji zastupují v šestnáctkové soustavě
nebo něco, co nazývá base 64.
Místo základu 16 můžete použít základní 64, což v podstatě vypadá jako
ASCII znaky, a můžete skutečně nahrát fotografii přes adresu URL
po otazníkem, ale tam jsou obecně omezení velikosti.
Většina prohlížečů nutí URL nesmí být vyšší než 1000 znaků,
možná 2000 znaků nebo podobné, takže není možné nahrát
10 MB Facebook fotografie.
Za to můžete použít místo stejně, takže pro tuto chvíli si dá parametry v URL,
což je hezké a užitečné, někdy, ale pro cokoliv citlivou nebo velký
Příspěvek je způsob, jak jít.
Co je register0 vlastně děláš?
No, když jsem otevřít register0 vědomí, že toto je super jednoduchá stránka,
ale je to ukazuje na skutečnost, že mohu společně mísí, pro lepší nebo pro horší,
HTML s PHP.
Tento celý soubor, s výjimkou připomínky na vrcholu, jsou HTML
s výjimkou toho chlapa tady.
>> Všimněte si uprostřed svého PHP kódu,
v polovině mého HTML, mám jakousi dočasně
vstoupil PHP režimu.
Volám speciální funkci nazvanou tisk r..
To znamená tisk rekurzivní, a to, co dělá, je, že rekurzivně vytiskne
bez ohledu na proměnnou, kterou odevzdejte jej, středník, exit PHP režim.
A pre tag vám pre-formátovaný text,
mono prostor textu tak, aby každý prostor, který skutečně vidět.
To nezmizí. Co je to příspěvek?
No, co je zajímavé a přesvědčivé o PHP
je to, že vždy, když odešlete formulář pomocí GET nebo POST
něco, co je nám pro Vás prohlížeči
PHP samo o sobě vyřeší, co tyto klíčové hodnotové páry jsou,
Údaje, jestli je rovnítka, postavy, jestli je otazník.
To dělá všechnu těžkou práci za vás, a pak to podá vám asociativní pole
obsahující vše, uživatel zadaný do formy.
No, co pole to tato forma má?
>> Měl 4 pole.
Jeden z nich byl textovém poli Název.
Jeden z nich byl checkbox volal kapitán.
Jeden z nich byl přepínač názvem pohlaví,
a jeden byl drop-down menu tzv. koleji,
tak nevšiml, když jsem tisku rekurzivně
Obsah tohoto speciálního proměnné.
Jedná se o speciální globální proměnná nazývá doslova $ _POST, ve všech velkých písmenech.
Jedná se o speciální globální proměnná, která PHP právě pro vás vytvoří
a ruce na vás, takže můžete přístup ke všemu
který byl předložen prostřednictvím formuláře uživatelem.
A tím, že volá tisku r na to, byste se to v běžné aplikace.
Děláme to vidět uvnitř této proměnné,
a co je uvnitř ní, dobře, 4 tlačítka,
4 http parametry, abych tak řekl,
jméno, kapitán, pohlaví, koleji, a pak hodnoty, které uživatel
zadali s jednou výjimkou.
Já jsem typ D--V-I-D.
Ověřil jsem si krabici, i když, pro muže, který zřejmě předložila hodnotu
pouhého m být stručné.
>> Když jsem si vybral Matthews, že je to hodnota, která dostala vybrané,
a tohle je trochu hloupé, ale je to konvence.
Když jsem zaškrtli políčko, hodnota na, "na," dostal předložen k zaškrtávacího pole.
Kdybych to četl, tak by žádná hodnota byla odeslána vůbec.
To je jen, že nám pohled na to, co je uvnitř této zvláštní globální proměnné,
a je to tak zvláštní, že je to tzv. super globální proměnnou.
To existuje všude na vás v kódu, takže se můžete skutečně přístup.
To není, že přesvědčivý, takže se pojďme vlastně používat super Global
a ve skutečnosti se snaží zaregistrovat někoho.
V froshims1 Jdu udělat jednu změnu.
Měním žalobu za register1.php,
a já dělám jednu věc.
Byl jsem trochu v rozpacích o kvalitě mé stránky tam.
Je to docela odporné, upřímně, tak to dopadá
které můžete použít velmi snadno na webu
JavaScript jiných lidí code, CSS jiných lidí
, že jsem napsal a otevřené zdrojů a k dispozici jako knihovna,
abych tak řekl, a například, tady jsem pomocí volně dostupných knihovnu,
banda kódu, který někdo jiný napsal.
>> Twitter se stalo psát tento kód, a to jen bootstrap knihovna,
a je to jen banda CSS stylů, partu. css soubory
že někdo jiný napsal, a přišel na to, jak se dostat všechno pěkné a hezká
tak, že lidé jako my může starat o něco méně o estetice a mnohem více soustředit
o logice a skutečné programování.
Tím, spojující jej s tímto tag, který je stejný tag jsem pamatovat styles3.css dříve,
Nyní mám přístup k souboru s názvem bootstrap.min.css.
Min. jen znamená, že jsem minified, a že jsem se zbavila všech bílého prostoru a tak dále
jen aby se ujistil, že nejste mi poslal více bajtů, než jsem skutečně potřebují.
Ale tam je celá parta CSS, takže když jsem se tak otevírá verzi 1 Frosh PI
Všimněte si, že můj soubor je rozhodně hezčí.
Teď je to pořád jen černé a bílé, ale všimněte si, že tím, že jen pomocí jejich stylů
a používání některých funkcí z ní na mé formě, že to není úžasné,
ale je to rozhodně čistší, než tomu bylo dříve, a projektor není dělat to spravedlnost.
Tam je malé šedé čáry kolem tlačítek a kolem textového pole tady,
ale je to rozhodně čistší, než tomu bylo dříve.
>> Nyní, ve spravedlnost, já jsem musel změnit můj značkovací trochu.
Toto je verze 1, a všimněte si, že jsem použil několik nových značek,
a upřímně, neměl jsem ponětí, jak to udělat, dokud jsem si nepřečetl dokumentaci
pro bootstrap knihovny Twitteru, a řekli mi, že pokud chcete použít naši knihovnu
použít fieldset element uvnitř formuláře,
dal slovo, které chcete zobrazit vedle pole uvnitř se štítkem značky,
pak dát vaše vstupní jméno, stejně jako dříve,
a pak pro políčko, nejen že ji zabalte do štítků prvku,
můžete použít něco jako třída, takže jsme neviděli dřív,
ale uvidíte to v jednom z šortek PSet 7 je.
Třída v CSS umožňuje udělat něco velmi podobného ID,
ale předtím, když jsme měli ID se symbolem #
to bylo pro jednu a pouze jeden prvek.
Co je hezké o třídy je, že více prvky mohou mít stejné třídy
nebo stejné CSS věci aplikován na to.
>> Ale opět, více na ty krátké, a zbytek je to jen zkopírovat a vložit
z jejich dokumentace, kde jsem přidal štítek sem a tam.
A na konci, protože jsem patřila link tag v horní části,
všechno vypadá hezčí automaticky
jednoduše označíte se mé stránky takovým způsobem, který
Twitter očekává, a tam je tak mnoho různých způsobů
, jak toho dosáhnout, a to je opravdu velmi vhodné.
V tomto bodě v semestru, jak uvidíte ve spec PSet 7 je,
Googling kolem, čtení až o knihovnách, pomocí CSS jiných lidí
a JavaScript řešit pomocné problémy
na problém sadě sám je jistě podporována a je tak
Web je postaven v těchto dnech, že stála na ramenou jiných lidí
takže si můžete opravdu zaměřit na nové a zajímavé problémy.
Ale pojďme se nyní zaměřují na, opět logiku.
>> To bylo rychlé objížďka na estetiku jen ukázat vám směr, ve kterém se můžete vydat.
Chystám se vrátit k ošklivější jeden pro teď jen proto, že
tam žádné rozptýlení s věcí Twitter, a nech mě jít dopředu a otevřít
froshims2, které opět liší pouze v akčním, register2.php,
a pojďme se podívat na to, co účinek je tady.
Nech mě jít napřed a zadejte Davida.
Nebudu kapitán tentokrát.
Řeknu muž, Matthews, zaregistrujte se.
Sakra. Dobře, že je šroub až na mé straně.
Stand by.
Register2, řádek 22, pokud prázdný, nebo-líto.
Pojďme znovu.
Dobře, po odeslání tohoto formuláře, co se právě stalo?
Jsem napsal v Davidovi, kontrolovány samec, kliknul Matthews, zaregistrujte se.
Ty jsou registrovány. (No, vlastně ne.)
To je jasně krok za jen vytisknout obsah některé proměnné,
ale co je tento soubor vlastně dělá?
V register2.php
Všimněte si, že mám nějaký nový kód.
Uvnitř mého těla tagu mám v podstatě, pokud else,
ale protože jsem co-mísit se to s nějakým HTML
Mám pro vstup a výstup PHP režim tam a zpět, tak se pojďme podívat, co dělám.
>> V prvním řádku zde říkám, je-li tomu
že po Super globální je prázdný klíč jména,
takže jinými slovy, v případě, že uživatel nemá mi hodnotu názvu ve formě,
pak vyprázdněte bude vrátit true, protože hodnota je prázdná.
Nebo-Všimněte si, že svislé pruhy-li pohlaví je prázdný
uvnitř tohoto speciálního extra globální, což opět představuje obsah formě,
nebo ložnice je prázdná, pak budu pokračovat a řvát na uživatele.
Jak? No, nevšiml jsem chtěl říct, vám musí poskytnout své jméno, pohlaví, a koleji.
Pojďme dokonce vyvolat takovou chybu.
Nechte mě jít zpátky do mého formuláře. Dovolte mi, abych znovu pro vymazání.
A já jdu dát jim Davida, a nemusí vědět, kde bydlím.
Registrace. Zřejmě jsem se třeba jim říct, kde bydlím.
Musíte poskytnout své jméno, pohlaví a koleji. Přejít zpět.
>> A mohl bych klepnout a přejít zpět do té podobě, ale proč je to?
No, v tom případě dříve nebyl prázdný, ale rod byl a koleji byl,
takže celý tento výraz vyhodnocen jako true, a to i přesto, že syntaxe je jen málo nových,
Znovu jsme se vstoupit do PHP režimu, známé, pokud prohlášení,
ale nová část je zde právě tato dvojtečka, a já jsem to podělal tím vynecháním závorku
náhodou, ale všimněte si do tlustého střeva, a to znamená, že
i když jsme opuštění PHP režimu vše
který následuje třeba vyplivnout doslovně do prohlížeče
, dokud se nezobrazí jiného blok, jako to děláme my,
V takovém případě byste měli místo plivat na tohle
, dokud se nezobrazí ENDIF, takže některé mírně nová syntaxe
, která mi umožňuje přepínat mezi HTML a PHP.
Můžeme vyčistit doplnila nakonec, ale teď,
je to trochu působivého způsobu kontroly chyb formulář.
>> Teď říkám, že nejste opravdu registrované, protože samozřejmě jsme nic neudělali, ale data,
takže se pojďme se skutečně snaží dělat něco zajímavého.
V froshims3 Jediný rozdíl je, že budu předkládat register3,
takže HTML je stejný.
V register3 nevšiml.
Tohle je docela sexy.
Na vrcholu jsem pomocí vyžadují prohlášení, takže to je jako # include.
Tentokrát to není stdio.h nebo něco podobného.
Je to knihovna PHP, a ten se nazývá PHPMailer.
Jak jsem věděl, zahrnout právě tuto citovaný řetězec?
Četl jsem to v dokumentaci, takže když mi řekli, ať si tohle v horní části souboru
Chcete-li použít speciální knihovnu s názvem PHPMailer, že dělá to, co říká.
To vám umožní odesílat e-maily přes PHP.
Nyní se pojďme posunout ještě hlouběji.
>> Oznámení začít Jsem v PHP mód celou tu dobu,
tak teď všimnete sem po importu tuto knihovnu,
abych tak řekl, dělám nějaké Sanity kontroly.
Pokud je to pravda, že název není prázdný
a pohlaví není prázdný, Všimněte si, že vykřičníky-
a koleji není prázdný, pak se uživatel logicky vyplnil formulář, alespoň dost.
Je mi jedno, jestli jsou kapitán nebo ne. Potřebuju jen své jméno, pohlaví, a koleji.
Pokud se naplnili ty ven tak, že žádný z těchto oblastí jsou prázdné
To je trochu nová syntaxe.
PHP, as stranou, je objektově orientovaný programovací jazyk
který někteří z vás si možná vzpomenou z obrněných transportérů nebo jako.
Pro tuto chvíli, pokud neznámé, jen vím, že používat tuto knihovnu
musíte napsat jediný řádek kódu, jako je tento s použitím nové klíčové slovo,
doslova nové klíčové slovo názvem nové.
Ale kromě toho, máme nějaké známé syntaxi.
Je to šipka operátor, který je podobný tomu, co se používá pro structs v kontextu ukazatelů.
Pro dnešek PHP nemá ukazatele,
ale vím, že teď uvnitř pošty proměnné
je v podstatě druh ukazatel na speciální knihovny
že někdo jiný napsal, a pokud chci, aby přístup k specifické funkce
uvnitř této knihovně jsem se, stejně jako v C, použijte šipky operátor,
i když tito nejsou ve skutečnosti ukazatele.
Je to něco vlastní verzi PHP smlouvy.
To znamená, že jít do knihovny a volat IsSMTP funkci.
SMTP, stažení, z našich bojovníků Net odkazuje na email,
a to jen znamená používat e-mailový server pro tuto Frosh Chatu registraci.
>> Co hostitel chci používat?
No, Harvard, když Google kolem, má e-mailový server s názvem smtp.fas.harvard.edu.
Pokud hrajete spolu doma, nebo žijete v Comcast síti
to by mohlo být něco jako smtp.comcast.net.
To zcela závisí na tom, kde žijete, a kdo je tvůj ISP je.
Poté budu Moje z adresy, aby svévolně být jharvard@cs50.net.
Já pak jít do nastavení řešit za jharvard@cs50.net.
Jediný způsob, jak jsem věděl, že tyto funkce byly volány SetFrom a AddAddress
je, opět jsem četl dokumentaci.
To není druh magicky známé všem programátorů.
Pak jsem nastavit předmět na "registrace".
A teď tento řádek je trochu ošklivá, protože to, co dělá tečka provozovatel znamená v PHP?
Každý, kdo ví?
Zřetězit.
V C je bolest v krku pro spojení 2 řetězce dohromady.
Musíte se vypořádat s malloc nebo realloc nebo celé věci
jen prodloužit délku řetězce.
V PHP, v JavaScriptu a dalších jazycích
obvykle můžete udělat s jedním znakem.
V tomto případě, tečka znamená vzít tento řetězec zde
a připojit k němu tento řetězec.
>> Jo, a mimochodem, připojit k ní tento řetězec,
který se stane být variabilní uvnitř to super Global.
Pak připojit k ní nový řádek, takže všechny tyto body jen říct,
mějte dělat větší a větší a větší řetězec,
a nemusíte se starat vůbec o malloc nebo jako v jazyce, jako je tato,
a je tu další způsoby, jak to udělat, ale je to jeden z nejrychlejších
způsoby, jak položit ji.
Co je to děláš?
Je to vytvoření e-mailové tělo, které se děje tedy Název: Captain: Pohlaví: kolej:
vše na samostatných řádcích, a pak konečně,
jeden řádek kódu, a budu ignorovat to pro teď.
Pokud == false znamená jen kdyby se něco pokazilo,
ale kouzlo se tu děje.
Mail Napsat znamená poslat tento e-mail.
Podívejme se, co Výsledkem je.
V dolní části souboru, všimněte si, že to bude se říct, že jsou registrovány opravdu
když jsem si, že daleko.
Pokud však uživatel šrouby nahoru, zjistíte, že jsme začali tento
pokud podmínka se zde, pokud to není prázdný a není prázdná
a ne vyprázdnit zašleme e-mailu.
Jinak budeme posílat tento řádek kódu,
která bude mít za následek, jak uvidíte v PSet 7, ze dne přesměrování uživatele
tam, kde oni přišli, froshims3.php.
>> Palce, jinak to bude nejvíce zklamáním demo dnes.
Jdeme na to.
Dovolte mi, abych otevřít svou e-mailovou schránku na jharvard v Gmailu.
Žádný e-mail hned. Dobrá.
Nyní mi dovolte otevřít froshims3, který je třetí a poslední příklad se podíváme na zde.
Dobře, jdeme na to.
Nate, on bude kapitánem, male, od, řekněme, Apley.
Registrace. Dobře, jste zaregistrován opravdu.
Nyní, když jsem Najeďte na můj e-mail, oh, můj bože.
Právě jsem dynamicky zaslali e-mail na webu.
>> Ponechme na tomto listu.
Video je nadcházející k přednášce jsme chybět. Uvidíme se příští týden.
[CS50.TV]