1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Týden 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Harvard University] 3 00:00:04,000 --> 00:00:07,000 [To je CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Vítejte zpět. 5 00:00:09,000 --> 00:00:11,000 To je CS50, a to je začátek týdne 8. 6 00:00:11,000 --> 00:00:14,000 Pár příležitostí, které tento týden, 7 00:00:14,000 --> 00:00:17,000 mezi nimi, to talk zde na nichž některé jídlo se podává. 8 00:00:17,000 --> 00:00:20,000 Pro více informací podívejte se na snímky, které jsou on-line. 9 00:00:20,000 --> 00:00:24,000 A také další akce tento týden naší Thomas Carriero. 10 00:00:24,000 --> 00:00:27,000 Je to jeden z bývalých kolegů CS50 je hlava výuky, který je nyní na Dropbox, 11 00:00:27,000 --> 00:00:29,000 a on je ten, kdo zahnutý nás se víte co, 12 00:00:29,000 --> 00:00:36,000 takže pokud chcete více, že hlavy jejich rozhovoru to odpoledne pro Dropbox a další. 13 00:00:36,000 --> 00:00:38,000 CS50 oběd je tento pátek. 14 00:00:38,000 --> 00:00:41,000 Do k nám, pokud jste schopni, 01:15, jako obvykle, na Fire and Ice. 15 00:00:41,000 --> 00:00:45,000 >> A teď jsme se ponořit do něčeho s názvem Semináře. 16 00:00:45,000 --> 00:00:49,000 Naše CS50 Semináře, vzpomínám, jsou tyto volitelné kurzy vedené výukové kolegy 17 00:00:49,000 --> 00:00:51,000 a kurz asistenti a přátelé kurzu, 18 00:00:51,000 --> 00:00:55,000 lidé ze skupiny na koleji tzv. ABCD, který je skupina 19 00:00:55,000 --> 00:00:58,000 technophiles na akademické půdě, stejně jako skupina tzv. HCS, 20 00:00:58,000 --> 00:01:02,000 Harvard Computer Society, vysokoškoláci, kteří jsou podobně zájem v práci na počítači. 21 00:01:02,000 --> 00:01:08,000 Letošní seznam seminářů zahrnuje semináře na Android a iOS a JavaScript 22 00:01:08,000 --> 00:01:13,000 a PHP, Unix, Vim, a další, takže si uvědomit, že tyto semináře se blíží. 23 00:01:13,000 --> 00:01:16,000 Pokud byste se chtěli RSVP pro žádného z nich zamíří do dané adrese URL tam. 24 00:01:16,000 --> 00:01:20,000 Budeme pak post na hřišti internetových stránkách časy a místa, jakmile budou dokončeny. 25 00:01:20,000 --> 00:01:26,000 Ale vím, že je 5 roků v hodnotě předchozích seminářů k dispozici on-line, 26 00:01:26,000 --> 00:01:29,000 z nichž mnohé jsou stále velmi aktuální, pokud jde o technologie, které by mohly 27 00:01:29,000 --> 00:01:36,000 Chci si hrát s vaším závěrečných prací, tak zamiřte tam pro některé dostupné videa jejich. 28 00:01:36,000 --> 00:01:39,000 >> CSS, ti z vás, kteří jsou obeznámeni s CSS už, 29 00:01:39,000 --> 00:01:42,000 co je to v kostce? 30 00:01:42,000 --> 00:01:45,000 Co je to CSS? 31 00:01:45,000 --> 00:01:48,000 Je to kaskádové styly, a co to znamená? 32 00:01:48,000 --> 00:01:53,000 Co to udělat pro nás, CSS? 33 00:01:53,000 --> 00:01:57,000 Dobře, pojďme zahřát snadnější jeden, HTML, Hypertext Markup Language. 34 00:01:57,000 --> 00:02:01,000 Co to udělat pro nás? 35 00:02:01,000 --> 00:02:04,000 Každý, kdo vůbec? 36 00:02:04,000 --> 00:02:07,000 Je to stále velmi trapné ptát na tyto otázky. 37 00:02:07,000 --> 00:02:11,000 HTML, hypertext markup language. 38 00:02:11,000 --> 00:02:14,000 Ano? Ne? 39 00:02:14,000 --> 00:02:17,000 [Neslyšitelné Student odpověď] 40 00:02:17,000 --> 00:02:20,000 Dobře, dobře, to nám umožňuje označit text zobrazit ve webovém prohlížeči. 41 00:02:20,000 --> 00:02:22,000 To není programovací jazyk. 42 00:02:22,000 --> 00:02:25,000 Je to opravdu značkovací jazyk, což znamená, že pokyn prohlížeč, jak zobrazit 43 00:02:25,000 --> 00:02:28,000 informace, takže nejjednodušší inkarnace to jako jsme viděli 44 00:02:28,000 --> 00:02:32,000 je něco, co super jednoduchý jako boldfacing, otevřený držák b uzavřený držák říká 45 00:02:32,000 --> 00:02:36,000 aby tento text tučně, a to je ve skutečnosti jen jedním z mnoha způsobů, jak 46 00:02:36,000 --> 00:02:39,000 ve kterém můžeme udělat, a opravdu, v těchto dnech lepší přístup 47 00:02:39,000 --> 00:02:42,000 k stylizace své webové stránky, dělat věci tučné a kurzíva 48 00:02:42,000 --> 00:02:47,000 a ve středu a oprávněná, a podobně, není provedeno pomocí HTML tagů alone 49 00:02:47,000 --> 00:02:51,000 ale spíše s technikou zvanou CSS, kaskádové styly. 50 00:02:51,000 --> 00:02:53,000 To je jazyk sám pro sebe. 51 00:02:53,000 --> 00:02:55,000 To také není programovací jazyk, ale- 52 00:02:55,000 --> 00:02:58,000 všichni, tohle je Dan, který vede k nám ještě dnes. 53 00:02:58,000 --> 00:03:01,000 Některé technické problémy. Není problém. 54 00:03:01,000 --> 00:03:04,000 >> CSS nám umožňuje stylizovat stránku 55 00:03:04,000 --> 00:03:07,000 nastavením, co se nazývá vlastnosti, takže se pojďme podívat na to 56 00:03:07,000 --> 00:03:09,000 prostřednictvím několika základních příkladů. 57 00:03:09,000 --> 00:03:12,000 Nech mě jít do přístroje dnes. 58 00:03:12,000 --> 00:03:15,000 Mám zdrojový 8 pondělí adresář tady, 59 00:03:15,000 --> 00:03:18,000 a já jdu do adresáře s názvem CSS, kde máme spoustu 60 00:03:18,000 --> 00:03:21,000 souborů čekajících na nás tady, 61 00:03:21,000 --> 00:03:27,000 a v této složce máme, například, search0.html z minula. 62 00:03:27,000 --> 00:03:31,000 Nyní si připomeňme s search0 jsme odjeli na tuto poznámku 63 00:03:31,000 --> 00:03:35,000 podle druhu prováděcích Google nebo opravdu jen přední konec pro ni týden nebo tak dávno, 64 00:03:35,000 --> 00:03:38,000 a všimněte si, že jsme měli nějaké nové značky tam. 65 00:03:38,000 --> 00:03:41,000 Měli jsme h1 pro velké, tučné čísla, 66 00:03:41,000 --> 00:03:45,000 forma, která nám umožnila skutečně HTML formulář pro vstup uživatele. 67 00:03:45,000 --> 00:03:48,000 Akční, co bylo význam akčního atributu 68 00:03:48,000 --> 00:03:52,000 na HTML tagu form? 69 00:03:52,000 --> 00:03:58,000 Jaký byl význam tohoto, akce? 70 00:03:58,000 --> 00:04:00,000 Budu prostě dělat to dnes. 71 00:04:00,000 --> 00:04:03,000 Akce je určení, kde je formulář bude předložen. 72 00:04:03,000 --> 00:04:07,000 Skutečnost, že říká, že action = "google.com / search" 73 00:04:07,000 --> 00:04:10,000 znamená, že když uživatel klepne na tlačítko Odeslat nebo ekvivalent 74 00:04:10,000 --> 00:04:14,000 bez ohledu na formu pole jsou vyplněna se bude zaslán na našem serveru 75 00:04:14,000 --> 00:04:17,000 nebo naše zařízení, ale spíše, že konkrétní URL na Google. 76 00:04:17,000 --> 00:04:19,000 A metoda, že to bude používat, se nazývá dostat, 77 00:04:19,000 --> 00:04:25,000 a získat pro tuto chvíli je jen technika pro předávání informací s sebou na webový server 78 00:04:25,000 --> 00:04:29,000 prostřednictvím adresy URL, takže se pojďme rychle podívat zpět na to, jak to funguje. 79 00:04:29,000 --> 00:04:31,000 >> Všimněte si, že je to vstup, jehož jméno je q 80 00:04:31,000 --> 00:04:35,000 jehož typ je text a pak druhý vstup typu předloží 81 00:04:35,000 --> 00:04:39,000 jehož hodnota je CS50 hledat, a skutečně, když se otevřít tento soubor zde, 82 00:04:39,000 --> 00:04:42,000 search0.html, je to super jednoduchý formulář, 83 00:04:42,000 --> 00:04:45,000 a když jsem hledat něco jako počítačové vědy 84 00:04:45,000 --> 00:04:50,000 a poté stiskněte klávesu Enter nebo klikněte na CS50 Hledání 85 00:04:50,000 --> 00:04:53,000 Všimněte si, že to, co se stane, je mimo dostat do Google 86 00:04:53,000 --> 00:04:56,000 Já jsem konkrétně skončil na této adrese nahoře, 87 00:04:56,000 --> 00:05:01,000 google.com / search? q = počítač + vědy, 88 00:05:01,000 --> 00:05:04,000 informatika a výpočetní technika je samozřejmě to, co jsem napsal palců 89 00:05:04,000 --> 00:05:06,000 + Prostě znamená, že je-li mezera byla, 90 00:05:06,000 --> 00:05:10,000 a je to v prohlížeči jen aby se ujistil, že to není 91 00:05:10,000 --> 00:05:13,000 zmatek a bílá plocha v aktuální URL. 92 00:05:13,000 --> 00:05:15,000 A pak q, samozřejmě, je parametr název. 93 00:05:15,000 --> 00:05:20,000 Neviděli jsme, jak jsme, programátor, může skutečně přístup q dosud. 94 00:05:20,000 --> 00:05:23,000 Můžeme předpokládat, že Google ví, co s tím dělat tady, 95 00:05:23,000 --> 00:05:25,000 ale budeme se tam dostat včas dnes. 96 00:05:25,000 --> 00:05:30,000 >> Ale dovolte mi, abych se podívat na místo search1.html, 97 00:05:30,000 --> 00:05:34,000 který vypadá trochu jinak, protože jsem se rozhodl, že tato forma tady byla jen trochu kulhá. 98 00:05:34,000 --> 00:05:36,000 Myslím, že je to v levé horní části. 99 00:05:36,000 --> 00:05:40,000 Je to opravdu žádné estetika k ní, a tak se chci stylizovat tento 100 00:05:40,000 --> 00:05:43,000 trochu více, jako je Google, jehož strana, odvolání, 101 00:05:43,000 --> 00:05:47,000 i když nemusí navštívit tak často, vypadá to dnes na Halloween. 102 00:05:47,000 --> 00:05:53,000 Pokud bychom místo toho otevřít verzi 1 tohoto souboru, vyhledávání 1.html, jsem soustředěný to. 103 00:05:53,000 --> 00:05:57,000 Přesto dost ošklivé, ale aspoň teď jsem začal kontrolovat estetiku této stránce, 104 00:05:57,000 --> 00:06:00,000 nejen značkování jejich. 105 00:06:00,000 --> 00:06:04,000 Pojďme se podívat na hledání 1, a je to opravdu jen jeden rozdíl tu je, 106 00:06:04,000 --> 00:06:06,000 které by mohly vyskočit na vás, nebo možná taky ne, 107 00:06:06,000 --> 00:06:11,000 ale to, co je jeden řádek nebo fragment rozdíl? 108 00:06:11,000 --> 00:06:14,000 >> Tam je to styl atribut, tak se ukazuje, že v HTML 109 00:06:14,000 --> 00:06:19,000 většina prvků, většina tagy mít atribut style na ně, 110 00:06:19,000 --> 00:06:23,000 a uvnitř tohoto atributu style je řetězec v uvozovkách, 111 00:06:23,000 --> 00:06:26,000 a že řetězec v uvozovkách je CSS. 112 00:06:26,000 --> 00:06:29,000 Můžete si dát kaskádových stylů tam 113 00:06:29,000 --> 00:06:32,000 zadáním jako název vlastnosti 114 00:06:32,000 --> 00:06:34,000 dvojtečku následovanou hodnotou. 115 00:06:34,000 --> 00:06:37,000 To je druh nešťastného návrhu rozhodnutí před několika lety 116 00:06:37,000 --> 00:06:40,000 že CSS je jazyk sám pro sebe, 117 00:06:40,000 --> 00:06:43,000 ale syntakticky je to velmi odlišné od HTML. 118 00:06:43,000 --> 00:06:46,000 V tomto případě, vidíme, že uvnitř mé stránky, který je uveden v HTML, 119 00:06:46,000 --> 00:06:51,000 Mám CSS uvnitř těchto uvozovek, a konvence pro CSS 120 00:06:51,000 --> 00:06:55,000 je, že to, co se nazývá vlastnost následuje, opět, tlustého střeva, 121 00:06:55,000 --> 00:06:58,000 následuje hodnota tohoto majetku, takže není rovnítko. 122 00:06:58,000 --> 00:07:00,000 Nejsou tu žádné další citace. 123 00:07:00,000 --> 00:07:03,000 Je to právě tento čárkami oddělený hodnota klíče dvojice, 124 00:07:03,000 --> 00:07:05,000 a textový řádek dělá přesně to, co říká. 125 00:07:05,000 --> 00:07:09,000 To zarovná text v těle stránky, což je opravdu odvahu na stránce, 126 00:07:09,000 --> 00:07:11,000 v centru města. 127 00:07:11,000 --> 00:07:13,000 >> Dobře, konečný výsledek pak, aby bylo jasno, je to. 128 00:07:13,000 --> 00:07:17,000 Ne všichni, že sexy, ale alespoň je to střed a trochu více jako skutečné Google. 129 00:07:17,000 --> 00:07:21,000 Ale co když místo otevření verze 2 této 130 00:07:21,000 --> 00:07:25,000 a poukázat sem novou značku dohromady? 131 00:07:25,000 --> 00:07:30,000 Nyní v hlavě mé stránky, které byly dříve jen měla, který tag 132 00:07:30,000 --> 00:07:32,000 ve všech předchozích příkladech? 133 00:07:32,000 --> 00:07:34,000 Prostě měl toto, titul. 134 00:07:34,000 --> 00:07:38,000 Před chvílí hlavu tag vypadal takhle. 135 00:07:38,000 --> 00:07:40,000 Nyní místo má styl značky uvnitř něj, 136 00:07:40,000 --> 00:07:44,000 a to taky, omlouváme se, syntakticky vypadá velmi odlišně od HTML, 137 00:07:44,000 --> 00:07:47,000 ale člověk si zvykne na to, kdy uvnitř stylu tagu 138 00:07:47,000 --> 00:07:50,000 Nyní mohu vytknout to, co bylo před chvílí 139 00:07:50,000 --> 00:07:54,000 atribut, atribut style, a můžu dát na samém vrcholu mé straně. 140 00:07:54,000 --> 00:07:56,000 >> Proč? 141 00:07:56,000 --> 00:08:00,000 No, je to krok směrem k vyčištění věci, podobně jako v psaní C kódu 142 00:08:00,000 --> 00:08:04,000 bychom někdy píší funkce vytknout společnou funkčnost. 143 00:08:04,000 --> 00:08:07,000 Je to jen trochu čistší, kdo factoring se věci, jako je estetika 144 00:08:07,000 --> 00:08:11,000 na jednom centrálním místě, spíše než mít to všechno roztrousit celém HTML. 145 00:08:11,000 --> 00:08:14,000 To také dělá to, co říká, i když tam je trochu nové syntaxi. 146 00:08:14,000 --> 00:08:19,000 Tohle je výběr, a tělo prostě znamená, vyberte tělo prvek 147 00:08:19,000 --> 00:08:21,000 a použít následující vlastnosti k tomu. 148 00:08:21,000 --> 00:08:23,000 No, majetek je přesně stejný. 149 00:08:23,000 --> 00:08:25,000 Pro správnou míru jsem přidal středník na konci, 150 00:08:25,000 --> 00:08:29,000 která má tendenci být úmluva, a já jsem zabalil tento celý majetek 151 00:08:29,000 --> 00:08:33,000 ve složených závorkách, protože jsem mohl skutečně mít různé věci tady. 152 00:08:33,000 --> 00:08:39,000 Mohl bych vlastně říct něco jako barva: modrá; 153 00:08:39,000 --> 00:08:42,000 >> Teď to taky nebude mít krok k něčemu všechno hezčí, 154 00:08:42,000 --> 00:08:47,000 ale když jsem se teď vrátit k verzi 2 jsem aspoň teď dělal tělo mé 155 00:08:47,000 --> 00:08:49,000 Page je text celé modré. 156 00:08:49,000 --> 00:08:51,000 Tlačítko zůstane stejná, protože to je vstup. Není to čistý text. 157 00:08:51,000 --> 00:08:56,000 Ale všechno ostatní, co je text, stejně jako CS50 Hledání nahoru nahoru, je ve skutečnosti modré. 158 00:08:56,000 --> 00:09:01,000 Opět, vše jsme udělali teď je odstranit z těla tagu, oznámení, 159 00:09:01,000 --> 00:09:04,000 styl atribut, a máme ovlivnil ji zde. 160 00:09:04,000 --> 00:09:08,000 To není velké zlepšení, ale vezmeme-li v ještě o krok dál 161 00:09:08,000 --> 00:09:10,000 upozornění, co můžeme udělat v této třetí verzi zde. 162 00:09:10,000 --> 00:09:14,000 >> V search3.html webová stránka je téměř shodná 163 00:09:14,000 --> 00:09:17,000 s výjimkou toho, co nový tag teď? 164 00:09:17,000 --> 00:09:20,000 Link, takže tohle není výstižně pojmenovaný 165 00:09:20,000 --> 00:09:24,000 protože nejste propojení ve smyslu klikací hypertextový odkaz. 166 00:09:24,000 --> 00:09:28,000 Spíše, že jsi trochu dělá ekvivalent # include v C 167 00:09:28,000 --> 00:09:31,000 přičemž link tag s atributu href 168 00:09:31,000 --> 00:09:34,000 a rel atribut říká jít dopředu 169 00:09:34,000 --> 00:09:39,000 a kopírování vložit obsah souboru s názvem search3.css tady, v podstatě. 170 00:09:39,000 --> 00:09:42,000 To není úplně to udělat, ale je to duch toho. 171 00:09:42,000 --> 00:09:45,000 To říká, že jít otevřít tento soubor, search3.css, 172 00:09:45,000 --> 00:09:49,000 a zacházet s ní, jako by uživatel měl ji napsali přímo tady v záhlaví stránky 173 00:09:49,000 --> 00:09:51,000 stejně jako já v předchozím příkladu. 174 00:09:51,000 --> 00:09:54,000 Search3.css, zatím, je velmi jednoduchý. 175 00:09:54,000 --> 00:09:58,000 Je to opravdu jen obsahuje přesně to, co bylo před chvílí 176 00:09:58,000 --> 00:10:03,000 ve stylu značky, ale já jsem ovlivnil ho sem vlastním souboru. 177 00:10:03,000 --> 00:10:07,000 >> I když jsme se strávili mnoho času na to vše v HTML nebo webové programování 178 00:10:07,000 --> 00:10:11,000 Jen intuitivně, co je motivace, možná, pro factoring ven 179 00:10:11,000 --> 00:10:14,000 tento malý úryvek dokonce CSS do vlastního souboru 180 00:10:14,000 --> 00:10:19,000 a pak i s tímto link tag tady? 181 00:10:19,000 --> 00:10:21,000 [Neslyšitelné Student odpověď] 182 00:10:21,000 --> 00:10:25,000 Dobře, je to jednodušší vykládat v tom smyslu, že máte svůj CSS do CSS souboru. 183 00:10:25,000 --> 00:10:28,000 Máte svůj HTML v souboru HTML, takže je to lépe čitelné v tomto smyslu. 184 00:10:28,000 --> 00:10:30,000 Co jiného by mohlo být přesvědčivé? Jo. 185 00:10:30,000 --> 00:10:32,000 [Neslyšitelné Student odpověď] 186 00:10:32,000 --> 00:10:35,000 Jo, takže můžete zahrnout to mnohokrát, takže teď budeme dělat tyto 187 00:10:35,000 --> 00:10:38,000 základní příklady s jednotlivými soubory, ale předpokládám, jste vlastně dělat 188 00:10:38,000 --> 00:10:42,000 skutečný webové stránky, jako vy bude pro PSet 7 nebo váš konečný projekt možná, 189 00:10:42,000 --> 00:10:45,000 a chcete mít více webových stránek, jako je jistě obyčejné na 190 00:10:45,000 --> 00:10:48,000 Skutečná World Wide Web, a to by bylo docela lame 191 00:10:48,000 --> 00:10:52,000 muset zkopírovat a vložit stejnou modrou barvu 192 00:10:52,000 --> 00:10:56,000 a stejný text zarovnán centrum v každém z těchto stránek. 193 00:10:56,000 --> 00:10:59,000 Spíše to dává větší smysl vytknout, stejně jako jsme udělali v C 194 00:10:59,000 --> 00:11:02,000 s. soubor h, vložte ji na jednom centrálním místě, 195 00:11:02,000 --> 00:11:06,000 v tomto případě search3.css, a pak se nechá libovolný soubor 196 00:11:06,000 --> 00:11:11,000 na své webové stránky, aby skutečně zahrnout tento soubor prostřednictvím tohoto tagu zde v řádku 16. 197 00:11:11,000 --> 00:11:14,000 Jak je typicky případ, jsme začali s verzí 0, jaký druh práce 198 00:11:14,000 --> 00:11:18,000 ale nemusí být nutně nejlepší, a na každém kroku, 199 00:11:18,000 --> 00:11:21,000 Vyhledávání 1, vyhledávání 2, a teď hledejte 3 jsme přijali tyto dětské krůčky 200 00:11:21,000 --> 00:11:26,000 k vzorům, které jsou trochu čistší a jsou přípravné 201 00:11:26,000 --> 00:11:30,000 pro složitější stránky, které bychom mohli dělat po silnici. 202 00:11:30,000 --> 00:11:33,000 >> Dovolte mi otevřít jednu poslední příklad zde jen pro zobrazení 203 00:11:33,000 --> 00:11:36,000 ještě více stylizovaná stránku, ale nejprve pojďme se podívat na HTML. 204 00:11:36,000 --> 00:11:41,000 To je search4.html, a všimněte si, že strukturálně je to téměř stejné 205 00:11:41,000 --> 00:11:44,000 kromě zavedení nové značky, div. 206 00:11:44,000 --> 00:11:48,000 Div je tag, který zavádí rozdělení stránky. 207 00:11:48,000 --> 00:11:51,000 Můžete myslet na to jako neviditelný obdélník. 208 00:11:51,000 --> 00:11:54,000 Je to druh vytváří pás o výměře do webové stránky 209 00:11:54,000 --> 00:11:56,000 že můžete stylizovat najednou. 210 00:11:56,000 --> 00:11:58,000 Co jsem udělal tady je následující. 211 00:11:58,000 --> 00:12:01,000 Uvnitř mého těla tagu, který byl tam celou dobu, 212 00:12:01,000 --> 00:12:05,000 Říkám vytvořit rozdělení stránky zde přes linky 45 až 47, 213 00:12:05,000 --> 00:12:09,000 a to znamená, že v podstatě mi neviditelný obdélník podél horní části stránky. 214 00:12:09,000 --> 00:12:14,000 Pak mi druhý obdélník, byť neviditelná, pod tím, 215 00:12:14,000 --> 00:12:16,000 a identifikovat podle jména obsahu, a pak konečně, 216 00:12:16,000 --> 00:12:19,000 mi třetiny rozdělení stránky na dně 217 00:12:19,000 --> 00:12:21,000 tzv. ID. 218 00:12:21,000 --> 00:12:23,000 Uvidíme, proč jsem to udělal za chvíli, 219 00:12:23,000 --> 00:12:26,000 ale koncepčně mám záhlaví divizi. 220 00:12:26,000 --> 00:12:30,000 Mám obsahu divizi, a mám zápatí rozdělení stránky 221 00:12:30,000 --> 00:12:32,000 i když se jedná jen v kódu. 222 00:12:32,000 --> 00:12:35,000 Uživatel nebude vidět 3 obdélníky, 223 00:12:35,000 --> 00:12:37,000 ale nějak strukturně tam v zákulisí 224 00:12:37,000 --> 00:12:39,000 jsou skutečně přítomen. 225 00:12:39,000 --> 00:12:41,000 >> Nyní, koho to zajímá? Proč vlastně dělat? 226 00:12:41,000 --> 00:12:43,000 Všechno ostatní na stránce je stejný jako jsme viděli předtím. 227 00:12:43,000 --> 00:12:47,000 Tady je moje forma. Tady je můj vstup, můj vstup, konec řádku, a tak dále. 228 00:12:47,000 --> 00:12:50,000 Zde je obrázek, i když, tak uvidíme, kdy to přišlo z za chvíli. 229 00:12:50,000 --> 00:12:52,000 Zde je zápatí, který je nový, jen proto, že jsem chtěl představit 230 00:12:52,000 --> 00:12:54,000 některé další obsah zde. 231 00:12:54,000 --> 00:12:58,000 Pokud se posunout nahoru všimnout, že ID této div je záhlaví. 232 00:12:58,000 --> 00:13:02,000 ID tohoto div je obsah, a ID tohoto jednoho je zápatí. 233 00:13:02,000 --> 00:13:05,000 A jak již název napovídá, pokud máte atribut ID 234 00:13:05,000 --> 00:13:09,000 ve formátu HTML, podle definice musí jednoznačně identifikovat 235 00:13:09,000 --> 00:13:12,000 jedním z prvků, jeden z tagů ve vašem stránce. 236 00:13:12,000 --> 00:13:16,000 Zátěž je zcela na vás, nezapomeňte, že máte záhlaví ID již. 237 00:13:16,000 --> 00:13:19,000 Máte zápatí. Máte ID obsahu již. 238 00:13:19,000 --> 00:13:22,000 Počítač nebude přijít na to, co k dispozici ID je pro vás, 239 00:13:22,000 --> 00:13:27,000 takže si mohl náhodně dát 2 slova o ID záhlaví, 240 00:13:27,000 --> 00:13:29,000 a že by prostě bylo špatné. 241 00:13:29,000 --> 00:13:31,000 >> Musíte mít na paměti to, co jste vytvořili, 242 00:13:31,000 --> 00:13:34,000 ale jakmile jste udělali, že oznámení, co můžeme dělat tady. 243 00:13:34,000 --> 00:13:38,000 Nyní mohu specifikovat v mém stylu značky na vrcholu 244 00:13:38,000 --> 00:13:41,000 nebo ekvivalentně v mém souboru CSS, když jsem byl stále používáte tuto verzi, 245 00:13:41,000 --> 00:13:46,000 Mohu říci, # hlavičku, a co to znamená, že bez ohledu na tag 246 00:13:46,000 --> 00:13:49,000 v této webové stránky má ID záhlaví 247 00:13:49,000 --> 00:13:53,000 a #, jen lidskou konvencí, představuje ID. 248 00:13:53,000 --> 00:13:56,000 Ostrý znak nebo znak libry představuje ID. 249 00:13:56,000 --> 00:13:58,000 Header je název, který jsem dal. 250 00:13:58,000 --> 00:14:01,000 To znamená, že použití této vlastnosti CSS 251 00:14:01,000 --> 00:14:04,000 na jakoukoli tag na této stránce nese ID záhlaví. 252 00:14:04,000 --> 00:14:06,000 Stejná dohoda zde. 253 00:14:06,000 --> 00:14:09,000 Použít tuto vlastnost, která se stane být stejné, do jakéhokoli prvku 254 00:14:09,000 --> 00:14:11,000 jehož ID je obsah, a pak tady dole 255 00:14:11,000 --> 00:14:14,000 všimnete jsem trochu obsáhlejší s zápatí. 256 00:14:14,000 --> 00:14:18,000 Jakýkoliv prvek, jehož ID je zápatí, který tam může být jen jeden z definice, 257 00:14:18,000 --> 00:14:21,000 jděte do toho a aby její velikost písma menší, 258 00:14:21,000 --> 00:14:24,000 jeho písmo hmotnost tučné, její okraj 20 pixelů. 259 00:14:24,000 --> 00:14:26,000 >> Co to znamená? 260 00:14:26,000 --> 00:14:28,000 Je to jen marže na horní, dolní, a levý a pravý. 261 00:14:28,000 --> 00:14:31,000 To znamená, že mi 20 pixelů neviditelného rozpětí kolem něj 262 00:14:31,000 --> 00:14:35,000 jen tlačit všechno ostatní pryč od toho trochu, jako byste mohli udělat v aplikaci Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word nebo Pages nebo podobně. 264 00:14:37,000 --> 00:14:39,000 A pak textu Zarovnat na střed. 265 00:14:39,000 --> 00:14:43,000 Pojďme se podívat na konečný výsledek, a pak se vrátíme do jedné zbývající fragment CSS tam. 266 00:14:43,000 --> 00:14:48,000 Toto je verze 4, naše poslední na vyhledávání příkladů, a je to mnohem, mnohem víc sexy. 267 00:14:48,000 --> 00:14:54,000 Nyní, ve spravedlnost, jsem Googled "Google Font logo generátor." 268 00:14:54,000 --> 00:14:58,000 A že mi umožnila vytvořit GIF, formát obrazu, který vypadá jako, že tam. 269 00:14:58,000 --> 00:15:00,000 Ve skutečnosti, můžete to udělat taky. 270 00:15:00,000 --> 00:15:03,000 Máme "google fonty logo generátor." 271 00:15:03,000 --> 00:15:05,000 >> Pojďme se podívat, jestli to můžeme udělat. 272 00:15:05,000 --> 00:15:07,000 Dobře, myslím, že to je na internetových stránkách jsem použil. 273 00:15:07,000 --> 00:15:11,000 Dá se říci, EC 10, například, a aby jim jejich vlastní. 274 00:15:11,000 --> 00:15:13,000 Můžete hrát s touto celý den a potom klepněte pravým tlačítkem na něj 275 00:15:13,000 --> 00:15:16,000 a pak stáhnout aktuální GIF, který je všechno, co jsem udělal. 276 00:15:16,000 --> 00:15:19,000 A skutečně, to je důvod, proč v mém HTML, připomenout, tady 277 00:15:19,000 --> 00:15:22,000 Měl jsem disk značku, která jsme viděli minulý týden krátce 278 00:15:22,000 --> 00:15:24,000 jehož zdrojem je logo.gif. 279 00:15:24,000 --> 00:15:28,000 A co byl opět motivace za to, že tento atribut alt, 280 00:15:28,000 --> 00:15:31,000 Tato alternativa atribut? 281 00:15:31,000 --> 00:15:33,000 Jo. 282 00:15:33,000 --> 00:15:35,000 [Neslyšitelné Student odpověď] 283 00:15:35,000 --> 00:15:37,000 Dobré, takže 2 důvody opravdu, pokud prohlížeč nedokáže vytáhnout obraz 284 00:15:37,000 --> 00:15:40,000 protože máte pomalé připojení k síti nebo obraz je poškozen 285 00:15:40,000 --> 00:15:44,000 nebo něco podobného, ​​že alespoň člověk může vidět "CS50 hledání" 286 00:15:44,000 --> 00:15:46,000 a pak také pro přístupnost důvodů. 287 00:15:46,000 --> 00:15:48,000 Pokud máte uživatele, který je slepý a používá pro čtení z obrazovky 288 00:15:48,000 --> 00:15:50,000 a proto samozřejmě nemůže vidět obrazy, které lze alespoň 289 00:15:50,000 --> 00:15:52,000 slyšet text, pokud jejich počítač mluví to na ně. 290 00:15:52,000 --> 00:15:56,000 >> Obecně platí, že je to nejlépe praxi, pokud jde o dostupnost stránek 291 00:15:56,000 --> 00:16:00,000 tak, aby i uživatelé v této situaci může vidět nebo slyšet, abych tak řekl, 292 00:16:00,000 --> 00:16:03,000 co to je, že je na vaší straně. 293 00:16:03,000 --> 00:16:05,000 Je tu ještě jedna věc, že ​​jsem udělal tu 294 00:16:05,000 --> 00:16:09,000 což je docela zajímavé, a uvidíme, více o tom v problému nastavení 7 295 00:16:09,000 --> 00:16:12,000 prostřednictvím jednoho z krátkých filmů pod vedením jednoho z výukových stipendistů. 296 00:16:12,000 --> 00:16:15,000 Ale # obsah se týká tagu 297 00:16:15,000 --> 00:16:20,000 jehož ID je obsah, ale pak je tu mezera, a pak je tu slovo vstup. 298 00:16:20,000 --> 00:16:25,000 No, co je na tom zajímavé CSS je, že můžete 299 00:16:25,000 --> 00:16:29,000 odkazují na tagy na stránce druhu hierarchicky, 300 00:16:29,000 --> 00:16:33,000 a co to úryvek z prostředků CSS je najít značku 301 00:16:33,000 --> 00:16:37,000 jehož ID je obsah, a potom použijte následující vlastnosti 302 00:16:37,000 --> 00:16:42,000 na všechny vstupní značek, které jsou potomky obsahu, 303 00:16:42,000 --> 00:16:44,000 to je, že jsou odsazeny uvnitř ní. 304 00:16:44,000 --> 00:16:48,000 Odsazení, opět, je jen důležité, aby v počítači, ne k člověku, 305 00:16:48,000 --> 00:16:51,000 ale podle konvence jsme odrážce věci tak, jak jsme se jít hlouběji do stránky, 306 00:16:51,000 --> 00:16:54,000 tak to znamená uplatňovat rozpětí 5 pixelů na každém vstupního prvku 307 00:16:54,000 --> 00:16:57,000 že je někde uvnitř nebo vložený uvnitř 308 00:16:57,000 --> 00:16:59,000  prvek, jehož ID je obsah. 309 00:16:59,000 --> 00:17:01,000 >> Kdo to má platit pro? 310 00:17:01,000 --> 00:17:03,000 No, je to vlastně jen tyto 2 lidi tady. 311 00:17:03,000 --> 00:17:05,000 Všimněte si, že uvnitř tohoto formuláře tam 2 vstupy, 312 00:17:05,000 --> 00:17:07,000 jako tam byl na všech těchto příkladech. 313 00:17:07,000 --> 00:17:11,000 Ale všimněte si, že tyto 2 vstupy stalo, že se vnořena, 314 00:17:11,000 --> 00:17:13,000 i když trochu hlouběji, pár vrstev odsazení, 315 00:17:13,000 --> 00:17:16,000 uvnitř tagu, jehož ID je obsah. 316 00:17:16,000 --> 00:17:18,000 Co to znamená? 317 00:17:18,000 --> 00:17:21,000 Pokud půjdeme do prohlížeče zde můžete vidět někdy tak trochu- 318 00:17:21,000 --> 00:17:23,000 dovolte mi, abych přiblížit, že je trochu vycpávky mezi tlačítkem 319 00:17:23,000 --> 00:17:25,000 a mezi textového pole. 320 00:17:25,000 --> 00:17:27,000 >> Dovolte mi, abych dočasně vypni to. 321 00:17:27,000 --> 00:17:30,000 Nech mě jít do mé CSS, a nech mě jít dopředu a jen 322 00:17:30,000 --> 00:17:34,000 změnu tohoto rozpětí od 5 pixelů na 0 obrazových bodů. 323 00:17:34,000 --> 00:17:37,000 Nech mě jít napřed a pak uložte soubor, přejděte zpět do vyhledávače 324 00:17:37,000 --> 00:17:40,000 a znovu, a dívat se na střed stránky. 325 00:17:40,000 --> 00:17:43,000 Všechno dostal stlačený dohromady, a když jsem poprvé šlehačkou tento příklad se 326 00:17:43,000 --> 00:17:46,000 Myslel jsem, že se podíval hloupý s textovým polem a pak tlačítko bezprostředně pod ním. 327 00:17:46,000 --> 00:17:50,000 Chtěl jsem pad ji trochu, tak jsem představil marže. 328 00:17:50,000 --> 00:17:55,000 Co neuděláme v přednášce, je jít přes několik desítek 329 00:17:55,000 --> 00:17:58,000 CSS vlastnosti, které existují, protože opět, tam jsou věci jako velikost písma, 330 00:17:58,000 --> 00:18:02,000 font hmotnost, rozpětí, text zarovnat, a několik desítek dalších, 331 00:18:02,000 --> 00:18:06,000 a budeme vás odkázat na problém nastavit 7 různých cvičení on-line 332 00:18:06,000 --> 00:18:08,000 a odkazy, které vám umožní vybrat tyto věci. 333 00:18:08,000 --> 00:18:10,000 Ale to, co je skutečně důležité na konci dne 334 00:18:10,000 --> 00:18:12,000 >> je pochopit, jak jsou aplikovány tyto věci. 335 00:18:12,000 --> 00:18:15,000 Opět, pokud máme styl tag uvnitř kterých 336 00:18:15,000 --> 00:18:19,000 může jít o selektory, řazení identifikátorů, které určují 337 00:18:19,000 --> 00:18:21,000 kterým chceš použít tyto vlastnosti, 338 00:18:21,000 --> 00:18:24,000 a pak si dát vlastnosti jako klíčový hodnota dvojice 339 00:18:24,000 --> 00:18:28,000 odděleny dvojtečkou a pak skončil s středníkem, 340 00:18:28,000 --> 00:18:32,000 nebo můžete ripovat všechny tím ven a dát ji do samostatného souboru CSS 341 00:18:32,000 --> 00:18:35,000 sama o sobě. 342 00:18:35,000 --> 00:18:39,000 Dobře, nějaké otázky na pojmy 343 00:18:39,000 --> 00:18:41,000 nebo velký obraz CSS? 344 00:18:41,000 --> 00:18:43,000 Budete opět vidět více z toho v PSet 7, 345 00:18:43,000 --> 00:18:47,000 ale budeme držet to obecně docela jednoduché. 346 00:18:47,000 --> 00:18:49,000 Ne? Dobrá. 347 00:18:49,000 --> 00:18:51,000 Je čas pro skutečný programovací jazyk, 348 00:18:51,000 --> 00:18:54,000 a vrátíme k trochu CSS ve formě příkladu. 349 00:18:54,000 --> 00:18:58,000 PHP je vlastně úžasně přístupné jazyk 350 00:18:58,000 --> 00:19:02,000 v tom, že je syntakticky téměř ekvivalentní C. 351 00:19:02,000 --> 00:19:06,000 Jinými slovy, pokud víte, C, víte, z velké části PHP, 352 00:19:06,000 --> 00:19:08,000 alespoň syntakticky, i když tam jsou některé nové funkce 353 00:19:08,000 --> 00:19:10,000 a některé nové pojmy budeme muset podívat na. 354 00:19:10,000 --> 00:19:13,000 >> Ale pro nejvíce se rozdělit, teď, když jsme přechod z C na PHP 355 00:19:13,000 --> 00:19:16,000 většina nových věcí je skutečně ve velkém obrázku, 356 00:19:16,000 --> 00:19:19,000 jak použít jazyk programu na webu jak protichůdný k 357 00:19:19,000 --> 00:19:23,000 na příkazovém řádku nebo v řádku bliká jak jsme to dělali doposud. 358 00:19:23,000 --> 00:19:27,000 Pro srovnání, zejména s PSet 7 a závěrečné projektu kupředu, 359 00:19:27,000 --> 00:19:31,000 se využít této adrese zde, pokud chcete, aby si přečetli na formalitách PHP. 360 00:19:31,000 --> 00:19:34,000 Je to vlastně jako bezplatný on-line učebnici efektivně, 361 00:19:34,000 --> 00:19:37,000 a budete také zjistíte, že to, co je opravdu hezké o PHP 362 00:19:37,000 --> 00:19:41,000 je to, že existují stovky funkcí, které přicházejí s tím, 363 00:19:41,000 --> 00:19:44,000 vzhledem k tomu, v C jste nutně mít přístup k 364 00:19:44,000 --> 00:19:47,000 více funkcí, než bylo v matematické knihovně, CS50 knihovna. 365 00:19:47,000 --> 00:19:51,000 V PHP a mnoho moderních jazyků, Python a Ruby mezi nimi, 366 00:19:51,000 --> 00:19:54,000 získáte přístup k tolika dalším funkcím, které znamená, že si psát 367 00:19:54,000 --> 00:19:57,000 mnohem méně kódu, protože můžete stojí na ramenou jiných lidí 368 00:19:57,000 --> 00:19:59,000 kteří již bylo napsáno určité věci pro vás. 369 00:19:59,000 --> 00:20:03,000 >> Pojďme se rychlou prohlídku syntaxi PHP a pak napsat pár příkladů. 370 00:20:03,000 --> 00:20:06,000 Co je hezké o PHP v první řadě 371 00:20:06,000 --> 00:20:08,000 je tam to není hlavní funkce. 372 00:20:08,000 --> 00:20:10,000 Pokud chcete napsat program v PHP stačí začít psát kód, 373 00:20:10,000 --> 00:20:12,000 a nemusíte se starat o hlavní. 374 00:20:12,000 --> 00:20:14,000 Není int. Tam to není návratu. 375 00:20:14,000 --> 00:20:17,000 Není argv, argc, že ​​je nutné při psaní programu. 376 00:20:17,000 --> 00:20:20,000 Spíše stačí začít psát kód, a to v části 377 00:20:20,000 --> 00:20:23,000 protože PHP je to, co se nazývá interpretovaný jazyk. 378 00:20:23,000 --> 00:20:26,000 C byl sestaven, a to byl sestaven v tom smyslu, že začnete 379 00:20:26,000 --> 00:20:29,000 se zdrojovým kódem, spusťte jej přes Clang, což je kompilátor, 380 00:20:29,000 --> 00:20:33,000 a nakonec po nějakém počtu kroků získáte objektový kód, 0s a 1s. 381 00:20:33,000 --> 00:20:36,000 PHP a Python a Ruby a Pearl a další 382 00:20:36,000 --> 00:20:39,000 jsou různé druhy jazyků, ve které nesestavují je. 383 00:20:39,000 --> 00:20:42,000 Nemusíte jít od zdrojového kódu na 0s a 1s. 384 00:20:42,000 --> 00:20:45,000 Stačí spustit zdrojový kód, a spustit zdrojový kód 385 00:20:45,000 --> 00:20:49,000 písemně v obvyklé textového souboru, končit. php v tomto případě 386 00:20:49,000 --> 00:20:53,000 místo. c, a to, co program dělá na počítači 387 00:20:53,000 --> 00:20:57,000 je to doslova interpretuje svůj kód řádek po řádku po řádku. 388 00:20:57,000 --> 00:21:00,000 >> Jinými slovy, spíše než napsat program a program spustit 389 00:21:00,000 --> 00:21:04,000 přímo, místo toho napsat program s soubor s koncovkou v. php. 390 00:21:04,000 --> 00:21:09,000 Pak spustíte vlastní program s názvem php.exe, pokud jste na Windows, 391 00:21:09,000 --> 00:21:12,000 nebo jen PHP, pokud jste na Mac OS nebo Linux, 392 00:21:12,000 --> 00:21:17,000 a poskytují jako vstup do programu PHP vlastní zdrojový kód, 393 00:21:17,000 --> 00:21:20,000 a jeho účel v životě je číst kód shora dolů, zleva doprava, 394 00:21:20,000 --> 00:21:23,000 a to co jste to řekl, aby dělal. 395 00:21:23,000 --> 00:21:25,000 >> Pojďme se podívat, co to bude znamenat syntakticky. 396 00:21:25,000 --> 00:21:27,000 V PHP máme podmínky. 397 00:21:27,000 --> 00:21:29,000 Tento snímek je totožný s tím, co jste viděli zpátky v týdnu 1 398 00:21:29,000 --> 00:21:33,000 protože syntakticky podmínky, IFS a jinde IFS a jinde v PHP 399 00:21:33,000 --> 00:21:35,000 vypadat přesně takhle. 400 00:21:35,000 --> 00:21:38,000 Pokud jde o booleovských výrazů jdou vypadat přesně takhle. 401 00:21:38,000 --> 00:21:43,000 Pokud jde o anding věci společně jako booleans to bude vypadat přesně takhle. 402 00:21:43,000 --> 00:21:46,000 Přepíná vypadají stejně, a získáte navíc tu výhodu, v PHP 403 00:21:46,000 --> 00:21:51,000 že spínače v C by mohly přejít pouze na char nebo int. 404 00:21:51,000 --> 00:21:53,000 Dalo by se to přejít na hodnotu řetězce. 405 00:21:53,000 --> 00:21:55,000 V PHP můžete skutečně výraz 406 00:21:55,000 --> 00:21:58,000 že je proměnná, jejíž obsah je řetězec, 407 00:21:58,000 --> 00:22:01,000 a můžete skutečně udělat porovnání řetězců v reálném intuitivním způsobem, 408 00:22:01,000 --> 00:22:06,000 není ukazatel srovnání, aby bylo možno rozhodnout, zda chcete věc i nebo j, nebo něco jiného. 409 00:22:06,000 --> 00:22:09,000 Uvidíme, že potenciálně zanedlouho. 410 00:22:09,000 --> 00:22:11,000 >> Smyčky příliš nádherně, jsou stejné. 411 00:22:11,000 --> 00:22:15,000 Pro smyčky mají inicializaci, což je podmínka, a určitý počet aktualizací. 412 00:22:15,000 --> 00:22:18,000 Zatímco smyčky také existují v PHP. 413 00:22:18,000 --> 00:22:21,000 Do while také existují v PHP, 414 00:22:21,000 --> 00:22:26,000 a pole existují v PHP, ale tady je místo, kde syntaxe začíná být trochu jiný, 415 00:22:26,000 --> 00:22:29,000 ale tyto pojmy jsou stejné, a pojmy jsou opravdu stejné 416 00:22:29,000 --> 00:22:32,000 jako tomu bylo v týdnu 0 se Scratch. 417 00:22:32,000 --> 00:22:34,000 V první řadě je $ sign. 418 00:22:34,000 --> 00:22:37,000 To byl návrh rozhodnutí v PHP podle něhož všechny proměnné 419 00:22:37,000 --> 00:22:41,000 v PHP design začíná znakem $. 420 00:22:41,000 --> 00:22:46,000 Není víc X, Y, Z. Nyní je $ X, Y $, $ Z jen proto, že. 421 00:22:46,000 --> 00:22:49,000 Je to něco, co mít na paměti, a nyní na pravé straně 422 00:22:49,000 --> 00:22:52,000 to vypadá podobně jako pole, 423 00:22:52,000 --> 00:22:54,000 ale my jsme se pomocí hranatých závorek zde. 424 00:22:54,000 --> 00:22:57,000 V PHP a JavaScriptu, jak budeme nakonec vidět, 425 00:22:57,000 --> 00:23:01,000 deklarovat pole, které dělat otevřenou hranatou závorku a zavřel hranatou závorku, 426 00:23:01,000 --> 00:23:04,000 a pak máte čárkou oddělený seznam hodnot, ať už ints 427 00:23:04,000 --> 00:23:09,000 nebo řetězce nebo písmen, co chcete, v této výrazu tam. 428 00:23:09,000 --> 00:23:11,000 >> Nyní, jak jsme něco takového v C? 429 00:23:11,000 --> 00:23:16,000 Co bylo syntaxe pro staticky deklarovat pole známých čísel? 430 00:23:16,000 --> 00:23:19,000 To bylo složené závorky, tak malý rozdíl zde, ale v obou PHP 431 00:23:19,000 --> 00:23:22,000 a nakonec JavaScript, pouze využívá hranaté závorky, takže opravdu 432 00:23:22,000 --> 00:23:25,000 jediný zajímavý detail je zde $ znak pro název proměnné 433 00:23:25,000 --> 00:23:28,000 a také hranaté závorky, a tam je jedna divná věc 434 00:23:28,000 --> 00:23:32,000 , která byla vynechána i na levé straně znak =. 435 00:23:32,000 --> 00:23:36,000 Co chybí, že jsme se vyžaduje několik týdnů? Jo. 436 00:23:36,000 --> 00:23:38,000 [Neslyšitelné Student odpověď] 437 00:23:38,000 --> 00:23:41,000 Velikost, takže žádná zmínka o velikost pole. 438 00:23:41,000 --> 00:23:45,000 Upřímně řečeno, neexistuje žádná zmínka o hranatých závorkách na levé straně 439 00:23:45,000 --> 00:23:47,000 označení =, a co jiného chybí z linky? 440 00:23:47,000 --> 00:23:49,000 Jo. >> [Neslyšitelné Student odpověď] 441 00:23:49,000 --> 00:23:52,000 Typ, takže to, co je zajímavé zejména o PHP 442 00:23:52,000 --> 00:23:56,000 je to, že se nejedná o silně typový jazyk jako C, 443 00:23:56,000 --> 00:23:58,000 a že je silně zadali v tom smyslu, že je třeba říci char, 444 00:23:58,000 --> 00:24:00,000 musíte říct int, musíte říct float. 445 00:24:00,000 --> 00:24:03,000 >> Kdykoliv budete chtít proměnnou musíš říct řinčet co jeho typ. 446 00:24:03,000 --> 00:24:05,000 PHP je trochu línější. 447 00:24:05,000 --> 00:24:08,000 Je to volně zadali v tom smyslu, že 448 00:24:08,000 --> 00:24:11,000 můžete mít plováky a připaluje a řetězce 449 00:24:11,000 --> 00:24:14,000 a ints a tak dále, ale jazyk sám 450 00:24:14,000 --> 00:24:17,000 opravdu není jedno, co si dát dovnitř proměnné. 451 00:24:17,000 --> 00:24:20,000 Nemusíte informovat v předstihu, co datový typ 452 00:24:20,000 --> 00:24:22,000 se děje v proměnné. 453 00:24:22,000 --> 00:24:24,000 Je to zcela na vás, tak to je pěkný 454 00:24:24,000 --> 00:24:27,000 v tom, že nemusíte mít strach, jak moc o údaje psaní 455 00:24:27,000 --> 00:24:29,000 a obav, jaké jsou vaše argumenty jsou, a tak dále. 456 00:24:29,000 --> 00:24:32,000 To také znamená, případně funkce v PHP se bude moci vrátit 457 00:24:32,000 --> 00:24:36,000 buď int většinu času, a možná jednou za čas 458 00:24:36,000 --> 00:24:40,000 se vrátím bool, a false, například znamenat, že se něco pokazilo. 459 00:24:40,000 --> 00:24:44,000 To nám dává nějaké upsides, ale také nám umožní druh záměrné 460 00:24:44,000 --> 00:24:47,000 trochu línější, pokud jde o datové psaní. 461 00:24:47,000 --> 00:24:50,000 >> Co jiného je tam mít na paměti, tady? 462 00:24:50,000 --> 00:24:54,000 Proměnné vypadají docela líbí, takže $ s = "hello, world." 463 00:24:54,000 --> 00:24:57,000 To je snad inferable z předchozího příkladu, 464 00:24:57,000 --> 00:24:59,000 a máme jiný typ smyčky. 465 00:24:59,000 --> 00:25:02,000 Tenhle budeme skutečně vidět jednou za čas, protože je to docela šikovný, 466 00:25:02,000 --> 00:25:04,000 foreach konstrukce. 467 00:25:04,000 --> 00:25:11,000 V tomto případě, je smyčka foreach se uvnitř svých slov závorce 3 typicky, 468 00:25:11,000 --> 00:25:16,000 $ Něco první, což je to, co pole chceš iteraci členy, 469 00:25:16,000 --> 00:25:19,000 pak doslova klíčové slovo jako, a pak konečně, 470 00:25:19,000 --> 00:25:21,000 další proměnné jméno, které dostanete na výběr. 471 00:25:21,000 --> 00:25:23,000 To může být foo, bar, nebo prvek, 472 00:25:23,000 --> 00:25:26,000 a co tento konstrukt dělá 473 00:25:26,000 --> 00:25:29,000 je-li $ pole obsahuje 10 prvků 474 00:25:29,000 --> 00:25:34,000 na každé iteraci tohoto pole-líto, na každé iteraci tohoto cyklu 475 00:25:34,000 --> 00:25:37,000 proměnná nazývá prvek bude aktualizován 476 00:25:37,000 --> 00:25:40,000 být první element v poli, pak druhý prvek v poli, 477 00:25:40,000 --> 00:25:44,000 pak třetí prvek pole, a tím odstraňuje potřebu 478 00:25:44,000 --> 00:25:46,000 dělat něco otravného hranatá závorka notaci a 479 00:25:46,000 --> 00:25:49,000 $ I, aby se index do pole. 480 00:25:49,000 --> 00:25:53,000 PHP dělá všechny, které pracují pro vás a na každé iteraci 481 00:25:53,000 --> 00:25:55,000 Jen podá vám další prvek z pole 482 00:25:55,000 --> 00:26:01,000 aniž byste museli znát nebo se starat o jeho číselné umístění indexu. 483 00:26:01,000 --> 00:26:04,000 >> A pak konečně, pro teď, je tu ještě jedna další rys PHP 484 00:26:04,000 --> 00:26:08,000 že to bude velmi užitečné, zvláště když jsme se začít s programováním na webu, 485 00:26:08,000 --> 00:26:10,000 a to je známé jako asociativní pole. 486 00:26:10,000 --> 00:26:13,000 V pole, které známe, tedy pokud jde o 20 sekund před 487 00:26:13,000 --> 00:26:17,000 a za posledních 8 týdnů jsou číselně indexované pole, 488 00:26:17,000 --> 00:26:20,000 druh tradičních polí, kde indexy jsou ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, úplně nahoru. 490 00:26:23,000 --> 00:26:25,000 Asociativní pole jsou mnohem silnější. 491 00:26:25,000 --> 00:26:28,000 Ty vám umožní mít libovolné klávesy, 492 00:26:28,000 --> 00:26:31,000 libovolné indexy a libovolné hodnoty. 493 00:26:31,000 --> 00:26:34,000 Zatímco v tradičním pole je 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 v asociativním poli můžete mít index 495 00:26:37,000 --> 00:26:41,000 nebo klíč foo, jejichž hodnota je bar. 496 00:26:41,000 --> 00:26:46,000 Pak můžete mít jiný klíč, jehož jméno je baz a jejichž hodnota je qux. 497 00:26:46,000 --> 00:26:49,000 >> Opět platí, že hloupé počítačové vědy druhové názvy proměnných zde, 498 00:26:49,000 --> 00:26:55,000 ale jde o to, že tato pole nemá držák 0 nebo konzolou 1. 499 00:26:55,000 --> 00:26:59,000 Je to místo bude mít držáku foo a konzoly Baz. 500 00:26:59,000 --> 00:27:03,000 To je mnohem více univerzální v tom, že budeme mít možnost spojit 501 00:27:03,000 --> 00:27:07,000 slova s ​​jinými slovy, klíče s hodnotami zcela svévolně, 502 00:27:07,000 --> 00:27:12,000 a budeme mít možnost získat tyto hodnoty zpět v konstantním čase 503 00:27:12,000 --> 00:27:14,000 protože pod pokličku toho, co asociativní pole 504 00:27:14,000 --> 00:27:16,000 opravdu je hash tabulka. 505 00:27:16,000 --> 00:27:20,000 Připomeňme, že hash tabulky umožňuje, aby v některých vstupů 506 00:27:20,000 --> 00:27:25,000 jako dal ve slově Davida, pokud chcete vložit Davida do nějakého slovníku, 507 00:27:25,000 --> 00:27:27,000 a pak se vrátit nějakou hodnotu obvykle. 508 00:27:27,000 --> 00:27:29,000 V případě speller, true nebo false. 509 00:27:29,000 --> 00:27:33,000 David nebo cokoliv slovo nebo není ve slovníku. 510 00:27:33,000 --> 00:27:36,000 Asociativní pole je opravdu jen hash tabulky, 511 00:27:36,000 --> 00:27:38,000 ale je to mnohem více uživatelsky přívětivé ztělesnění toho. 512 00:27:38,000 --> 00:27:41,000 Jak uvidíme, bude to, které nám umožní dělat některé věci 513 00:27:41,000 --> 00:27:43,000 velmi, velmi snadno. 514 00:27:43,000 --> 00:27:45,000 >> Pojďme se podívat na nějaké základní PHP 515 00:27:45,000 --> 00:27:47,000 Příklady a uvidíme, co můžeme udělat s tímto jazykem. 516 00:27:47,000 --> 00:27:51,000 Nech mě jít napřed a otevřít v našem zdrojovém adresáři dnes 517 00:27:51,000 --> 00:27:54,000 soubor s názvem hello1.php. 518 00:27:54,000 --> 00:27:57,000 Tento soubor je další komentář, než je skutečný kód, 519 00:27:57,000 --> 00:28:00,000 tak ať mi skutečně odstranit všechny připomínky ze souboru 520 00:28:00,000 --> 00:28:05,000 a předloží vám možná nejjednodušší PHP programu tady. 521 00:28:05,000 --> 00:28:07,000 5 řádků, a některé z nich jsou prázdné místo, 522 00:28:07,000 --> 00:28:09,000 takže zaznamenáte některé klíčové rozdíly zde. 523 00:28:09,000 --> 00:28:12,000 Soubor se jmenuje hello1.php. 524 00:28:12,000 --> 00:28:16,000 První řádek, když je 00:28:18,000 Podobný v duchu do HTML, 526 00:28:18,000 --> 00:28:21,000 že posloupnost znaků řekne počítači 527 00:28:21,000 --> 00:28:25,000 "Hej, počítač, tady je program jsme v PHP." 528 00:28:25,000 --> 00:28:28,000 To je jistý, že to není zmatený, že je to nějaký jiný jazyk. 529 00:28:28,000 --> 00:28:30,000 Linka 2 je zajímavý bílý prostor. 530 00:28:30,000 --> 00:28:32,000 Linka 3 je náš starý přítel printf, 531 00:28:32,000 --> 00:28:34,000 tentokrát v souvislosti s PHP. 532 00:28:34,000 --> 00:28:37,000 PHP má vlastní verzi printf, která se chová úplně stejně, 533 00:28:37,000 --> 00:28:39,000 takže je to jen bude tisknout "Hello, world". 534 00:28:39,000 --> 00:28:46,000 A pak to opak tag tady,>, znamená to, že je to pro mé PHP kódu. 535 00:28:46,000 --> 00:28:48,000 >> Pojďme se podívat, jak spustit tento. 536 00:28:48,000 --> 00:28:50,000 Chystám se vrátit do svého terminálovém okně zde. 537 00:28:50,000 --> 00:28:52,000 Chystám se jít do mého PHP adresáře. 538 00:28:52,000 --> 00:28:56,000 Všimněte si, že máme spoustu souborů, první z nichž jeden je hello.php. 539 00:28:56,000 --> 00:29:01,000 Nech mě jít napřed a spustit tento, hello1.php, zadejte. 540 00:29:01,000 --> 00:29:03,000 Přístup odepřen. Dobře. 541 00:29:03,000 --> 00:29:06,000 Jak jsme pevně věci, jako je tento v minulosti? 542 00:29:06,000 --> 00:29:08,000 Co je to? >> [Neslyšitelné Student odpověď] 543 00:29:08,000 --> 00:29:11,000 Potřebujeme číst a psát, ale nech mě to udělat ls-l. 544 00:29:11,000 --> 00:29:14,000 Označit tuto poněkud záhadný výstup podle něhož hello1 545 00:29:14,000 --> 00:29:17,000 Zdá se, že číst a zapisovat mně 546 00:29:17,000 --> 00:29:19,000 ale čitelné všemi ostatními. 547 00:29:19,000 --> 00:29:22,000 Ukázalo se, že to ve skutečnosti není krok správným směrem. 548 00:29:22,000 --> 00:29:25,000 Rozdíl, opět s interpretovaný jazyk 549 00:29:25,000 --> 00:29:27,000 se nemusíte spouštět program přímo. 550 00:29:27,000 --> 00:29:30,000 Byste místo toho použít tlumočníka a předat jej kódu 551 00:29:30,000 --> 00:29:33,000 že jste napsali tak to může interpretovat je řádek po řádku. 552 00:29:33,000 --> 00:29:36,000 V tomto případě, tlumočníka nebo program, který jsem ve skutečnosti chcete spustit 553 00:29:36,000 --> 00:29:38,000 je doslova nazývá PHP. 554 00:29:38,000 --> 00:29:41,000 >> Někde na tomto disku spotřebiče je program, 555 00:29:41,000 --> 00:29:45,000 někdo jiný napsal jen PHP nebo Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Co budu dělat, je zde budu skutečně spustit PHP 557 00:29:48,000 --> 00:29:51,000 ale dát to jako argument příkazového řádku kódu, který jsem napsal, 558 00:29:51,000 --> 00:29:54,000 a pak budu oddálit a stiskněte klávesu Enter. 559 00:29:54,000 --> 00:29:58,000 To běží můj program mi, shora dolů, zleva doprava. 560 00:29:58,000 --> 00:30:01,000 Nech mě jít napřed a otevřít mírný rozptyl tohoto. 561 00:30:01,000 --> 00:30:05,000 V hello2.php oznámení, že to taky 562 00:30:05,000 --> 00:30:08,000 je většinou připomínky, tak mi dovolte zbavit těch jako rozptýlení, 563 00:30:08,000 --> 00:30:13,000 a to, co je jasně odlišné nyní o tomto souboru? 564 00:30:13,000 --> 00:30:15,000 Tam je to nová řada, poněkud tajemná nahoře. 565 00:30:15,000 --> 00:30:20,000 V řádku 1 je #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin je úmluva o Linuxu a Mac OS pro binární soubory, 567 00:30:24,000 --> 00:30:27,000 tak / bin znamená, že tento je složka obsahující spoustu binárek 568 00:30:27,000 --> 00:30:29,000 , který je naprogramován, z nichž jedna je PHP. 569 00:30:29,000 --> 00:30:32,000 #! je přezdíval shebang, 570 00:30:32,000 --> 00:30:35,000 který je rychlý způsob, jak to říct, a co to znamená 571 00:30:35,000 --> 00:30:40,000 je, že při spuštění tohoto programu teď tam náznak v horní části souboru 572 00:30:40,000 --> 00:30:44,000 , která říká počítači, co interpret použít. 573 00:30:44,000 --> 00:30:47,000 >> To je trochu nepříjemné, pokud jste měli říct svým uživatelům a vaše zákazníky 574 00:30:47,000 --> 00:30:50,000 "Hele, my napsal tento program s názvem hello1.php." 575 00:30:50,000 --> 00:30:54,000 Jediné, co musíte udělat, je navždy spustit PHP a pak název tohoto programu. 576 00:30:54,000 --> 00:30:58,000 Upřímně řečeno, bylo by to prostě být hezčí spustit hello1.php, 577 00:30:58,000 --> 00:31:00,000 a skutečně, můžeme-li se provést následující kroky. 578 00:31:00,000 --> 00:31:05,000 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 579 00:31:05,000 --> 00:31:10,000 a pak si přečtěte číst, tak jsem si ještě udělat, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Ale jsme zavedli to někdy tak krátce minule, příkaz chmod. 581 00:31:15,000 --> 00:31:20,000 Pokud jsem to chmod a + x, což znamená, že všechny Plus vykonatelnosti, 582 00:31:20,000 --> 00:31:26,000 a pak hello2.php a pak se ls-l opět všimnout, co se změnilo. 583 00:31:26,000 --> 00:31:29,000 Jeden, Linux je mi ukázal název souboru v zelené sdělit myšlenku, 584 00:31:29,000 --> 00:31:32,000 že je to spustitelný, ale ještě důležitější je, na levé straně 585 00:31:32,000 --> 00:31:36,000 Všimněte si, že bit reprezentovat x pro spustitelný soubor je nyní nastavena. 586 00:31:36,000 --> 00:31:42,000 Co to teď znamená, můžu běžet ./hello2.php jako obvykle, 587 00:31:42,000 --> 00:31:45,000 zmáčkněte Enter, a to z důvodu shebang na velmi začátek souboru 588 00:31:45,000 --> 00:31:48,000 to je náznak, znovu, Linux, která říká, 589 00:31:48,000 --> 00:31:51,000 použít tento interpret spustit tento soubor. 590 00:31:51,000 --> 00:31:54,000 Nedělejte si starosti nutit uživatele, aby skutečně psát. 591 00:31:54,000 --> 00:31:57,000 >> A co je hezké teď je to tak trochu irelevantní pro moje zákazníky nebo moji přátelé 592 00:31:57,000 --> 00:32:01,000 jaký jazyk jsem napsal tento program, takže můžu pokračovat s MV 593 00:32:01,000 --> 00:32:04,000 a přejmenovat věc hello2, například. 594 00:32:04,000 --> 00:32:07,000 A teď když to udělám ./hello2 595 00:32:07,000 --> 00:32:10,000 a oddálit můj program běží. 596 00:32:10,000 --> 00:32:13,000 Tyto přípony souborů jsou lidské konvence, která je nezbytná 597 00:32:13,000 --> 00:32:15,000 něco jako Clang a dělat, kteří hledají pro ně. 598 00:32:15,000 --> 00:32:18,000 Ale pro PHP, mohl bych zavolat tuto příponu, co chci. 599 00:32:18,000 --> 00:32:22,000 Mohl bych přimět svět, aby si mysleli, že jsem opravdu dobrý Ruby, 600 00:32:22,000 --> 00:32:25,000 a já jsem mohl psát hello2.rb a pak spustit to, 601 00:32:25,000 --> 00:32:28,000 a voila, teď mám verzi Ruby, která je úplná lež. 602 00:32:28,000 --> 00:32:30,000 Ale přípony souborů jsou bezvýznamné 603 00:32:30,000 --> 00:32:35,000 v případě, že je soubor spustitelný a má tento speciální náznak v horní části souboru. 604 00:32:35,000 --> 00:32:38,000 >> Nyní, stejně jako stranou, dovolte mi ukázat vám rychle verze 3, 605 00:32:38,000 --> 00:32:40,000 která je trochu užitečný trik vědět. 606 00:32:40,000 --> 00:32:45,000 V hello3 jsem něco trochu špatně 607 00:32:45,000 --> 00:32:47,000 že budu aktualizovat zdrojový kód online. 608 00:32:47,000 --> 00:32:50,000 Ve verzi 3 se ukáže, že na většině linuxových počítačů 609 00:32:50,000 --> 00:32:53,000 je tu program s názvem env pro životní prostředí, 610 00:32:53,000 --> 00:32:56,000 a co můžete udělat je, pokud máte tušení, kde PHP 611 00:32:56,000 --> 00:33:00,000 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 612 00:33:00,000 --> 00:33:03,000 že někdo používá, env jen říká, spustit env, 613 00:33:03,000 --> 00:33:07,000 který je na většině systémů, a zjistit, kde je PHP. 614 00:33:07,000 --> 00:33:11,000 Jen běžný trik, takže nemusíte mít strach o to zjistit, kde je program. 615 00:33:11,000 --> 00:33:14,000 Ale pokud si pozor, aby zjistili, kde je program a vy jste nestaral tak daleko 616 00:33:14,000 --> 00:33:16,000 můžete použít příkaz, který. 617 00:33:16,000 --> 00:33:19,000 >> Dovolte mi, abych oddálit a typ, který php, 618 00:33:19,000 --> 00:33:23,000 a všimněte si, že mi říká, že je to vlastně v usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 Je to trochu lež. Je to také v přihrádce. 620 00:33:25,000 --> 00:33:27,000 Je to prostě ukazuje mi první hit. 621 00:33:27,000 --> 00:33:31,000 Pokud jste se někdy nad tím, kde je zvonění, které zvonění, to je v usr / bin / řinčet, 622 00:33:31,000 --> 00:33:34,000 které tvoří, usr / bin / make, a co to znamená je po celou tu dobu 623 00:33:34,000 --> 00:33:38,000 jste mohli být psaní usr / bin / řinčet zadejte spustit řinčet, 624 00:33:38,000 --> 00:33:41,000 ale je to docela únavné k tomu, že, takže některé složky 625 00:33:41,000 --> 00:33:44,000 jako usr / bin a bin jsou považovány za výchozí 626 00:33:44,000 --> 00:33:50,000 takže počítač ví, hledat v nich pro vás. 627 00:33:50,000 --> 00:33:53,000 Jakékoliv dotazy týkající se psaní super, super jednoduchý Hello World program 628 00:33:53,000 --> 00:33:55,000 v PHP a necháte jej? 629 00:33:55,000 --> 00:33:59,000 Vzhledem k tomu, teď začneme zavádět přesvědčivý syntaxi. 630 00:33:59,000 --> 00:34:01,000 Dobře, jdeme na to. 631 00:34:01,000 --> 00:34:03,000 Tyto programy jsme viděli skutečně všechny z nich před. 632 00:34:03,000 --> 00:34:07,000 >> Pokud jsem otevřít, například, pojďme udělat beer1.php, 633 00:34:07,000 --> 00:34:09,000 nepůjdeme přes několik verzí, ale to, co jsem udělal 634 00:34:09,000 --> 00:34:13,000 byl jsem si sedl a nalil, nebo převést 635 00:34:13,000 --> 00:34:15,000 můj C kód PHP kód zde. 636 00:34:15,000 --> 00:34:18,000 Většina z horní části souboru je komentáře nahoru. 637 00:34:18,000 --> 00:34:20,000 Ukázalo se, že je tu ještě jedna nová funkce musíme nazývá readline. 638 00:34:20,000 --> 00:34:23,000 GetString, stažení, z týden 0 kupředu byl CS50 věc. 639 00:34:23,000 --> 00:34:27,000 PHP přichází s vlastní uživatelsky příjemný funkci nazvanou readline 640 00:34:27,000 --> 00:34:30,000 že trvá 1 argument, který určuje řádku 641 00:34:30,000 --> 00:34:33,000 které chcete zobrazit na uživatele, a to, co dělá readline 642 00:34:33,000 --> 00:34:35,000 je vrátí bez ohledu uživatel zadá v. 643 00:34:35,000 --> 00:34:39,000 V tomto případě, jsem deklarování proměnné s názvem $ n. 644 00:34:39,000 --> 00:34:42,000 Jsem skladování v něm návratovou hodnotu readline 645 00:34:42,000 --> 00:34:44,000 po výzvě uživatele s tímto řetězcem. 646 00:34:44,000 --> 00:34:47,000 Jen pro zálohování, skutečně spustit tuto věc, nech mě jít napřed 647 00:34:47,000 --> 00:34:50,000 a spustit php beer1.php. 648 00:34:50,000 --> 00:34:53,000 Kolik lahví bude? Udělejme 2 tentokrát. 649 00:34:53,000 --> 00:34:55,000 Enter. To je vše. 650 00:34:55,000 --> 00:34:59,000 >> Program je funkčně shodný s verzí C od týdny. 651 00:34:59,000 --> 00:35:01,000 Ale syntakticky pojďme podívat, co je odlišné. 652 00:35:01,000 --> 00:35:05,000 Poté, co jsem si int z uživatelského oznámení, že dělám nějakou kontrolu chyb, 653 00:35:05,000 --> 00:35:08,000 a pokud je n menší než 1 jsem přestal a já vytisknout 654 00:35:08,000 --> 00:35:11,000 Omlouvám zpráva pro uživatele a výstup s 1. 655 00:35:11,000 --> 00:35:13,000 I to je trochu jiný. 656 00:35:13,000 --> 00:35:16,000  V C co jsme udělali? V jazyce C jsme se vrátili 1. 657 00:35:16,000 --> 00:35:20,000 V PHP můžete ukončit, 1, které upřímně řečeno je myslím trochu více intuitivní 658 00:35:20,000 --> 00:35:22,000 proto, že jste doslova ukončení programu. 659 00:35:22,000 --> 00:35:25,000 Dobře, a pak sem otravné píseň je totožný syntakticky 660 00:35:25,000 --> 00:35:29,000 kromě proměnné, takže se zde v souladu 24 vpřed 661 00:35:29,000 --> 00:35:31,000 všimnete moji duši pro smyčce je téměř stejný, 662 00:35:31,000 --> 00:35:34,000 ale mám $ před i a n, 663 00:35:34,000 --> 00:35:37,000 a co je také chybí linky 26, které jsme měli v minulosti 664 00:35:37,000 --> 00:35:39,000 při deklarování proměnné i? 665 00:35:39,000 --> 00:35:41,000 Tam je žádný typ. 666 00:35:41,000 --> 00:35:43,000 Je nesprávné v PHP říci int. 667 00:35:43,000 --> 00:35:45,000 Vy prostě musíte udělat, že. 668 00:35:45,000 --> 00:35:48,000 Počítač, interpret PHP je dost chytrý na to, aby si uvědomit, 669 00:35:48,000 --> 00:35:51,000 že pokud vložíte číslo $ I to bude léčit 670 00:35:51,000 --> 00:35:53,000 jako číslo pro vás. 671 00:35:53,000 --> 00:35:57,000 A pak se tady připojit $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 To vše je stejné, a pak tady dole budeme dělat "Wow, to je nepříjemné" printf 673 00:36:00,000 --> 00:36:02,000 a poté ukončete (0). 674 00:36:02,000 --> 00:36:05,000 >> Opět, stánek s jídlem je, že i když budeme trávit poměrně 675 00:36:05,000 --> 00:36:09,000 málo času na PHP, jistě versus to, co jsme udělali na C, 676 00:36:09,000 --> 00:36:12,000 je to téměř stejné, a tak to, co budeme dnes dělat a příští týden 677 00:36:12,000 --> 00:36:14,000 a dále je zaměřena opravdu na některé z nových myšlenek. 678 00:36:14,000 --> 00:36:17,000 Jen vidět, že jedna věc se přeložit přes od C, 679 00:36:17,000 --> 00:36:20,000 to bylo super jednoduchý program, který jsme dělali v 1. týdne 680 00:36:20,000 --> 00:36:22,000 nebo 2, které kostičky hodnotu. 681 00:36:22,000 --> 00:36:25,000 Ale co bylo zajímavé, v době, kdy o tomto programu je to, že 682 00:36:25,000 --> 00:36:28,000 zavedl i pojem vlastní písemného funkce, kterou jsme sami napsali. 683 00:36:28,000 --> 00:36:31,000 Syntaxe v PHP je téměř stejný. 684 00:36:31,000 --> 00:36:33,000 Tady je můj program do horní. 685 00:36:33,000 --> 00:36:35,000 Všimněte si opět chybí, je nějaké ponětí o hlavní. 686 00:36:35,000 --> 00:36:39,000 I začít psát kód, a to je to, co se děje, aby si vykonán tlumočníka. 687 00:36:39,000 --> 00:36:42,000 I vytisknout x je nyní 2, pravděpodobně. 688 00:36:42,000 --> 00:36:44,000 Pak jsem tvrdit, Cubing ... 689 00:36:44,000 --> 00:36:47,000 Pak jsem volat krychle funkce a předat $ x 690 00:36:47,000 --> 00:36:50,000 a přiřadit návratovou hodnotu $ x. 691 00:36:50,000 --> 00:36:53,000 Pak jsem tvrdit, že je to kostičky, a pak jsem řekl to, které snad 692 00:36:53,000 --> 00:36:55,000 bude říkat x je nyní 8. 693 00:36:55,000 --> 00:36:59,000 Syntaxe funkce v PHP je někdy tak trochu jinak. 694 00:36:59,000 --> 00:37:01,000 Opět chybí, je návratový typ. 695 00:37:01,000 --> 00:37:05,000 Opět chybí, je návratový typ a také chybí, je to, co jiný typ? 696 00:37:05,000 --> 00:37:07,000 [Neslyšitelné Student odpověď] 697 00:37:07,000 --> 00:37:10,000 No, jo, to je dobrý. Vraťme se k tomu v druhém. 698 00:37:10,000 --> 00:37:12,000 >> Nemáme například int zde. 699 00:37:12,000 --> 00:37:15,000 Nechceme, například, že int zde proto, opět v PHP 700 00:37:15,000 --> 00:37:18,000 prostě nemusíte, a to neměl dělat, že, 701 00:37:18,000 --> 00:37:20,000 ale tam je to nové klíčové slovo volaná funkce. 702 00:37:20,000 --> 00:37:23,000 V PHP je to skoro trochu jasnější, protože pokud chcete funkci 703 00:37:23,000 --> 00:37:26,000 jste doslova řekl funkci, dáte mu jméno a pak čárkami oddělený seznam 704 00:37:26,000 --> 00:37:28,000 jestliže některý z jejích argumentů. 705 00:37:28,000 --> 00:37:32,000 Není třeba říkat, neplatné nebo něco podobného, ​​že, a pak návrat je stejný, 706 00:37:32,000 --> 00:37:35,000 $ * $ * $. 707 00:37:35,000 --> 00:37:38,000 Co je také chybí? Sammy upozornil tento tady. 708 00:37:38,000 --> 00:37:43,000 V horní části souboru zcela chybí v PHP je také prototyp. 709 00:37:43,000 --> 00:37:45,000 I to je záměrné. 710 00:37:45,000 --> 00:37:48,000 Jazyky a tlumočníci, jako PHP jsou chytřejší než C kdy byl 711 00:37:48,000 --> 00:37:50,000 v kompilátory jako Clang. 712 00:37:50,000 --> 00:37:53,000 >> Připomeňme, že zvonit, pokud jste neřekl to, že krychli existuje, 713 00:37:53,000 --> 00:37:56,000 pokud jste si sdělit, že printf existuje jako s prototypem 714 00:37:56,000 --> 00:38:00,000 nebo # include, dobře, to bude řvát na vás a ani kompilaci kódu. 715 00:38:00,000 --> 00:38:03,000 PHP a další moderní jazyky jsou mnohem chytřejší, když přijde na tohle. 716 00:38:03,000 --> 00:38:07,000 Budou mít to na sobě přečíst všechny vaše kódu 717 00:38:07,000 --> 00:38:11,000 a pak křičet na vás pouze tehdy, pokud zjistí, že krychle nikde. 718 00:38:11,000 --> 00:38:15,000 Nezáleží na tom, jestli je kostka na dně nebo horní, nebo dokonce v některých samostatném souboru. 719 00:38:15,000 --> 00:38:18,000 PHP a podobné jazyky jsou nyní dost chytří na to dívat dopředu 720 00:38:18,000 --> 00:38:26,000 na všechno, co před považovaly vás jak mít udělal chybu. 721 00:38:26,000 --> 00:38:28,000 Pokud nám tedy zbývá? 722 00:38:28,000 --> 00:38:32,000 >> Pojďme udělat poslední příklad tady v podmínkách, 723 00:38:32,000 --> 00:38:35,000 a když jsem otevřít conditions2.php oznámení příliš 724 00:38:35,000 --> 00:38:37,000 Syntaxe je zde téměř stejný. 725 00:38:37,000 --> 00:38:40,000 Já používám readline místo GetString, ale že linka je stejná jako dříve, 726 00:38:40,000 --> 00:38:42,000 "Rád bych číslo prosím." 727 00:38:42,000 --> 00:38:45,000 Pak jsem mít, pokud podmínku, else if, a pak jiný, 728 00:38:45,000 --> 00:38:48,000 ale funkčně je tento program také totožné s tím, co jsme dělali před několika týdny, 729 00:38:48,000 --> 00:38:51,000 takže když jsem spustit tuto věc, PHP conditions2, 730 00:38:51,000 --> 00:38:54,000 a dám mu číslo jako 23 - 731 00:38:54,000 --> 00:38:57,000 Vybral jsem si kladné číslo. Pokud dám, že -1 Vybral jsem si záporné číslo. 732 00:38:57,000 --> 00:39:00,000 Pokud dám, že jsem opravdu vybral 0 0. 733 00:39:00,000 --> 00:39:02,000 Takže kdo se zajímá o všechno? 734 00:39:02,000 --> 00:39:06,000 No, jeden z legrace druhu cvičení zde 735 00:39:06,000 --> 00:39:10,000 aspoň pro mě bylo vrátit se zpátky a uvidíte, jak rychle bych mohl implementovat PSet 5, 736 00:39:10,000 --> 00:39:12,000 pravopisné chyby Pset. 737 00:39:12,000 --> 00:39:15,000 Připomeňme si, že tam byl tento soubor s názvem speller.c, 738 00:39:15,000 --> 00:39:17,000 a tam byl soubor s názvem dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Co jsem udělal, bylo mi trochu strávil několik minut a já jsem konvertoval kód C 740 00:39:20,000 --> 00:39:23,000 ke kódu PHP, a nebudeme trávit tolik času na speller 741 00:39:23,000 --> 00:39:26,000 protože stejně jako v PSet 5 jste opravdu potřebujete 742 00:39:26,000 --> 00:39:29,000 tráví hodně času na speller sám, protože vaše pozornost byla na slovníku. 743 00:39:29,000 --> 00:39:32,000 >> Postačí, když řeknu, že pokud budete číst přes speller, 744 00:39:32,000 --> 00:39:35,000 tento soubor zde, je to docela hodně odpovídá kódu C 745 00:39:35,000 --> 00:39:37,000 jsme vám dali za PSet 5. 746 00:39:37,000 --> 00:39:39,000 Právě jsem přidal nějaké $ místech. 747 00:39:39,000 --> 00:39:43,000 Změnil jsem některé názvy funkcí v případě, že neexistovala v PHP. 748 00:39:43,000 --> 00:39:45,000 Je tu ještě jedna další věc tady, preg_match, 749 00:39:45,000 --> 00:39:48,000 což je trochu obsáhlejší způsob, jak dělat něco, ale vrátíme se, že nakonec. 750 00:39:48,000 --> 00:39:51,000 Ale ve zkratce, pravopisu je téměř totožné, a když se podíváte na samém dně 751 00:39:51,000 --> 00:39:54,000 to, co se nakonec vyplivne je to tady, 752 00:39:54,000 --> 00:39:57,000 slova chybně, slova ve slovech slovníku, v textu. 753 00:39:57,000 --> 00:40:00,000 Dobře, takže to, co je zajímavé, je nyní následující. 754 00:40:00,000 --> 00:40:05,000 V horní části mého souboru jsem vyžadující dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Stejně jako C je # include PHP má speciální funkci nazvanou vyžadují 756 00:40:09,000 --> 00:40:14,000 že skoro dělá to samé, vyžadují soubor s názvem dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Jak mohu jít o implementaci PSet 5? 758 00:40:18,000 --> 00:40:21,000 Nech mě jít dál a otevřít soubor zde. 759 00:40:21,000 --> 00:40:24,000 Dovolte mi, abych trochu odkaz zde. 760 00:40:24,000 --> 00:40:29,000 A dovolte mi vytvořit nový soubor a začít volat tento dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Dovolte mi, abych dal jej do jiné složky, takže můžeme udělat žít. 762 00:40:31,000 --> 00:40:33,000 A teď budu Zoom 763 00:40:33,000 --> 00:40:37,000 Chystám se začít můj PHP soubor s otevřeným držákem php uzavřen držák. 764 00:40:37,000 --> 00:40:40,000 A pak tady bylo několik funkcí, které jsem potřeboval k provedení pro PSet 5, 765 00:40:40,000 --> 00:40:42,000 tak mi dovolte začít provádět některé z těch, 766 00:40:42,000 --> 00:40:47,000 tak kontrola funkce, který měl vzít slovo jako argument. 767 00:40:47,000 --> 00:40:49,000 Uděláme to a vrátit se k němu za chvíli. 768 00:40:49,000 --> 00:40:53,000 >> Tam byl zatížení pro funkci, která se v čem jako argument? 769 00:40:53,000 --> 00:40:56,000 Slovník, takže soubor, který jsem vlastně chtěl načíst. 770 00:40:56,000 --> 00:41:00,000 Tam byl funkce velikosti, která nepřijala žádné argumenty 771 00:41:00,000 --> 00:41:04,000 a tam byl na funkci, co byla ta druhá? 772 00:41:04,000 --> 00:41:06,000 Uvolnit, která nepřijala žádné argumenty ani. 773 00:41:06,000 --> 00:41:10,000 Jedná se o 4 funkce, které bych třeba nyní realizovat v PHP, 774 00:41:10,000 --> 00:41:13,000 a to, co budu dělat, je pokračovat a udělat to. 775 00:41:13,000 --> 00:41:16,000 Mnoho z vás používá hash tabulku v PSet 5, 776 00:41:16,000 --> 00:41:21,000 tak nechte mě jít dopředu a vytvořit hash tabulku v PHP. 777 00:41:21,000 --> 00:41:23,000 Hotovo. 778 00:41:23,000 --> 00:41:25,000 To mi dává hash tabulky. No, proč? 779 00:41:25,000 --> 00:41:30,000 Jeden je proměnná s názvem $ table, jen vykouzlit představu hash tabulky. 780 00:41:30,000 --> 00:41:34,000 Hranaté závorky, i když, vzpomínám, představují co? 781 00:41:34,000 --> 00:41:37,000 Pole, ale v polích PHP nemusí být číselně indexované. 782 00:41:37,000 --> 00:41:41,000 Oni mohou také být asociativní pole, 783 00:41:41,000 --> 00:41:44,000 což znamená, že můžete mít libovolné klíče a hodnoty. 784 00:41:44,000 --> 00:41:49,000 >> Stejně jako v PSet 5, ti z vás, kdo to udělal hash tabulky implementace 785 00:41:49,000 --> 00:41:53,000 pravděpodobně zní slovo a pak ji vložil do řetězce propojených seznamů, 786 00:41:53,000 --> 00:41:56,000 nebo jste uložili hodnotu pravého kdesi něco v tom smyslu. 787 00:41:56,000 --> 00:41:59,000 Můžete nějak vzpomněl na skutečnost, že slovo tam byl. 788 00:41:59,000 --> 00:42:01,000 Pro tuto chvíli, že to bude můj hash tabulka, 789 00:42:01,000 --> 00:42:06,000 a tak teď jít o provádění kontrolní funkci 790 00:42:06,000 --> 00:42:09,000 I stačí se podívat dovnitř tohoto hash tabulky 791 00:42:09,000 --> 00:42:11,000 a uvidíme, jestli slovo je tam. 792 00:42:11,000 --> 00:42:15,000 Co budu dělat, je, že řeknu-li, 793 00:42:15,000 --> 00:42:20,000 řekněme isset, což je PHP funkce, která doslova znamená, klíčů, 794 00:42:20,000 --> 00:42:24,000 tak isset ($ tabulka [$ slovo], 795 00:42:24,000 --> 00:42:29,000 a pokud ano, vrátí hodnotu true. 796 00:42:29,000 --> 00:42:32,000 To je všechno. To je Pset 5 v PHP. 797 00:42:32,000 --> 00:42:34,000 No, ve spravedlnost, v pořádku. 798 00:42:34,000 --> 00:42:37,000 Else vrátí false, tak to tam není. 799 00:42:37,000 --> 00:42:39,000 Co se opravdu děje? 800 00:42:39,000 --> 00:42:42,000 No, pokud tabulka nebo hash table zde obecně- 801 00:42:42,000 --> 00:42:46,000 je asociativní pole, které znamená, že můžete index do něj 802 00:42:46,000 --> 00:42:50,000 se slovem jako "slovo", a budete muset vrátit nějakou hodnotu. 803 00:42:50,000 --> 00:42:52,000 >> Jsme trochu dostat o krok napřed před sebe. 804 00:42:52,000 --> 00:42:56,000 To by bylo docela pěkné, kdybychom skutečně načten soubor nejprve, 805 00:42:56,000 --> 00:42:58,000 takže zatížení není tak jednoduché, ale nechte mě jít dopředu a vybičovat 806 00:42:58,000 --> 00:43:00,000  Opravdu rychlá implementace zatížení. 807 00:43:00,000 --> 00:43:07,000 Nech mě jít dál a říct, slova, dostane soubor slovník. 808 00:43:07,000 --> 00:43:10,000 Soubor funkce v PHP otevře soubor 809 00:43:10,000 --> 00:43:12,000 a vrátí se do tebe pole všech slov v tomto souboru, 810 00:43:12,000 --> 00:43:14,000 Jen podá je na vás. 811 00:43:14,000 --> 00:43:16,000 To byla velká bolest taky, ne? 812 00:43:16,000 --> 00:43:21,000 Nyní foreach, tohle je náš nový konstrukt, foreach ($ slova jako $ slovo). 813 00:43:21,000 --> 00:43:25,000 Tato smyčka se začnou iterace se pole slova 814 00:43:25,000 --> 00:43:30,000 a přiřadit k $ slovo proměnné každé slovo v souboru 815 00:43:30,000 --> 00:43:32,000 od prvního do druhého na třetí až čtvrté celou cestu 816 00:43:32,000 --> 00:43:35,000 takže nemám dělat nepříjemné [i] notaci a podobně. 817 00:43:35,000 --> 00:43:38,000 A to, co jsem prostě dělat pro každou z těchto slov 818 00:43:38,000 --> 00:43:43,000 je uložte jej ve svém tabulce indexování do tabulky 819 00:43:43,000 --> 00:43:47,000 a pak dělá pravda, protože si pamatovat 820 00:43:47,000 --> 00:43:50,000 že slovo je v mém slovníku, vše co opravdu musíte udělat, 821 00:43:50,000 --> 00:43:55,000 je druh otočit a trochu říkají, že toto slovo v mém hašovací tabulce je tam, pravda. 822 00:43:55,000 --> 00:43:58,000 A pokud to tam není, nemám explicitně dát false, 823 00:43:58,000 --> 00:44:01,000 jinak bych musel dát false ve všech možných slov ve vesmíru. 824 00:44:01,000 --> 00:44:05,000 >> To stačí, mě jen nastavit hodnoty indexu 825 00:44:05,000 --> 00:44:09,000 jako pravdivé, pokud slovo je vlastně v mém tabulky hash. 826 00:44:09,000 --> 00:44:12,000 Teď jsem řezání pár zatáček sem, že budu mávat rukama na teď, 827 00:44:12,000 --> 00:44:15,000 ale nyní zatížení funkce je hotovo. 828 00:44:15,000 --> 00:44:18,000 I načíst všechna slova ze souboru do pole. 829 00:44:18,000 --> 00:44:21,000 I iteraci tohoto pole, a pro každé slovo v poli 830 00:44:21,000 --> 00:44:24,000 I zapojte ho do hash tabulky s 1 řádek kódu. 831 00:44:24,000 --> 00:44:26,000 To je legrace. Víte, jak můžeme realizovat velikost teď? 832 00:44:26,000 --> 00:44:28,000 No, velikost je vždy docela snadné, ve spravedlnost. 833 00:44:28,000 --> 00:44:32,000 Zde se můžeme prostě vrátit počet tabulky. 834 00:44:32,000 --> 00:44:34,000 To je docela snadné i spočítat počet věcí v tabulce. 835 00:44:34,000 --> 00:44:36,000 To je vlastně docela není nejúčinnější. 836 00:44:36,000 --> 00:44:39,000 Asi bych měla mít proměnnou s názvem velikosti, takže můžeme udělat 837 00:44:39,000 --> 00:44:41,000 v konstantním čase, ale to je docela snadné. 838 00:44:41,000 --> 00:44:45,000 Oh, a potom uvolněte, pokud skutečně chceme být anální zde 839 00:44:45,000 --> 00:44:47,000 můžeme říci, že to, jak se uvolnit něco. 840 00:44:47,000 --> 00:44:49,000 Stačí nastavit proměnnou rovnající se prázdné pole, 841 00:44:49,000 --> 00:44:51,000 a zbaví všeho, co tam byl. 842 00:44:51,000 --> 00:44:53,000 Není třeba volat zdarma. 843 00:44:53,000 --> 00:44:56,000 >> Opět, jsem uřezal některé rohy, a omlouváme se za sadu problém přidělování 5 844 00:44:56,000 --> 00:45:00,000 snad v C, ale pokud nyní pokračovat a spustit to, 845 00:45:00,000 --> 00:45:02,000 Chystám se skutečně spustit verzi, která jsem napsal v předstihu 846 00:45:02,000 --> 00:45:05,000 jen proto, že jsem neměl žádné syntaktické chyby vůbec. 847 00:45:05,000 --> 00:45:08,000 Nech mě jít napřed a spustit pravopisu. Použití je stejné. 848 00:45:08,000 --> 00:45:12,000 Zde je slovník soubor, který najdete jen slovo foo. 849 00:45:12,000 --> 00:45:15,000 Zde je textový soubor, který najdete jen foo bar. 850 00:45:15,000 --> 00:45:19,000 Pojďme kontrolu pravopisu tento, tak pravopisu, pomocí tohoto slovníku soubor na tomto textovém souboru. 851 00:45:19,000 --> 00:45:21,000 Je tu ještě jedna chybně napsané slovo, bar, a voila. 852 00:45:21,000 --> 00:45:23,000 Hotovo s PSet 5. 853 00:45:23,000 --> 00:45:30,000 Pojďme se 5-minut přestávku tady, a vrátíme se a více na PHP. 854 00:45:30,000 --> 00:45:32,000 Dobře, jsme zpátky. 855 00:45:32,000 --> 00:45:34,000 Pojďme si-mě nenávidí za chvíli. 856 00:45:34,000 --> 00:45:37,000 Pojďme se nyní skutečně uvidíme, jestli to není pozitivní 857 00:45:37,000 --> 00:45:39,000 skutečně provádí tuto věc v PHP. 858 00:45:39,000 --> 00:45:43,000 Dejme tomu, že trvalo 45 sekund na provedení. 859 00:45:43,000 --> 00:45:45,000 >> Ale pojďme pokračovat nyní běží věci. 860 00:45:45,000 --> 00:45:49,000 Nech mě jít napřed a spustit verzi C 861 00:45:49,000 --> 00:45:52,000 z speller, a budeme jej spustit na jednom z největších souborů, 862 00:45:52,000 --> 00:45:54,000 který je King James Bible. 863 00:45:54,000 --> 00:45:57,000 A to je zde v-pojďme do našeho adresáře C, 864 00:45:57,000 --> 00:46:01,000 speller na krále Jakuba 5th. 865 00:46:01,000 --> 00:46:03,000 Mnoho slovy s chybným. 866 00:46:03,000 --> 00:46:06,000 Dobře, tak to je výstup, který pravděpodobně dostal, i když časy se trochu liší, 867 00:46:06,000 --> 00:46:09,000 pokud máš všechno funguje správně, a tak čas v celkové kontrolu pravopisu 868 00:46:09,000 --> 00:46:13,000 Král James Bible byl 0,38 sekundy, takže docela dobrá použití této implementace. 869 00:46:13,000 --> 00:46:16,000 Teď mě nech jít do verze PHP, které jsme právě napsali. 870 00:46:16,000 --> 00:46:18,000 Dovolte mi, abych spustit pravopisu na krále Jakuba. 871 00:46:18,000 --> 00:46:21,000 Jejda, ignorovat tuto chybu. Jsem ve špatném adresáři. 872 00:46:21,000 --> 00:46:24,000 Speller na krále Jakuba 5th. 873 00:46:46,000 --> 00:46:48,000 Téměř hotovo. 874 00:46:48,000 --> 00:46:51,000 >> Dobře, bude vychytralý pozorovatel si uvědomit, že je více než 3 sekundy tam. 875 00:46:51,000 --> 00:46:54,000 To je pravda, doba chodu. 876 00:46:54,000 --> 00:46:58,000 Ukazuje se, že to chvíli trvá, plivat spoustu textu z 877 00:46:58,000 --> 00:47:00,000 protože ukládání do vyrovnávací paměti problémy, ale dlouhý příběh krátký, 878 00:47:00,000 --> 00:47:04,000 to bylo 3,15 sekund strojového času, CPU času, 879 00:47:04,000 --> 00:47:07,000 versus to, co bylo před chvílí? 880 00:47:07,000 --> 00:47:09,000 Jako 0.3. 881 00:47:09,000 --> 00:47:11,000 Myslím, že je to o řád pomalejší, tak kde je to 882 00:47:11,000 --> 00:47:14,000 směšné zpomalení přichází? 883 00:47:14,000 --> 00:47:17,000 No, jak tomu bylo v případě s většinou všech konstrukční rozhodnutí, které jsme udělali 884 00:47:17,000 --> 00:47:21,000 ve třídě během posledních 9 týdnů je to téměř vždy to kompromis. 885 00:47:21,000 --> 00:47:24,000 Někdy mezi jen prostorem, někdy mezi prostorem a časem, 886 00:47:24,000 --> 00:47:27,000 prostor, čas a vývoj úsilí, a opravdu tady, i když 887 00:47:27,000 --> 00:47:31,000 jsme uložili obrovské množství času, možná potenciálně 10-20-30 hodin 888 00:47:31,000 --> 00:47:34,000 rozvojové času provádí kontrolu pravopisu 889 00:47:34,000 --> 00:47:36,000 od bičování ji v pouhých 45 sekund s tímto jazykem 890 00:47:36,000 --> 00:47:40,000 cenou, kterou platíme, je, že je to o řád pomalejší v důsledku, 891 00:47:40,000 --> 00:47:43,000 a to je obvykle případ s většinou všech interpretovaný jazyk, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl nebo jiné rámci kterého 893 00:47:46,000 --> 00:47:49,000 pokud se chystáte spustit prostřednictvím tlumočníka a mít to číst kód 894 00:47:49,000 --> 00:47:52,000 řádek po řádku, shora dolů, zleva doprava, 895 00:47:52,000 --> 00:47:55,000 že zprostředkovatel bude nějakou dobu trvat jeho vlastní, 896 00:47:55,000 --> 00:47:59,000 a to, co jste cítili tu ve 3 sekundách, na rozdíl od 0,3 sekundy 897 00:47:59,000 --> 00:48:02,000 je skutečnost, že je tento prostředníka, který má na doslova interpretovat náš kód 898 00:48:02,000 --> 00:48:05,000 řádek po řádku, a nedej bože, pokud jste uvnitř smyčky 899 00:48:05,000 --> 00:48:08,000 s velkým souborem obsahujícím stovky tisíc slov. 900 00:48:08,000 --> 00:48:11,000 >> To režie se chystá sečíst a sčítají a sčítají a sčítají. 901 00:48:11,000 --> 00:48:16,000 Pro nástroj, jako je tento, že to asi není nejlepší jazyk použít pro realizaci 902 00:48:16,000 --> 00:48:20,000 spell checker, pokud bezprostřednosti je v zájmu uživatele a pro vás. 903 00:48:20,000 --> 00:48:23,000 Ale luxus máme za chvíli je, pokud 904 00:48:23,000 --> 00:48:27,000 používat jazyk jako PHP nebo hodně interpretovaných jazyků 905 00:48:27,000 --> 00:48:30,000 v souvislosti s Web, v tomto případě, máte výhodu 906 00:48:30,000 --> 00:48:34,000 že internet je mnohem pomalejší, než většina počítačů. 907 00:48:34,000 --> 00:48:38,000 Máte GHz CPU v počítači, 2 GHz, možná dokonce více v těchto dnech. 908 00:48:38,000 --> 00:48:41,000 Ale realita je na internetu je vysoká částka latence 909 00:48:41,000 --> 00:48:45,000 přičemž pro prohlížeč mluvit na serveru, i když jsme to viděli minulý týden 910 00:48:45,000 --> 00:48:47,000 , že je to docela rychle, polovina milisekundu nebo tak, 911 00:48:47,000 --> 00:48:51,000 to taky přidává do, a pokud jste stahování věci jako obraz 912 00:48:51,000 --> 00:48:54,000 nebo fotografie Facebook nebo získání okamžitých zpráv přes klábosení Facebook, 913 00:48:54,000 --> 00:48:57,000 Gchat nebo podobně, všechny tyto zpáteční časy 914 00:48:57,000 --> 00:49:00,000 mezi prohlížečem a serverem začátkem přidat až, 915 00:49:00,000 --> 00:49:03,000 který dělá vaše konkrétní výběr jazyka v mnoha případech 916 00:49:03,000 --> 00:49:07,000 ne všichni, že relevantní, tak jsi v pohodě pomocí mírně pomalejší jazyk 917 00:49:07,000 --> 00:49:10,000 jako PHP nebo Python nebo Ruby 918 00:49:10,000 --> 00:49:13,000 ale pro které existují obrovské upsides pro vás a vaše kolegy 919 00:49:13,000 --> 00:49:17,000 a vaši přátelé, protože můžete realizovat věci tak, tak mnohem rychlejší. 920 00:49:17,000 --> 00:49:20,000 A navíc, máte mnohem menší riziko určitých bezpečnostních nedostatků. 921 00:49:20,000 --> 00:49:22,000 Je tu žádné ukazatele v PHP. 922 00:49:22,000 --> 00:49:25,000 Nejsou tu žádné SEG poruchy, které lze snadno vyvolat 923 00:49:25,000 --> 00:49:27,000 stejným způsobem byste mohli v C. 924 00:49:27,000 --> 00:49:29,000 S C jsi velmi blízko k hardwaru. 925 00:49:29,000 --> 00:49:33,000 S PHP a podobných jazycích jste trochu vyšší úrovni, abych tak řekl, 926 00:49:33,000 --> 00:49:37,000 s mnoha obrany mezi vámi a tím, co se vlastně děje 927 00:49:37,000 --> 00:49:39,000 uvnitř stroje, a je to jen kompromis. 928 00:49:39,000 --> 00:49:42,000 >> Jsme se dostali do bodu, mít tyto modernější, jazyky vysoké úrovně 929 00:49:42,000 --> 00:49:47,000 jako PHP, protože z poučení v jazycích, jako je PHP v C. 930 00:49:47,000 --> 00:49:50,000 Ale pokud nechcete pochopit, co se děje na pod pokličku celou dobu 931 00:49:50,000 --> 00:49:53,000 určitě nemůže dělat správná rozhodnutí designu, 932 00:49:53,000 --> 00:49:56,000 a určitě, pokud jde o práci v místě, jako je Facebook nebo Google 933 00:49:56,000 --> 00:49:59,000 nebo některé z těchto míst, která jsou stále hraje s velkými dat 934 00:49:59,000 --> 00:50:01,000 i když jdete zpět a to medik a pracuje s nějakou MD 935 00:50:01,000 --> 00:50:04,000 na některých velkých souboru dat, která zahrnovala pacienty a lékaře 936 00:50:04,000 --> 00:50:08,000 a jako ty správné nástroje je velmi přesvědčivý 937 00:50:08,000 --> 00:50:11,000 protože jinak vaše analýza nějakého datového souboru může trvat sekund, 938 00:50:11,000 --> 00:50:14,000 nebo to může doslova trvat hodiny. 939 00:50:14,000 --> 00:50:17,000 To je jen jeden příklad, ne bránit vás s tím, jak mnohem více úsilí 940 00:50:17,000 --> 00:50:21,000 to bylo v C, ale které vám pomohou uvědomit, že když se implementovat něco v C 941 00:50:21,000 --> 00:50:24,000 opravdu rozumíte, nebo teoreticky, opravdu pochopit, 942 00:50:24,000 --> 00:50:28,000 jak všechno je nebo by mělo být pracovat, a máte téměř plnou kontrolu 943 00:50:28,000 --> 00:50:31,000 nad tím, co se děje pod kapotou, a s těmito jazycích vyšší úrovně 944 00:50:31,000 --> 00:50:34,000 budete muset vzdát větší kontrolu k lidem, kteří vymysleli je 945 00:50:34,000 --> 00:50:37,000 a jsou předmětem více jejich konstrukčních rozhodnutí než ta vaše. 946 00:50:37,000 --> 00:50:41,000 Ale pokud bereme za samozřejmé, že výkon 947 00:50:41,000 --> 00:50:44,000 není tak důležité, na webu, protože z těchto dalších otázek, 948 00:50:44,000 --> 00:50:47,000 jen síťové rychlosti jsou trochu pomalejší, než CPU rychlosti tak, 949 00:50:47,000 --> 00:50:50,000 takže můžeme nějak dovolit, mírně pomalejší jazyk 950 00:50:50,000 --> 00:50:55,000 pokud upsides jsme se může vyvinout věci 10 krát rychlejší, nebo dokonce více. 951 00:50:55,000 --> 00:50:57,000 >> Pojďme se podívat, jak se můžeme začít používat to. 952 00:50:57,000 --> 00:51:00,000 Nech mě jít do složky 953 00:51:00,000 --> 00:51:03,000 mezi dnešními příklady tzv. frosh.ims, 954 00:51:03,000 --> 00:51:06,000 a to bylo skutečně osobně motivováni tím, že první věc 955 00:51:06,000 --> 00:51:10,000 Jsem napsal pro web lety po nástupu CS50 CS51 a 956 00:51:10,000 --> 00:51:14,000 byl web pro program Frosh Chatu, prváka sálový sport, 957 00:51:14,000 --> 00:51:16,000 který v té době to bylo dost lety, že v té době 958 00:51:16,000 --> 00:51:19,000 tam byl žádné webové stránky pro program, i když tam byl Web, 959 00:51:19,000 --> 00:51:22,000 a místo toho tam byl proctor v Wigglesworth přičemž pokud byste chtěli 960 00:51:22,000 --> 00:51:26,000 k registraci pro volejbal nebo fotbal nebo co byste vyplnit kus papíru. 961 00:51:26,000 --> 00:51:28,000 Ty by pak pěšky přes dvůr. 962 00:51:28,000 --> 00:51:31,000 Ty by pak zaklepat na dveře a skluzavka v jejich dveřích nebo ručně do Proctor 963 00:51:31,000 --> 00:51:34,000 kus papíru s vaším jménem na to, zda chcete nebo nechcete, aby se kapitán týmu, 964 00:51:34,000 --> 00:51:37,000 Jaký sport jste chtěl dělat, a co koleji jsi byl palců 965 00:51:37,000 --> 00:51:39,000 Bylo to trochu staré školy způsobem, jak dělat věci, a to bylo hlavním 966 00:51:39,000 --> 00:51:41,000 možnost automatizovat mnoho tohoto procesu. 967 00:51:41,000 --> 00:51:43,000 Stačí přejít na webových stránkách. Ty něco psát a. 968 00:51:43,000 --> 00:51:46,000 Zde získáte e-mailem potvrzení, a bum, máte hotovo. 969 00:51:46,000 --> 00:51:49,000 >> To byl úplně první věc, kterou jsem udělal, když v jazyce s názvem Pearl, 970 00:51:49,000 --> 00:51:52,000 ale je to relativně snadné udělat v PHP, a to je trochu zástupce 971 00:51:52,000 --> 00:51:55,000 z problémů, můžete začít řešit, když se můžete vyjádřit 972 00:51:55,000 --> 00:51:58,000 programově a nemusí spoléhat na věci, jako stránkách Google 973 00:51:58,000 --> 00:52:01,000 nebo Excel nebo nástroje, které budou předány na vás. 974 00:52:01,000 --> 00:52:03,000 Vy nyní máte možnost dělat věci, jako je tento. 975 00:52:03,000 --> 00:52:06,000 To je super ošklivý verze formě, 976 00:52:06,000 --> 00:52:09,000 ale pojďme použijte ho na začátku rozhovoru, kdy je to 977 00:52:09,000 --> 00:52:12,000 zhruba to, co vypadalo jako forma lety pro nás 978 00:52:12,000 --> 00:52:14,000 k tomu, aby lidé na webu se přihlásit k Frosh PI. 979 00:52:14,000 --> 00:52:18,000 Zeptali jsme se na jméno, zaškrtávací políčko za to, zda nebo ne oni chtěli být kapitánem, 980 00:52:18,000 --> 00:52:21,000 muž nebo žena, a pak to, co koleji byli v, 981 00:52:21,000 --> 00:52:23,000 a pak by odeslat tento formulář. 982 00:52:23,000 --> 00:52:27,000 Podívejme se nejprve podívat pod kapotu na kódu HTML, který reprezentuje tuto webovou stránku. 983 00:52:27,000 --> 00:52:31,000 Nech mě jít do froshims0, 984 00:52:31,000 --> 00:52:35,000 a jako stranou, pro PSet 7 beru jako samozřejmost 985 00:52:35,000 --> 00:52:37,000 adresáře a složky, které dávám věci dovnitř 986 00:52:37,000 --> 00:52:40,000 Budeme vás provede přesně tam, kde věci musí jít do spotřebiče, 987 00:52:40,000 --> 00:52:43,000 který mod příkazy budete muset spustit, takže se nemusíte starat o všechny 988 00:52:43,000 --> 00:52:46,000 hloupé detaily synchronizace od samého počátku zde. 989 00:52:46,000 --> 00:52:49,000 >> Dobře, tady je froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Dovolte mi, abych přejděte dolů, a to, co je zvědavý tady, 991 00:52:52,000 --> 00:52:56,000 to je PHP soubor, ale to, co je uvnitř ní, jasně? 992 00:52:56,000 --> 00:52:59,000 Je to mnohem HTML, a opravdu, původ PHP 993 00:52:59,000 --> 00:53:02,000 byly opravdu za to, že Web-centric jazyk. 994 00:53:02,000 --> 00:53:04,000 Před chvílí jsme ji k implementaci pivo příklad, 995 00:53:04,000 --> 00:53:07,000 podmínky příklad, ahoj příklad, a to je v pořádku. 996 00:53:07,000 --> 00:53:11,000 Můžete použít PHP jako skriptovací jazyk 997 00:53:11,000 --> 00:53:15,000 kde je skript opravdu jen nomenklaturu k rychlému a špinavé programu 998 00:53:15,000 --> 00:53:19,000 nebo něco, co píšete v napsaném nebo obecněji interpretovaný jazyk. 999 00:53:19,000 --> 00:53:22,000 PHP je super užitečná pro, protože jste viděli, jak rychle 1000 00:53:22,000 --> 00:53:24,000 poměrně můžeme vybičovat programy v PHP. 1001 00:53:24,000 --> 00:53:27,000 Ale to bylo skutečně určeny k použití pro web, 1002 00:53:27,000 --> 00:53:31,000 a určené pro web v tom smyslu, že si všimnout tady v horní části souboru 1003 00:53:31,000 --> 00:53:34,000 Já začít s 00:53:38,000 Pak mám spoustu zbytečných komentářů, udělených, ale pak jsem blízko PHP režim. 1005 00:53:38,000 --> 00:53:41,000 Ale pak jsem spadnout do režimu HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Co je na tom zajímavé PHP je, i když soubor končí. Php 1007 00:53:45,000 --> 00:53:48,000 to je obecně určen pro přimíchané s HTML, 1008 00:53:48,000 --> 00:53:50,000 nějaký kód PHP, některé HTML. 1009 00:53:50,000 --> 00:53:53,000 A uvidíme, nakonec, že ​​můžeme začít dráždit ty od sebe 1010 00:53:53,000 --> 00:53:56,000 a aby naše HTML oddělené od našeho PHP úplně, 1011 00:53:56,000 --> 00:53:59,000 ale počátky PHP byly opravdu dát vám tento flexibilitu, 1012 00:53:59,000 --> 00:54:02,000 že pokud chcete nějaké HTML stačí napsat, a že bude 1013 00:54:02,000 --> 00:54:04,000 vyplivnout shodně prohlížeči. 1014 00:54:04,000 --> 00:54:07,000 Ale pokud budete potřebovat nějaký programovací techniku, 1015 00:54:07,000 --> 00:54:12,000 některé programovací kód, můžete si také dát do stejného souboru přesné, jak brzy uvidíte. 1016 00:54:12,000 --> 00:54:14,000 Tady je můj HTML. 1017 00:54:14,000 --> 00:54:16,000 Mám titul tohoto pro Frosh PI. 1018 00:54:16,000 --> 00:54:20,000 Mám tag body, který má nějakou CSS na to, aby centrum vše uprostřed, 1019 00:54:20,000 --> 00:54:23,000 a pak se sem mám formu, která zřejmě bude předložena 1020 00:54:23,000 --> 00:54:27,000 do nového souboru s názvem register0.php, tak uvidíme, že za chvíli. 1021 00:54:27,000 --> 00:54:31,000 Je to za použití metody zvané příspěvek, který se vrátíme k stejně. 1022 00:54:31,000 --> 00:54:34,000 Pak jsem nějaké formuláře vstupy, jeden tzv. jméno, jehož typ je text, 1023 00:54:34,000 --> 00:54:37,000 ten, jehož jméno je kapitán, jehož typ je checkbox, 1024 00:54:37,000 --> 00:54:40,000 a to jsme neviděli to předtím, ale to dělá přesně to, co říká. 1025 00:54:40,000 --> 00:54:42,000 Získáte políčka namísto textového pole. 1026 00:54:42,000 --> 00:54:46,000 Tady dole máte přepínač, který je jedním z těch kruhových tlačítek 1027 00:54:46,000 --> 00:54:48,000 , které si můžete vybrat buď tenhle nebo že jeden. 1028 00:54:48,000 --> 00:54:52,000 >> Všimněte si, že je to úmyslné, že jsem dal oběma přepínacích tlačítek jméno pohlaví. 1029 00:54:52,000 --> 00:54:55,000 To je, jak se dostat vzájemné vyloučení, kdy musíte kliknout 1030 00:54:55,000 --> 00:54:58,000 buď tento, nebo, že jeden, a kliknutím druhé 1031 00:54:58,000 --> 00:55:01,000 to unchecks druhé, takže budete muset dát jim stejný název 1032 00:55:01,000 --> 00:55:03,000 pokud chcete, aby se vzájemně vylučují takhle. 1033 00:55:03,000 --> 00:55:07,000 A pak na koleji, nemyslím si, že jsme viděli, to ještě, ale je to select menu, drop-down menu. 1034 00:55:07,000 --> 00:55:09,000 Tag pro které je select. 1035 00:55:09,000 --> 00:55:11,000 Ty pak dávají drop-down menu název, 1036 00:55:11,000 --> 00:55:13,000 a pak máte spoustu možností. 1037 00:55:13,000 --> 00:55:16,000 První z nich, jen pro estetiku, je prázdný řetězec. 1038 00:55:16,000 --> 00:55:20,000 Jen jsem chtěl, aby rozevírací být ve výchozím nastavení prázdné, 1039 00:55:20,000 --> 00:55:22,000 a pak je tu Apley, Canaday, Grays, a tak dále. 1040 00:55:22,000 --> 00:55:24,000 A všimněte si dichotomii zde. 1041 00:55:24,000 --> 00:55:27,000 Možnost v rozevíracím má hodnotu, 1042 00:55:27,000 --> 00:55:30,000 ale musí člověk-popisný název, který je v tomto příkladu 1043 00:55:30,000 --> 00:55:33,000 je totožný, ale pokud bychom opravdu chtěli být anální bychom mohli mít 1044 00:55:33,000 --> 00:55:36,000 hodnota tohoto rozbalovacího být jen krátká verze, 1045 00:55:36,000 --> 00:55:39,000 Grays, ale my jsme mohli opravdu říci, Grays Hall, že člověk skutečně vidí, 1046 00:55:39,000 --> 00:55:43,000 ale to není všechno, že zajímavé, tak jsem pořád jen jednoduché a udělal z nich totožné. 1047 00:55:43,000 --> 00:55:46,000 Pak se v dolní části máme tlačítko předložit 1048 00:55:46,000 --> 00:55:49,000 které jsme viděli dříve, ale nevšiml jsem dal jiné slovo. 1049 00:55:49,000 --> 00:55:53,000 Místo CS50 hledání jsem dal nálepku "Zaregistrovat". 1050 00:55:53,000 --> 00:55:56,000 >> Konečným výsledkem je tato stránka tady, a znovu, 1051 00:55:56,000 --> 00:56:00,000 pokud to dostat předloženy? 1052 00:56:00,000 --> 00:56:04,000 To dostane předložen do jisté souboru, hodnota atributu action, 1053 00:56:04,000 --> 00:56:07,000 který byl register0.php. 1054 00:56:07,000 --> 00:56:09,000 Pojďme se podívat, co se vlastně děje tady. 1055 00:56:09,000 --> 00:56:13,000 Nech mě jít napřed a vyplnit tento formulář, říkají David, 1056 00:56:13,000 --> 00:56:16,000 samec, Matthews, a pak řeknu zaregistrovat. 1057 00:56:16,000 --> 00:56:18,000 Dovolte mi, abych oddálit a klikněte na tlačítko registrovat. 1058 00:56:18,000 --> 00:56:22,000 Dobře, tak trochu k ničemu, ale pojďme se podívat, co se vlastně děje. 1059 00:56:22,000 --> 00:56:26,000 Všimněte si, že URL se změní tak, aby register0.php. 1060 00:56:26,000 --> 00:56:34,000 Co je zvědavě chybí z URL, ale, i když jsme jen nám formulář? 1061 00:56:34,000 --> 00:56:37,000 [Neslyšitelné Student odpověď] 1062 00:56:37,000 --> 00:56:39,000 Dobře, to je jen Chrome je uživatelsky příjemný těchto dnech. 1063 00:56:39,000 --> 00:56:42,000 To je ve skutečnosti neexistují. Prostě skrýt, aby se ušetřilo místo. 1064 00:56:42,000 --> 00:56:44,000 Ale dobrá myšlenka, dobrá myšlenka. 1065 00:56:44,000 --> 00:56:46,000 Ke druhému konci adresy URL, ačkoli, co chybí? Jo. 1066 00:56:46,000 --> 00:56:48,000 [Student] Řetězec dotazu. 1067 00:56:48,000 --> 00:56:51,000 Řetězec dotazu, tak vzpomínám z našich jednoduchých příkladech vyhledávání Google. 1068 00:56:51,000 --> 00:56:54,000 Jakmile jsem klikněte na tlačítko Odeslat URL 1069 00:56:54,000 --> 00:57:00,000 mě vzal do Google, ale pak tam byl? q = computer science nebo co jsem napsal dovnitř 1070 00:57:00,000 --> 00:57:04,000 To je proto, že jsme použili metodu GET s vyhledávacím příkladu. 1071 00:57:04,000 --> 00:57:06,000 >> Tentokrát jsme použili, jakou metodu místo? 1072 00:57:06,000 --> 00:57:10,000 Příspěvek, a jeden z bezprostředních rozdíly 1073 00:57:10,000 --> 00:57:14,000 mezi get a post je, že příspěvek neklade vstup uživatele v adrese URL. 1074 00:57:14,000 --> 00:57:16,000 Skrývá to. To ještě pošle. 1075 00:57:16,000 --> 00:57:19,000 Ve skutečnosti, co vidíme v prohlížeči zde, jak budeme odhalit v okamžiku 1076 00:57:19,000 --> 00:57:22,000 při pohledu na register0, je, že jsem jen vidět obsah 1077 00:57:22,000 --> 00:57:25,000 z pole, které byly předloženy z prohlížeče na server. 1078 00:57:25,000 --> 00:57:29,000 Ale URL nemá?, Nemá žádné klíčová slova 1079 00:57:29,000 --> 00:57:31,000 nebo hodnoty v něm, a proč je to? 1080 00:57:31,000 --> 00:57:35,000 No, po umožňuje podat také data z formuláře na server, 1081 00:57:35,000 --> 00:57:38,000 ale to není dát do URL, takže, jaké informace je příspěvek 1082 00:57:38,000 --> 00:57:41,000 vhodné zejména pro možná, když se ptáte uživateli 1083 00:57:41,000 --> 00:57:44,000 zadejte na vstupu do formy? 1084 00:57:44,000 --> 00:57:48,000 Něco jako hesla, něco jako to, co jiného? 1085 00:57:48,000 --> 00:57:50,000 Čísla kreditních karet. 1086 00:57:50,000 --> 00:57:53,000 Cokoliv, co je mírně citlivá pravděpodobně nebudete chtít končí v URL 1087 00:57:53,000 --> 00:57:56,000 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 1088 00:57:56,000 --> 00:57:59,000 vaše internetové historie a pak doslova vidět vaše hesla, 1089 00:57:59,000 --> 00:58:02,000 doslova vidět vaše čísla kreditních karet, protože většina prohlížečů 1090 00:58:02,000 --> 00:58:05,000 pamatovat v historii, co URL, které jste byli na, 1091 00:58:05,000 --> 00:58:09,000 takže už jen proto, že by to byl špatný nápad. 1092 00:58:09,000 --> 00:58:11,000 Použití poštovní kůže, které detailů od uživatele. 1093 00:58:11,000 --> 00:58:14,000 >> Také, jak si nahrát fotografie do Facebooku? 1094 00:58:14,000 --> 00:58:17,000 No, jen 2 mechanismy si můžete opravdu použít, 1095 00:58:17,000 --> 00:58:21,000 i když je tu pár dalších více tajemné ty, je získat a zveřejnit. 1096 00:58:21,000 --> 00:58:26,000 Jak se vám možná nahrát fotografii přes adresu URL? 1097 00:58:26,000 --> 00:58:28,000 Můžete skutečně udělat. 1098 00:58:28,000 --> 00:58:30,000 Můžete si vzít JPEG nebo bitmapy nebo GIF a můžete ji zastupují v šestnáctkové soustavě 1099 00:58:30,000 --> 00:58:32,000 nebo něco, co nazývá base 64. 1100 00:58:32,000 --> 00:58:35,000 Místo základu 16 můžete použít základní 64, což v podstatě vypadá jako 1101 00:58:35,000 --> 00:58:38,000 ASCII znaky, a můžete skutečně nahrát fotografii přes adresu URL 1102 00:58:38,000 --> 00:58:41,000 po otazníkem, ale tam jsou obecně omezení velikosti. 1103 00:58:41,000 --> 00:58:44,000 Většina prohlížečů nutí URL nesmí být vyšší než 1000 znaků, 1104 00:58:44,000 --> 00:58:47,000 možná 2000 znaků nebo podobné, takže není možné nahrát 1105 00:58:47,000 --> 00:58:50,000 10 MB Facebook fotografie. 1106 00:58:50,000 --> 00:58:54,000 Za to můžete použít místo stejně, takže pro tuto chvíli si dá parametry v URL, 1107 00:58:54,000 --> 00:58:57,000 což je hezké a užitečné, někdy, ale pro cokoliv citlivou nebo velký 1108 00:58:57,000 --> 00:58:59,000 Příspěvek je způsob, jak jít. 1109 00:58:59,000 --> 00:59:02,000 Co je register0 vlastně děláš? 1110 00:59:02,000 --> 00:59:05,000 No, když jsem otevřít register0 vědomí, že toto je super jednoduchá stránka, 1111 00:59:05,000 --> 00:59:09,000 ale je to ukazuje na skutečnost, že mohu společně mísí, pro lepší nebo pro horší, 1112 00:59:09,000 --> 00:59:12,000 HTML s PHP. 1113 00:59:12,000 --> 00:59:15,000 Tento celý soubor, s výjimkou připomínky na vrcholu, jsou HTML 1114 00:59:15,000 --> 00:59:19,000 s výjimkou toho chlapa tady. 1115 00:59:19,000 --> 00:59:22,000 >> Všimněte si uprostřed svého PHP kódu, 1116 00:59:22,000 --> 00:59:26,000 v polovině mého HTML, mám jakousi dočasně 1117 00:59:26,000 --> 00:59:28,000 vstoupil PHP režimu. 1118 00:59:28,000 --> 00:59:31,000 Volám speciální funkci nazvanou tisk r.. 1119 00:59:31,000 --> 00:59:34,000 To znamená tisk rekurzivní, a to, co dělá, je, že rekurzivně vytiskne 1120 00:59:34,000 --> 00:59:38,000 bez ohledu na proměnnou, kterou odevzdejte jej, středník, exit PHP režim. 1121 00:59:38,000 --> 00:59:40,000 A pre tag vám pre-formátovaný text, 1122 00:59:40,000 --> 00:59:43,000 mono prostor textu tak, aby každý prostor, který skutečně vidět. 1123 00:59:43,000 --> 00:59:46,000 To nezmizí. Co je to příspěvek? 1124 00:59:46,000 --> 00:59:48,000 No, co je zajímavé a přesvědčivé o PHP 1125 00:59:48,000 --> 00:59:52,000 je to, že vždy, když odešlete formulář pomocí GET nebo POST 1126 00:59:52,000 --> 00:59:56,000 něco, co je nám pro Vás prohlížeči 1127 00:59:56,000 --> 01:00:00,000 PHP samo o sobě vyřeší, co tyto klíčové hodnotové páry jsou, 1128 01:00:00,000 --> 01:00:02,000 Údaje, jestli je rovnítka, postavy, jestli je otazník. 1129 01:00:02,000 --> 01:00:07,000 To dělá všechnu těžkou práci za vás, a pak to podá vám asociativní pole 1130 01:00:07,000 --> 01:00:10,000 obsahující vše, uživatel zadaný do formy. 1131 01:00:10,000 --> 01:00:12,000 No, co pole to tato forma má? 1132 01:00:12,000 --> 01:00:14,000 >> Měl 4 pole. 1133 01:00:14,000 --> 01:00:16,000 Jeden z nich byl textovém poli Název. 1134 01:00:16,000 --> 01:00:18,000 Jeden z nich byl checkbox volal kapitán. 1135 01:00:18,000 --> 01:00:22,000 Jeden z nich byl přepínač názvem pohlaví, 1136 01:00:22,000 --> 01:00:24,000 a jeden byl drop-down menu tzv. koleji, 1137 01:00:24,000 --> 01:00:27,000 tak nevšiml, když jsem tisku rekurzivně 1138 01:00:27,000 --> 01:00:29,000 Obsah tohoto speciálního proměnné. 1139 01:00:29,000 --> 01:00:34,000 Jedná se o speciální globální proměnná nazývá doslova $ _POST, ve všech velkých písmenech. 1140 01:00:34,000 --> 01:00:39,000 Jedná se o speciální globální proměnná, která PHP právě pro vás vytvoří 1141 01:00:39,000 --> 01:00:42,000 a ruce na vás, takže můžete přístup ke všemu 1142 01:00:42,000 --> 01:00:45,000 který byl předložen prostřednictvím formuláře uživatelem. 1143 01:00:45,000 --> 01:00:48,000 A tím, že volá tisku r na to, byste se to v běžné aplikace. 1144 01:00:48,000 --> 01:00:50,000 Děláme to vidět uvnitř této proměnné, 1145 01:00:50,000 --> 01:00:53,000 a co je uvnitř ní, dobře, 4 tlačítka, 1146 01:00:53,000 --> 01:00:56,000 4 http parametry, abych tak řekl, 1147 01:00:56,000 --> 01:00:59,000 jméno, kapitán, pohlaví, koleji, a pak hodnoty, které uživatel 1148 01:00:59,000 --> 01:01:01,000 zadali s jednou výjimkou. 1149 01:01:01,000 --> 01:01:03,000 Já jsem typ D--V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Ověřil jsem si krabici, i když, pro muže, který zřejmě předložila hodnotu 1151 01:01:05,000 --> 01:01:07,000 pouhého m být stručné. 1152 01:01:07,000 --> 01:01:10,000 >> Když jsem si vybral Matthews, že je to hodnota, která dostala vybrané, 1153 01:01:10,000 --> 01:01:12,000 a tohle je trochu hloupé, ale je to konvence. 1154 01:01:12,000 --> 01:01:17,000 Když jsem zaškrtli políčko, hodnota na, "na," dostal předložen k zaškrtávacího pole. 1155 01:01:17,000 --> 01:01:21,000 Kdybych to četl, tak by žádná hodnota byla odeslána vůbec. 1156 01:01:21,000 --> 01:01:26,000 To je jen, že nám pohled na to, co je uvnitř této zvláštní globální proměnné, 1157 01:01:26,000 --> 01:01:29,000 a je to tak zvláštní, že je to tzv. super globální proměnnou. 1158 01:01:29,000 --> 01:01:33,000 To existuje všude na vás v kódu, takže se můžete skutečně přístup. 1159 01:01:33,000 --> 01:01:36,000 To není, že přesvědčivý, takže se pojďme vlastně používat super Global 1160 01:01:36,000 --> 01:01:38,000 a ve skutečnosti se snaží zaregistrovat někoho. 1161 01:01:38,000 --> 01:01:41,000 V froshims1 Jdu udělat jednu změnu. 1162 01:01:41,000 --> 01:01:44,000 Měním žalobu za register1.php, 1163 01:01:44,000 --> 01:01:46,000 a já dělám jednu věc. 1164 01:01:46,000 --> 01:01:48,000 Byl jsem trochu v rozpacích o kvalitě mé stránky tam. 1165 01:01:48,000 --> 01:01:52,000 Je to docela odporné, upřímně, tak to dopadá 1166 01:01:52,000 --> 01:01:56,000 které můžete použít velmi snadno na webu 1167 01:01:56,000 --> 01:01:59,000 JavaScript jiných lidí code, CSS jiných lidí 1168 01:01:59,000 --> 01:02:02,000 , že jsem napsal a otevřené zdrojů a k dispozici jako knihovna, 1169 01:02:02,000 --> 01:02:06,000 abych tak řekl, a například, tady jsem pomocí volně dostupných knihovnu, 1170 01:02:06,000 --> 01:02:08,000 banda kódu, který někdo jiný napsal. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter se stalo psát tento kód, a to jen bootstrap knihovna, 1172 01:02:11,000 --> 01:02:15,000 a je to jen banda CSS stylů, partu. css soubory 1173 01:02:15,000 --> 01:02:19,000 že někdo jiný napsal, a přišel na to, jak se dostat všechno pěkné a hezká 1174 01:02:19,000 --> 01:02:22,000 tak, že lidé jako my může starat o něco méně o estetice a mnohem více soustředit 1175 01:02:22,000 --> 01:02:24,000 o logice a skutečné programování. 1176 01:02:24,000 --> 01:02:30,000 Tím, spojující jej s tímto tag, který je stejný tag jsem pamatovat styles3.css dříve, 1177 01:02:30,000 --> 01:02:34,000 Nyní mám přístup k souboru s názvem bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min. jen znamená, že jsem minified, a že jsem se zbavila všech bílého prostoru a tak dále 1179 01:02:37,000 --> 01:02:40,000 jen aby se ujistil, že nejste mi poslal více bajtů, než jsem skutečně potřebují. 1180 01:02:40,000 --> 01:02:45,000 Ale tam je celá parta CSS, takže když jsem se tak otevírá verzi 1 Frosh PI 1181 01:02:45,000 --> 01:02:49,000 Všimněte si, že můj soubor je rozhodně hezčí. 1182 01:02:49,000 --> 01:02:54,000 Teď je to pořád jen černé a bílé, ale všimněte si, že tím, že jen pomocí jejich stylů 1183 01:02:54,000 --> 01:02:58,000 a používání některých funkcí z ní na mé formě, že to není úžasné, 1184 01:02:58,000 --> 01:03:01,000 ale je to rozhodně čistší, než tomu bylo dříve, a projektor není dělat to spravedlnost. 1185 01:03:01,000 --> 01:03:05,000 Tam je malé šedé čáry kolem tlačítek a kolem textového pole tady, 1186 01:03:05,000 --> 01:03:07,000 ale je to rozhodně čistší, než tomu bylo dříve. 1187 01:03:07,000 --> 01:03:09,000 >> Nyní, ve spravedlnost, já jsem musel změnit můj značkovací trochu. 1188 01:03:09,000 --> 01:03:12,000 Toto je verze 1, a všimněte si, že jsem použil několik nových značek, 1189 01:03:12,000 --> 01:03:17,000 a upřímně, neměl jsem ponětí, jak to udělat, dokud jsem si nepřečetl dokumentaci 1190 01:03:17,000 --> 01:03:20,000 pro bootstrap knihovny Twitteru, a řekli mi, že pokud chcete použít naši knihovnu 1191 01:03:20,000 --> 01:03:23,000 použít fieldset element uvnitř formuláře, 1192 01:03:23,000 --> 01:03:27,000 dal slovo, které chcete zobrazit vedle pole uvnitř se štítkem značky, 1193 01:03:27,000 --> 01:03:30,000 pak dát vaše vstupní jméno, stejně jako dříve, 1194 01:03:30,000 --> 01:03:34,000 a pak pro políčko, nejen že ji zabalte do štítků prvku, 1195 01:03:34,000 --> 01:03:36,000 můžete použít něco jako třída, takže jsme neviděli dřív, 1196 01:03:36,000 --> 01:03:39,000 ale uvidíte to v jednom z šortek PSet 7 je. 1197 01:03:39,000 --> 01:03:43,000 Třída v CSS umožňuje udělat něco velmi podobného ID, 1198 01:03:43,000 --> 01:03:46,000 ale předtím, když jsme měli ID se symbolem # 1199 01:03:46,000 --> 01:03:48,000 to bylo pro jednu a pouze jeden prvek. 1200 01:03:48,000 --> 01:03:51,000 Co je hezké o třídy je, že více prvky mohou mít stejné třídy 1201 01:03:51,000 --> 01:03:54,000 nebo stejné CSS věci aplikován na to. 1202 01:03:54,000 --> 01:03:57,000 >> Ale opět, více na ty krátké, a zbytek je to jen zkopírovat a vložit 1203 01:03:57,000 --> 01:04:00,000 z jejich dokumentace, kde jsem přidal štítek sem a tam. 1204 01:04:00,000 --> 01:04:03,000 A na konci, protože jsem patřila link tag v horní části, 1205 01:04:03,000 --> 01:04:06,000 všechno vypadá hezčí automaticky 1206 01:04:06,000 --> 01:04:10,000 jednoduše označíte se mé stránky takovým způsobem, který 1207 01:04:10,000 --> 01:04:12,000 Twitter očekává, a tam je tak mnoho různých způsobů 1208 01:04:12,000 --> 01:04:14,000 , jak toho dosáhnout, a to je opravdu velmi vhodné. 1209 01:04:14,000 --> 01:04:17,000 V tomto bodě v semestru, jak uvidíte ve spec PSet 7 je, 1210 01:04:17,000 --> 01:04:20,000 Googling kolem, čtení až o knihovnách, pomocí CSS jiných lidí 1211 01:04:20,000 --> 01:04:23,000 a JavaScript řešit pomocné problémy 1212 01:04:23,000 --> 01:04:26,000 na problém sadě sám je jistě podporována a je tak 1213 01:04:26,000 --> 01:04:29,000 Web je postaven v těchto dnech, že stála na ramenou jiných lidí 1214 01:04:29,000 --> 01:04:32,000 takže si můžete opravdu zaměřit na nové a zajímavé problémy. 1215 01:04:32,000 --> 01:04:34,000 Ale pojďme se nyní zaměřují na, opět logiku. 1216 01:04:34,000 --> 01:04:38,000 >> To bylo rychlé objížďka na estetiku jen ukázat vám směr, ve kterém se můžete vydat. 1217 01:04:38,000 --> 01:04:40,000 Chystám se vrátit k ošklivější jeden pro teď jen proto, že 1218 01:04:40,000 --> 01:04:44,000 tam žádné rozptýlení s věcí Twitter, a nech mě jít dopředu a otevřít 1219 01:04:44,000 --> 01:04:51,000 froshims2, které opět liší pouze v akčním, register2.php, 1220 01:04:51,000 --> 01:04:55,000 a pojďme se podívat na to, co účinek je tady. 1221 01:04:55,000 --> 01:04:57,000 Nech mě jít napřed a zadejte Davida. 1222 01:04:57,000 --> 01:04:59,000 Nebudu kapitán tentokrát. 1223 01:04:59,000 --> 01:05:01,000 Řeknu muž, Matthews, zaregistrujte se. 1224 01:05:01,000 --> 01:05:05,000 Sakra. Dobře, že je šroub až na mé straně. 1225 01:05:05,000 --> 01:05:07,000 Stand by. 1226 01:05:07,000 --> 01:05:17,000 Register2, řádek 22, pokud prázdný, nebo-líto. 1227 01:05:17,000 --> 01:05:19,000 Pojďme znovu. 1228 01:05:19,000 --> 01:05:22,000 Dobře, po odeslání tohoto formuláře, co se právě stalo? 1229 01:05:22,000 --> 01:05:25,000 Jsem napsal v Davidovi, kontrolovány samec, kliknul Matthews, zaregistrujte se. 1230 01:05:25,000 --> 01:05:27,000 Ty jsou registrovány. (No, vlastně ne.) 1231 01:05:27,000 --> 01:05:32,000 To je jasně krok za jen vytisknout obsah některé proměnné, 1232 01:05:32,000 --> 01:05:34,000 ale co je tento soubor vlastně dělá? 1233 01:05:34,000 --> 01:05:37,000 V register2.php 1234 01:05:37,000 --> 01:05:40,000 Všimněte si, že mám nějaký nový kód. 1235 01:05:40,000 --> 01:05:44,000 Uvnitř mého těla tagu mám v podstatě, pokud else, 1236 01:05:44,000 --> 01:05:47,000 ale protože jsem co-mísit se to s nějakým HTML 1237 01:05:47,000 --> 01:05:51,000 Mám pro vstup a výstup PHP režim tam a zpět, tak se pojďme podívat, co dělám. 1238 01:05:51,000 --> 01:05:55,000 >> V prvním řádku zde říkám, je-li tomu 1239 01:05:55,000 --> 01:06:00,000 že po Super globální je prázdný klíč jména, 1240 01:06:00,000 --> 01:06:04,000 takže jinými slovy, v případě, že uživatel nemá mi hodnotu názvu ve formě, 1241 01:06:04,000 --> 01:06:07,000 pak vyprázdněte bude vrátit true, protože hodnota je prázdná. 1242 01:06:07,000 --> 01:06:11,000 Nebo-Všimněte si, že svislé pruhy-li pohlaví je prázdný 1243 01:06:11,000 --> 01:06:15,000 uvnitř tohoto speciálního extra globální, což opět představuje obsah formě, 1244 01:06:15,000 --> 01:06:19,000 nebo ložnice je prázdná, pak budu pokračovat a řvát na uživatele. 1245 01:06:19,000 --> 01:06:22,000 Jak? No, nevšiml jsem chtěl říct, vám musí poskytnout své jméno, pohlaví, a koleji. 1246 01:06:22,000 --> 01:06:24,000 Pojďme dokonce vyvolat takovou chybu. 1247 01:06:24,000 --> 01:06:27,000 Nechte mě jít zpátky do mého formuláře. Dovolte mi, abych znovu pro vymazání. 1248 01:06:27,000 --> 01:06:30,000 A já jdu dát jim Davida, a nemusí vědět, kde bydlím. 1249 01:06:30,000 --> 01:06:33,000 Registrace. Zřejmě jsem se třeba jim říct, kde bydlím. 1250 01:06:33,000 --> 01:06:35,000 Musíte poskytnout své jméno, pohlaví a koleji. Přejít zpět. 1251 01:06:35,000 --> 01:06:39,000 >> A mohl bych klepnout a přejít zpět do té podobě, ale proč je to? 1252 01:06:39,000 --> 01:06:43,000 No, v tom případě dříve nebyl prázdný, ale rod byl a koleji byl, 1253 01:06:43,000 --> 01:06:47,000 takže celý tento výraz vyhodnocen jako true, a to i přesto, že syntaxe je jen málo nových, 1254 01:06:47,000 --> 01:06:51,000 Znovu jsme se vstoupit do PHP režimu, známé, pokud prohlášení, 1255 01:06:51,000 --> 01:06:54,000 ale nová část je zde právě tato dvojtečka, a já jsem to podělal tím vynecháním závorku 1256 01:06:54,000 --> 01:06:57,000 náhodou, ale všimněte si do tlustého střeva, a to znamená, že 1257 01:06:57,000 --> 01:07:00,000 i když jsme opuštění PHP režimu vše 1258 01:07:00,000 --> 01:07:03,000 který následuje třeba vyplivnout doslovně do prohlížeče 1259 01:07:03,000 --> 01:07:07,000 , dokud se nezobrazí jiného blok, jako to děláme my, 1260 01:07:07,000 --> 01:07:10,000 V takovém případě byste měli místo plivat na tohle 1261 01:07:10,000 --> 01:07:13,000 , dokud se nezobrazí ENDIF, takže některé mírně nová syntaxe 1262 01:07:13,000 --> 01:07:16,000 , která mi umožňuje přepínat mezi HTML a PHP. 1263 01:07:16,000 --> 01:07:19,000 Můžeme vyčistit doplnila nakonec, ale teď, 1264 01:07:19,000 --> 01:07:22,000 je to trochu působivého způsobu kontroly chyb formulář. 1265 01:07:22,000 --> 01:07:25,000 >> Teď říkám, že nejste opravdu registrované, protože samozřejmě jsme nic neudělali, ale data, 1266 01:07:25,000 --> 01:07:28,000 takže se pojďme se skutečně snaží dělat něco zajímavého. 1267 01:07:28,000 --> 01:07:33,000 V froshims3 Jediný rozdíl je, že budu předkládat register3, 1268 01:07:33,000 --> 01:07:35,000 takže HTML je stejný. 1269 01:07:35,000 --> 01:07:38,000 V register3 nevšiml. 1270 01:07:38,000 --> 01:07:40,000 Tohle je docela sexy. 1271 01:07:40,000 --> 01:07:44,000 Na vrcholu jsem pomocí vyžadují prohlášení, takže to je jako # include. 1272 01:07:44,000 --> 01:07:46,000 Tentokrát to není stdio.h nebo něco podobného. 1273 01:07:46,000 --> 01:07:50,000 Je to knihovna PHP, a ten se nazývá PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Jak jsem věděl, zahrnout právě tuto citovaný řetězec? 1275 01:07:53,000 --> 01:07:56,000 Četl jsem to v dokumentaci, takže když mi řekli, ať si tohle v horní části souboru 1276 01:07:56,000 --> 01:08:00,000 Chcete-li použít speciální knihovnu s názvem PHPMailer, že dělá to, co říká. 1277 01:08:00,000 --> 01:08:03,000 To vám umožní odesílat e-maily přes PHP. 1278 01:08:03,000 --> 01:08:05,000 Nyní se pojďme posunout ještě hlouběji. 1279 01:08:05,000 --> 01:08:08,000 >> Oznámení začít Jsem v PHP mód celou tu dobu, 1280 01:08:08,000 --> 01:08:11,000 tak teď všimnete sem po importu tuto knihovnu, 1281 01:08:11,000 --> 01:08:13,000  abych tak řekl, dělám nějaké Sanity kontroly. 1282 01:08:13,000 --> 01:08:16,000 Pokud je to pravda, že název není prázdný 1283 01:08:16,000 --> 01:08:19,000 a pohlaví není prázdný, Všimněte si, že vykřičníky- 1284 01:08:19,000 --> 01:08:24,000 a koleji není prázdný, pak se uživatel logicky vyplnil formulář, alespoň dost. 1285 01:08:24,000 --> 01:08:28,000 Je mi jedno, jestli jsou kapitán nebo ne. Potřebuju jen své jméno, pohlaví, a koleji. 1286 01:08:28,000 --> 01:08:31,000 Pokud se naplnili ty ven tak, že žádný z těchto oblastí jsou prázdné 1287 01:08:31,000 --> 01:08:33,000 To je trochu nová syntaxe. 1288 01:08:33,000 --> 01:08:36,000 PHP, as stranou, je objektově orientovaný programovací jazyk 1289 01:08:36,000 --> 01:08:39,000 který někteří z vás si možná vzpomenou z obrněných transportérů nebo jako. 1290 01:08:39,000 --> 01:08:42,000 Pro tuto chvíli, pokud neznámé, jen vím, že používat tuto knihovnu 1291 01:08:42,000 --> 01:08:45,000 musíte napsat jediný řádek kódu, jako je tento s použitím nové klíčové slovo, 1292 01:08:45,000 --> 01:08:47,000 doslova nové klíčové slovo názvem nové. 1293 01:08:47,000 --> 01:08:50,000 Ale kromě toho, máme nějaké známé syntaxi. 1294 01:08:50,000 --> 01:08:54,000 Je to šipka operátor, který je podobný tomu, co se používá pro structs v kontextu ukazatelů. 1295 01:08:54,000 --> 01:08:57,000 Pro dnešek PHP nemá ukazatele, 1296 01:08:57,000 --> 01:09:01,000 ale vím, že teď uvnitř pošty proměnné 1297 01:09:01,000 --> 01:09:05,000 je v podstatě druh ukazatel na speciální knihovny 1298 01:09:05,000 --> 01:09:08,000 že někdo jiný napsal, a pokud chci, aby přístup k specifické funkce 1299 01:09:08,000 --> 01:09:12,000 uvnitř této knihovně jsem se, stejně jako v C, použijte šipky operátor, 1300 01:09:12,000 --> 01:09:14,000 i když tito nejsou ve skutečnosti ukazatele. 1301 01:09:14,000 --> 01:09:16,000 Je to něco vlastní verzi PHP smlouvy. 1302 01:09:16,000 --> 01:09:20,000 To znamená, že jít do knihovny a volat IsSMTP funkci. 1303 01:09:20,000 --> 01:09:23,000 SMTP, stažení, z našich bojovníků Net odkazuje na email, 1304 01:09:23,000 --> 01:09:28,000 a to jen znamená používat e-mailový server pro tuto Frosh Chatu registraci. 1305 01:09:28,000 --> 01:09:30,000 >> Co hostitel chci používat? 1306 01:09:30,000 --> 01:09:34,000 No, Harvard, když Google kolem, má e-mailový server s názvem smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Pokud hrajete spolu doma, nebo žijete v Comcast síti 1308 01:09:37,000 --> 01:09:40,000 to by mohlo být něco jako smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 To zcela závisí na tom, kde žijete, a kdo je tvůj ISP je. 1310 01:09:43,000 --> 01:09:47,000 Poté budu Moje z adresy, aby svévolně být jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Já pak jít do nastavení řešit za jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 Jediný způsob, jak jsem věděl, že tyto funkce byly volány SetFrom a AddAddress 1313 01:09:55,000 --> 01:09:57,000 je, opět jsem četl dokumentaci. 1314 01:09:57,000 --> 01:09:59,000 To není druh magicky známé všem programátorů. 1315 01:09:59,000 --> 01:10:02,000 Pak jsem nastavit předmět na "registrace". 1316 01:10:02,000 --> 01:10:07,000 A teď tento řádek je trochu ošklivá, protože to, co dělá tečka provozovatel znamená v PHP? 1317 01:10:07,000 --> 01:10:09,000 Každý, kdo ví? 1318 01:10:09,000 --> 01:10:11,000 Zřetězit. 1319 01:10:11,000 --> 01:10:14,000 V C je bolest v krku pro spojení 2 řetězce dohromady. 1320 01:10:14,000 --> 01:10:17,000 Musíte se vypořádat s malloc nebo realloc nebo celé věci 1321 01:10:17,000 --> 01:10:20,000 jen prodloužit délku řetězce. 1322 01:10:20,000 --> 01:10:22,000 V PHP, v JavaScriptu a dalších jazycích 1323 01:10:22,000 --> 01:10:24,000 obvykle můžete udělat s jedním znakem. 1324 01:10:24,000 --> 01:10:28,000 V tomto případě, tečka znamená vzít tento řetězec zde 1325 01:10:28,000 --> 01:10:30,000 a připojit k němu tento řetězec. 1326 01:10:30,000 --> 01:10:32,000 >> Jo, a mimochodem, připojit k ní tento řetězec, 1327 01:10:32,000 --> 01:10:34,000 který se stane být variabilní uvnitř to super Global. 1328 01:10:34,000 --> 01:10:37,000 Pak připojit k ní nový řádek, takže všechny tyto body jen říct, 1329 01:10:37,000 --> 01:10:39,000 mějte dělat větší a větší a větší řetězec, 1330 01:10:39,000 --> 01:10:43,000 a nemusíte se starat vůbec o malloc nebo jako v jazyce, jako je tato, 1331 01:10:43,000 --> 01:10:46,000 a je tu další způsoby, jak to udělat, ale je to jeden z nejrychlejších 1332 01:10:46,000 --> 01:10:48,000 způsoby, jak položit ji. 1333 01:10:48,000 --> 01:10:50,000 Co je to děláš? 1334 01:10:50,000 --> 01:10:55,000 Je to vytvoření e-mailové tělo, které se děje tedy Název: Captain: Pohlaví: kolej: 1335 01:10:55,000 --> 01:10:58,000 vše na samostatných řádcích, a pak konečně, 1336 01:10:58,000 --> 01:11:00,000 jeden řádek kódu, a budu ignorovat to pro teď. 1337 01:11:00,000 --> 01:11:02,000 Pokud == false znamená jen kdyby se něco pokazilo, 1338 01:11:02,000 --> 01:11:04,000 ale kouzlo se tu děje. 1339 01:11:04,000 --> 01:11:08,000 Mail Napsat znamená poslat tento e-mail. 1340 01:11:08,000 --> 01:11:10,000 Podívejme se, co Výsledkem je. 1341 01:11:10,000 --> 01:11:13,000 V dolní části souboru, všimněte si, že to bude se říct, že jsou registrovány opravdu 1342 01:11:13,000 --> 01:11:15,000 když jsem si, že daleko. 1343 01:11:15,000 --> 01:11:18,000 Pokud však uživatel šrouby nahoru, zjistíte, že jsme začali tento 1344 01:11:18,000 --> 01:11:21,000 pokud podmínka se zde, pokud to není prázdný a není prázdná 1345 01:11:21,000 --> 01:11:24,000 a ne vyprázdnit zašleme e-mailu. 1346 01:11:24,000 --> 01:11:27,000 Jinak budeme posílat tento řádek kódu, 1347 01:11:27,000 --> 01:11:30,000 která bude mít za následek, jak uvidíte v PSet 7, ze dne přesměrování uživatele 1348 01:11:30,000 --> 01:11:35,000 tam, kde oni přišli, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Palce, jinak to bude nejvíce zklamáním demo dnes. 1350 01:11:38,000 --> 01:11:40,000 Jdeme na to. 1351 01:11:40,000 --> 01:11:42,000 Dovolte mi, abych otevřít svou e-mailovou schránku na jharvard v Gmailu. 1352 01:11:42,000 --> 01:11:44,000 Žádný e-mail hned. Dobrá. 1353 01:11:44,000 --> 01:11:53,000 Nyní mi dovolte otevřít froshims3, který je třetí a poslední příklad se podíváme na zde. 1354 01:11:53,000 --> 01:11:55,000 Dobře, jdeme na to. 1355 01:11:55,000 --> 01:12:00,000 Nate, on bude kapitánem, male, od, řekněme, Apley. 1356 01:12:00,000 --> 01:12:04,000 Registrace. Dobře, jste zaregistrován opravdu. 1357 01:12:04,000 --> 01:12:07,000 Nyní, když jsem Najeďte na můj e-mail, oh, můj bože. 1358 01:12:07,000 --> 01:12:09,000 Právě jsem dynamicky zaslali e-mail na webu. 1359 01:12:09,000 --> 01:12:11,000 >> Ponechme na tomto listu. 1360 01:12:11,000 --> 01:12:16,000 Video je nadcházející k přednášce jsme chybět. Uvidíme se příští týden. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]