1 00:00:00,000 --> 00:00:03,920 >> [Prehrávanie hudby] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. Malan: Dobre. 4 00:00:13,800 --> 00:00:15,640 To je CS50. 5 00:00:15,640 --> 00:00:17,620 To je začiatok týždňa osem. 6 00:00:17,620 --> 00:00:22,440 A vy si možno spomenú, že sme skončili naposledy pri pohľade na nový jazyk 7 00:00:22,440 --> 00:00:23,240 úplne. 8 00:00:23,240 --> 00:00:25,905 V skutočnosti, jeden to je celkom ľahký a to nie je ani 9 00:00:25,905 --> 00:00:26,940 programovací jazyk. 10 00:00:26,940 --> 00:00:31,100 Je to značkovací jazyk, ktorý nám umožňuje vlastne štruktúra a webových stránok. 11 00:00:31,100 --> 00:00:33,350 A keď sa vám niečo iné v spojení s tohle-- 12 00:00:33,350 --> 00:00:35,670 alebo čoskoro bude, ak je ešte nemáte. 13 00:00:35,670 --> 00:00:38,530 Budeme používať kaskádové Štýly, alebo CSS, ktoré 14 00:00:38,530 --> 00:00:40,971 je iný typ jazyka s vlastnosťami a hodnotami 15 00:00:40,971 --> 00:00:43,220 , Čo sa deje, aby nám to veci, ako je zmena farby 16 00:00:43,220 --> 00:00:46,010 a zmeniť pozíciu a tieto druhy vylepšenia. 17 00:00:46,010 --> 00:00:49,940 Ale dnes, a ďalej, začneme zamerať sa na silnejšie jazykov, 18 00:00:49,940 --> 00:00:52,810 skutočné programovacie jazyky ako PHP. 19 00:00:52,810 --> 00:00:54,880 >> Takže PHP už nejakú dobu. 20 00:00:54,880 --> 00:00:56,810 A ako uvidíte, je bol určený predovšetkým 21 00:00:56,810 --> 00:01:00,280 čoskoro na skutočné použitie vo vývoji webových aplikácií 22 00:01:00,280 --> 00:01:02,360 a vlastne generovanie webových stránok. 23 00:01:02,360 --> 00:01:04,849 Čo tak druhy funkcie robí jazyk 24 00:01:04,849 --> 00:01:10,040 je potrebné, aby web stránky dynamicky s tým? 25 00:01:10,040 --> 00:01:14,760 >> Inými slovami, ak chcete vytvoriť Obsah dynamically-- ako Facebook je 26 00:01:14,760 --> 00:01:19,480 Noviniek, ktoré sa neustále mení, alebo rýchle správy, ktoré sa objavujú čas od času 27 00:01:19,480 --> 00:01:21,872 na time-- ako to, čo je kľúčovou súčasťou funkčnosti 28 00:01:21,872 --> 00:01:24,580 budete potrebovať v programovacom jazyku ktoré by vás nechal dynamicky 29 00:01:24,580 --> 00:01:28,070 vytlačiť nové informácie na obrazovke? 30 00:01:28,070 --> 00:01:28,685 >> STUDENT: Code. 31 00:01:28,685 --> 00:01:29,560 DAVID J. Malan: Code. 32 00:01:29,560 --> 00:01:30,440 OK. 33 00:01:30,440 --> 00:01:31,995 Budeme to brať. 34 00:01:31,995 --> 00:01:35,310 Trochu presnejšie. 35 00:01:35,310 --> 00:01:37,639 Myslím, že by sme mohli robiť to s C, úprimne povedané. 36 00:01:37,639 --> 00:01:38,930 Jednalo by sa o bolesť v krku. 37 00:01:38,930 --> 00:01:41,045 Ale- je tento záväzok? 38 00:01:41,045 --> 00:01:41,895 >> STUDENT: Jo. 39 00:01:41,895 --> 00:01:42,677 Premenné, možná? 40 00:01:42,677 --> 00:01:43,760 DAVID J. Malan: premenné. 41 00:01:43,760 --> 00:01:44,160 OK, iste. 42 00:01:44,160 --> 00:01:45,740 Premenné môžu nám určite pomôže von. 43 00:01:45,740 --> 00:01:47,020 A dokonca aj niečo jednoduchšie. 44 00:01:47,020 --> 00:01:50,640 Použili sme ju v prvej Program prvého dňa 45 00:01:50,640 --> 00:01:55,686 keď sme v skutočnosti povedal: "hello world". 46 00:01:55,686 --> 00:01:56,570 >> STUDENT: Print. 47 00:01:56,570 --> 00:01:57,778 >> DAVID J. Malan: Tlač, nie? 48 00:01:57,778 --> 00:02:01,050 Tlač, alebo printf v Svet C. Takže celú tú dobu, 49 00:02:01,050 --> 00:02:03,362 sme mali na našom webe Likvidácia language-- C, 50 00:02:03,362 --> 00:02:05,570 v particular-- a dokonca Scratch keď na to príde, že 51 00:02:05,570 --> 00:02:07,400 môže vytvárať reťazca textu. 52 00:02:07,400 --> 00:02:11,090 >> No, ak je HTML, ako sme videli minulý týždeň, je len celá partia reťazca texte 53 00:02:11,090 --> 00:02:14,692 aj keď s otvorenými zátvorkami a uzavretý držiaky a nejaký rým 54 00:02:14,692 --> 00:02:16,650 a dôvod, prečo za ním, Tak sme mohli naozaj 55 00:02:16,650 --> 00:02:20,440 začať vytvárať webové stránky a to buď ručne zadaním je v gedit 56 00:02:20,440 --> 00:02:23,870 alebo v aplikácii Microsoft Word, pre ktoré matter-- nám stačí textový editor. 57 00:02:23,870 --> 00:02:26,830 >> Alebo by sme mohli písať kód, do svojho návrhu 58 00:02:26,830 --> 00:02:30,435 skôr, že by nás nechal dynamicky generovať HTML, 59 00:02:30,435 --> 00:02:32,560 a to je to, čo budeme začať robiť s PHP 60 00:02:32,560 --> 00:02:34,900 a nakoniec aj pri jazyk volal JavaScript 61 00:02:34,900 --> 00:02:37,910 je použiť jeden jazyk, pre generovanie druhého. 62 00:02:37,910 --> 00:02:40,720 A skutočne, to je to, čo Facebook a mnoho, mnoho ďalších miest 63 00:02:40,720 --> 00:02:44,530 urobiť, aby skutočne dynamicky zobrazí nové informácie k vám. 64 00:02:44,530 --> 00:02:47,117 >> Takže začnime s tohle-- A mystický hľadáte line, ale jeden 65 00:02:47,117 --> 00:02:48,450 to je vlastne celkom silný. 66 00:02:48,450 --> 00:02:51,210 Doteraz sme používali C, ktorý je zostavený jazyk. 67 00:02:51,210 --> 00:02:55,050 A práve rýchle recap-- zostavený jazyk má čo vlastnosť? 68 00:02:55,050 --> 00:02:59,050 Budete zrejme musieť kompilovať to, ale čo to znamená? 69 00:02:59,050 --> 00:03:00,505 Jo? 70 00:03:00,505 --> 00:03:02,940 >> Študent: To musí byť zostavené do strojového kódu. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. Malan: OK. 72 00:03:03,060 --> 00:03:04,530 Treba zostavený do strojového kódu. 73 00:03:04,530 --> 00:03:07,340 Takže budete mať svoj zdrojový kód, čo je trochu anglicky podobne. 74 00:03:07,340 --> 00:03:09,270 Previesť, že pre niečo nižšiu úroveň, 75 00:03:09,270 --> 00:03:11,590 ktorý sa nakoniec nazýva Objekt code-- 0 a 1 je. 76 00:03:11,590 --> 00:03:14,830 A to tie 0 a 1 je, že CPU, ako tie vyrobené spoločnosťou Intel, 77 00:03:14,830 --> 00:03:16,110 skutočne pochopiť. 78 00:03:16,110 --> 00:03:19,690 >> Teraz, PHP a Python a Ruby a JavaScript a kytice ostatné 79 00:03:19,690 --> 00:03:23,190 jazyky nie sú zostavené jazyky, ale interpretovať jazyky, 80 00:03:23,190 --> 00:03:26,630 čo znamená, že stačí ich zadať a potom nemáte premeniť ich v 0 a 1 je. 81 00:03:26,630 --> 00:03:30,790 Namiesto toho len poskytovať následne ako vstup do programu niekoho iného, 82 00:03:30,790 --> 00:03:32,080 volal tlmočníka. 83 00:03:32,080 --> 00:03:34,460 A táto osoba je Program bol navrhnutý tak, 84 00:03:34,460 --> 00:03:38,280 rozumieť tomu, čo každý a každý symbol v Pythone alebo PHP 85 00:03:38,280 --> 00:03:42,650 alebo Ruby alebo ľubovoľný počet ďalšie jazyky znamená. 86 00:03:42,650 --> 00:03:44,760 >> A tak všetko, čo potrebujete, je niečo také. 87 00:03:44,760 --> 00:03:46,350 Takže v skutočnosti, budem prejsť na spotrebiče 88 00:03:46,350 --> 00:03:48,100 tu, len do niektorého staré okno, a my sme 89 00:03:48,100 --> 00:03:52,580 ísť dopredu a otvorené súbor s názvom, povedzme, ahoj. 90 00:03:52,580 --> 00:03:55,780 Teraz už skôr, mohol som zachránil to dokonca s príponou súboru, 91 00:03:55,780 --> 00:03:57,910 ale budem robiť ešte niečo jednoduchšie tu. 92 00:03:57,910 --> 00:04:02,450 Chystám sa ísť dopredu a začať Tento súbor s touto mystickom syntax. 93 00:04:02,450 --> 00:04:06,310 Tak "user, bin, env, pre životné prostredie, php. " 94 00:04:06,310 --> 00:04:10,670 >> To je proste jeden riadok kódu, ktorý je povie svoj operačný systém, 95 00:04:10,670 --> 00:04:13,730 ísť nájsť vo vašej miestnej prostredie, nech je to čokoľvek, 96 00:04:13,730 --> 00:04:18,149 všade tam, kde PHP je-- na interpreter-- a choďte do toho a používať tento interpret 97 00:04:18,149 --> 00:04:20,589 interpretovať nasledujúci kód. 98 00:04:20,589 --> 00:04:22,760 Teraz, to je druh škaredý rys PHP. 99 00:04:22,760 --> 00:04:24,980 Ale v tomto jazyku, akýkoľvek keď budete písať PHP kód, 100 00:04:24,980 --> 00:04:29,200 musíte mať jeden z týchto škaredé PHP tagy vymedzenie začiatok 101 00:04:29,200 --> 00:04:32,220 vášho code-- 00:04:37,430 >> Ale nižšia ako tu, teraz môžem urobiť niečo pomerne jednoduchá, podobne ako printf ahoj čiarka 103 00:04:37,430 --> 00:04:40,922 Svet spätné lomítko n close citácie, v blízkosti zátvorka. 104 00:04:40,922 --> 00:04:42,630 A potom už len pre dobro opatrenia, idem 105 00:04:42,630 --> 00:04:45,380 pokračovať v blízkosti môj php tag sem 106 00:04:45,380 --> 00:04:47,390 tak, že všetko vyzerá pekne pekne vytlačiť. 107 00:04:47,390 --> 00:04:50,780 >> A akonáhle som kliknite na tlačidlo Uložiť, gedit je dosť naozaj šikovný 108 00:04:50,780 --> 00:04:54,620 pozrieť sa na tomto prvom riadku a si uvedomiť, oh, píšete PHP kód. 109 00:04:54,620 --> 00:04:56,710 Dovoľte mi zvýraznenie syntaxe to s farbami 110 00:04:56,710 --> 00:04:58,690 tu, takže to stojí o trochu viac. 111 00:04:58,690 --> 00:05:01,300 Ale teraz idem dole do okna môjho terminálu. 112 00:05:01,300 --> 00:05:02,340 Budem priblížiť. 113 00:05:02,340 --> 00:05:06,860 >> Tento program bol nazvaný "Dobrý deň," takže budem robiť bodka lomka Dobrý deň, 114 00:05:06,860 --> 00:05:07,990 ale popieral povolenie. 115 00:05:07,990 --> 00:05:08,490 A bash. 116 00:05:08,490 --> 00:05:10,610 Vlastne sme počuli, že Pred vec pár týždňami 117 00:05:10,610 --> 00:05:13,140 v súvislosti s Shellshock, jeden z tých chýb. 118 00:05:13,140 --> 00:05:16,240 >> Ale Permission denied sme videli skôr, možno v inom kontexte. 119 00:05:16,240 --> 00:05:19,060 Má niekto pripomenúť, ako môžete opraviť niečo 120 00:05:19,060 --> 00:05:22,100 kde je prístup odmietnutý takto? 121 00:05:22,100 --> 00:05:23,490 Čo je to príkaz, aspoň? 122 00:05:23,490 --> 00:05:24,159 >> STUDENT: Chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. Malan: Jo, chmod, pre zmenu režimu súboru. 124 00:05:26,700 --> 00:05:30,171 A budete mať o to viac používa pre Táto ďalší týždeň s následným problémom 125 00:05:30,171 --> 00:05:30,670 nastavenie. 126 00:05:30,670 --> 00:05:33,211 Ale teraz, budem meniť režim nesmie byť čitateľný, 127 00:05:33,211 --> 00:05:36,650 ale dať každému executeability oprávnenia, schopnosť 128 00:05:36,650 --> 00:05:37,710 spustiť tento súbor. 129 00:05:37,710 --> 00:05:40,360 A ja priradiť že do súboru Dobrý deň. 130 00:05:40,360 --> 00:05:45,150 >> Ak teraz mám dot lomka ahoj ENTER, vidieť, v skutočnosti, môj program, hello world. 131 00:05:45,150 --> 00:05:48,760 A čo krok urobil ja jasne vynechať úplne? 132 00:05:48,760 --> 00:05:49,520 Kompilácie. 133 00:05:49,520 --> 00:05:51,680 Tak som bežal tento program jednoducho. 134 00:05:51,680 --> 00:05:55,690 >> A ukázalo sa, môžete to urobiť s veľa syntax pripomínajúce C 135 00:05:55,690 --> 00:06:03,400 Nechaj ma ísť v dnešnej kódu, ktoré som dal do môjho VHOST adresára 136 00:06:03,400 --> 00:06:05,250 tú, skutočných príčin vrátime sa. 137 00:06:05,250 --> 00:06:09,350 A ja idem do, povedzme, podmienky 1. 138 00:06:09,350 --> 00:06:12,450 >> A uvidíte tú, prvý a predovšetkým, celá partia komentárov. 139 00:06:12,450 --> 00:06:15,240 Ale to je v skutočnosti re-vytvorenie v PHP 140 00:06:15,240 --> 00:06:18,960 programu sme v týždni jeden s názvom podmienky 1.c. 141 00:06:18,960 --> 00:06:20,690 kde účel Životnosť tohto programu 142 00:06:20,690 --> 00:06:22,950 je zrejme sa opýtať používateľ na celé číslo 143 00:06:22,950 --> 00:06:25,270 a potom urobiť nejaké nadýchané Analýza na to prostredníctvom ktorej 144 00:06:25,270 --> 00:06:29,510 hovoríte, či je to pozitívne alebo záporný alebo sa rovná nule. 145 00:06:29,510 --> 00:06:34,220 A uvediem to do len preto, s výnimkou snáď jedného malého detailu, 146 00:06:34,220 --> 00:06:37,150 je to na nerozoznanie tak ďaleko od C 147 00:06:37,150 --> 00:06:39,930 >> Čo je tá charakteristika tu to možno vyskočí 148 00:06:39,930 --> 00:06:41,410 na vás, ako trochu inak? 149 00:06:41,410 --> 00:06:42,160 Možno, že dve veci. 150 00:06:42,160 --> 00:06:42,660 Jo? 151 00:06:42,660 --> 00:06:44,070 >> STUDENT: Dollar sign n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. Malan: Jo. 153 00:06:44,944 --> 00:06:46,210 Takže znak dolára n je prítomný. 154 00:06:46,210 --> 00:06:48,120 A dolára, as uvidíme, idú 155 00:06:48,120 --> 00:06:51,460 byť oprava na začiatok každej premennej v PHP. 156 00:06:51,460 --> 00:06:54,250 Je to dobré aj bad-- dobré že je to niečo, čo je zrejmé, 157 00:06:54,250 --> 00:06:56,797 premenná, zlý v tom, že je ešte ďalšia vec, písať. 158 00:06:56,797 --> 00:06:58,630 A je tu ešte jedna ďalšia čo máme nie tak celkom 159 00:06:58,630 --> 00:07:00,876 vidieť, aspoň týmto hláskovanie. jo? 160 00:07:00,876 --> 00:07:01,630 >> STUDENT: ReadLine. 161 00:07:01,630 --> 00:07:02,671 >> DAVID J. Malan: ReadLine. 162 00:07:02,671 --> 00:07:06,550 Readline sme nevideli, sama o sebe, v C, aj keď existuje niečo 163 00:07:06,550 --> 00:07:09,530 podobný, ale sme použili getString, a to je jeho náprotivok. 164 00:07:09,530 --> 00:07:12,950 Takže keď idem do toho adresár, ktorý sa stane byť, 165 00:07:12,950 --> 00:07:18,030 ako ja ti to vysvetlím za chvíľu v mojom VHOST adresáre a môj zdroj adresár, 166 00:07:18,030 --> 00:07:22,730 a ja sa do toho pustite a urobiť dot lomka conditions-- whoops-- bodka lomítko 167 00:07:22,730 --> 00:07:26,710 podmienky 1, uvidíte opäť, rovnaký issue-- prístup odmietnutý. 168 00:07:26,710 --> 00:07:33,610 >> Takže mi dovoľte priblížiť a urobiť chmod plus x podmienok, bodka lomítko podmienok. 169 00:07:33,610 --> 00:07:35,222 Rád by som celé číslo, prosím, 50. 170 00:07:35,222 --> 00:07:36,930 A tak by sme mohli hrať to Hra po celý deň. 171 00:07:36,930 --> 00:07:39,140 Bude sa správať presne ako tomu bolo v prvom týždni. 172 00:07:39,140 --> 00:07:42,860 >> OK, takže príliš nelíšia, s výnimkou nielen, že mierne trochu syntaxe, 173 00:07:42,860 --> 00:07:45,490 ale hore, som znova mal tento riadok, ktorý 174 00:07:45,490 --> 00:07:49,760 mi umožnilo vytvoriť niečo, čo vyzerá ako C program s názvom Dobrý deň, 175 00:07:49,760 --> 00:07:51,150 tzv podmienky 1. 176 00:07:51,150 --> 00:07:54,520 Ale to nie je 0 je a tie, Ja vykonávanie priamo. 177 00:07:54,520 --> 00:07:57,620 Je to miesto beží to interpret, ktorého meno 178 00:07:57,620 --> 00:07:59,440 sa stane, že je totožný s jazykom. 179 00:07:59,440 --> 00:08:04,970 Tento program sa nazýva PHP, a môj kód pod hranicou jeden je odovzdaný do neho. 180 00:08:04,970 --> 00:08:07,740 >> Môžeme to urobiť ďalší pomerne jednoduchý Príkladom pripomínajúce niečo 181 00:08:07,740 --> 00:08:09,240 sme pred niekoľkými týždňami. 182 00:08:09,240 --> 00:08:12,020 Znova, toto je druh ľubovoľný kus kódu 183 00:08:12,020 --> 00:08:14,000 to zrejme robí čo keď to beží? 184 00:08:14,000 --> 00:08:15,625 Čo sa to bude tlačiť, pravdepodobne? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Takže spočiatku na linke 16, je to chcel povedať, x je teraz 2, pravdepodobne. 187 00:08:28,250 --> 00:08:30,920 % D je rovnaký ako i $ pre printf. 188 00:08:30,920 --> 00:08:33,460 Takže je to cubing, bodka, dot, dot, v súlade 17. 189 00:08:33,460 --> 00:08:36,299 A potom Riadok 18 sa zobrazí volanie funkcie kocky. 190 00:08:36,299 --> 00:08:37,600 A kde je Cubed definovaná? 191 00:08:37,600 --> 00:08:40,319 >> No, vyzerá to, že v rade 25, takže to nie je tak odlišné. 192 00:08:40,319 --> 00:08:42,610 Mám nejaké poznámky vyššie to, ale z väčšej časti, 193 00:08:42,610 --> 00:08:45,370 je to celkom jednoduché portovanie alebo konverzie 194 00:08:45,370 --> 00:08:48,470 z programu C na verziu PHP. 195 00:08:48,470 --> 00:08:52,670 Ale tam sú teraz pár rozdiely, ktoré by možno vyskočiť. 196 00:08:52,670 --> 00:08:56,100 Čo iného sa líšia o tom, ako môže napísať rovnaký program v C? 197 00:08:56,100 --> 00:08:57,900 >> STUDENT: [nepočuteľné]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. Malan: tu žiadny prototyp up top. 199 00:09:00,070 --> 00:09:03,210 Tak PHP-- a úprimne povedané, Mnoho moderných languages-- 200 00:09:03,210 --> 00:09:06,920 sú oveľa múdrejší a ďalšie užitočné ako C prekladača v tom, že vás 201 00:09:06,920 --> 00:09:09,740 môže dať funkciu tu, si môžete dať funkciu tu, 202 00:09:09,740 --> 00:09:12,740 a interpret sa deje k tomu vám láskavosť čítanie 203 00:09:12,740 --> 00:09:16,010 celý súbor, než sa rozhodne, že niektoré funkcie neexistuje. 204 00:09:16,010 --> 00:09:17,970 So Nice vylepšenia rokov neskôr. 205 00:09:17,970 --> 00:09:22,126 Ale je tu aj niečo ešte iný alebo tu chýba. 206 00:09:22,126 --> 00:09:22,626 Jo? 207 00:09:22,626 --> 00:09:25,084 >> STUDENT: [nepočuteľné]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. Malan: Nemáme na deklarovať typy premenných, 209 00:09:27,750 --> 00:09:31,780 tak uvidíme onedlho, že existujú rôzne typy v PHP, 210 00:09:31,780 --> 00:09:34,970 ale nemusíte je určiť, čo je tiež dobré aj zlé. 211 00:09:34,970 --> 00:09:36,623 A je tu ešte jedna vec chýba. 212 00:09:36,623 --> 00:09:37,430 >> Študent: Je tu žiadne knižnice. 213 00:09:37,430 --> 00:09:38,630 >> DAVID J. Malan: nie sú k dispozícii žiadne knižnice. 214 00:09:38,630 --> 00:09:39,350 OK, tak to je pekné. 215 00:09:39,350 --> 00:09:40,540 Dostaneme oveľa viac po vybalení z krabice. 216 00:09:40,540 --> 00:09:43,373 Takže je to vlastne oveľa viac veci, ako som si myslel, že sú odlišné. 217 00:09:43,373 --> 00:09:44,350 Ako sa asi tak v chrbte? 218 00:09:44,350 --> 00:09:46,032 Čo je to? 219 00:09:46,032 --> 00:09:46,740 Povedz to ešte raz? 220 00:09:46,740 --> 00:09:47,960 >> STUDENT: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. Malan: Bez ukazovatele. 222 00:09:49,270 --> 00:09:51,280 OK, aspoň v tomto príklade, nie. 223 00:09:51,280 --> 00:09:52,070 To je fér. 224 00:09:52,070 --> 00:09:55,090 Takže tam nie sú odkazy PHP vlastne všeobecne. 225 00:09:55,090 --> 00:09:58,730 Existuje niečo ako referencia, ale nebudeme tráviť príliš veľa času. 226 00:09:58,730 --> 00:09:59,520 A čo ešte? 227 00:09:59,520 --> 00:10:00,185 >> STUDENT: Main. 228 00:10:00,185 --> 00:10:01,060 DAVID J. Malan: Main. 229 00:10:01,060 --> 00:10:02,768 Tak toto bol Biggie Myslel som, že. 230 00:10:02,768 --> 00:10:04,660 Všimnite si, že to nie je hlavný vstupný bod. 231 00:10:04,660 --> 00:10:06,525 Môžete jednoducho začať písať kód. 232 00:10:06,525 --> 00:10:08,400 A to je v skutočnosti Bude výhodné 233 00:10:08,400 --> 00:10:10,560 keď sme prechod okamih skutočne používať 234 00:10:10,560 --> 00:10:13,980 tento rovnaký jazyk pre web-based programovanie, pre ktoré sme 235 00:10:13,980 --> 00:10:16,580 nechcú mať len jeden vstupný bod. 236 00:10:16,580 --> 00:10:19,980 Mohli by sme mať veľa URL, veľa rôznych súborov 237 00:10:19,980 --> 00:10:22,930 všetko brať v vstup užívateľa a zhotovuje výstup. 238 00:10:22,930 --> 00:10:27,130 >> Ale tu je veľmi skľučujúca príklad, ktorý som sľúbil minule, 239 00:10:27,130 --> 00:10:30,130 a to v tejto zložke tu preklepy. 240 00:10:30,130 --> 00:10:33,680 Takže v tomto súbore pravopisu, ktorú sme nebude tráviť príliš veľa času, došlo 241 00:10:33,680 --> 00:10:37,870 v podstate porting-- P-O-R-T. Je to len slovo, vzhľadom k tomu, kedy, povedzme, 242 00:10:37,870 --> 00:10:40,800 prevodu z jedného jazyka na druhý ručne zvyčajne. 243 00:10:40,800 --> 00:10:45,680 >> Jedná sa o portovanie na PC verzia pravopisu z pset 5. 244 00:10:45,680 --> 00:10:48,856 A ja som v podstate sa snažil previesť je riadok po riadku tak presne, ako len môžem. 245 00:10:48,856 --> 00:10:51,730 Takže ak máte radi tento druh veci, v skutočnosti je hodnota v určitom okamihu 246 00:10:51,730 --> 00:10:54,229 ťahom je obaja na strane bočné a vidieť to, čo je rovnaké 247 00:10:54,229 --> 00:10:55,230 a to, čo je. 248 00:10:55,230 --> 00:10:57,510 Ale sú čertovsky podobné. 249 00:10:57,510 --> 00:11:00,110 Ak si pamätáte, čo Speller dokonca vyzeralo, 250 00:11:00,110 --> 00:11:02,110 aj keď nie musieť zmeniť tento súbor, 251 00:11:02,110 --> 00:11:04,860 je to celkom podobné konštrukčne len s pár 252 00:11:04,860 --> 00:11:06,200 zmien sem a tam. 253 00:11:06,200 --> 00:11:10,140 >> Takže je to len povedať, že je to celkom jednoduché previesť pravopisu 254 00:11:10,140 --> 00:11:12,000 z C do PHP. 255 00:11:12,000 --> 00:11:15,390 Ale v slovníku, je tu niečo, čo ešte presvedčivejšie. 256 00:11:15,390 --> 00:11:19,270 Nechaj ma ísť dopredu a vytvoriť moje vlastné dictionary.php súboru. 257 00:11:19,270 --> 00:11:24,010 Takže mierne odlišné v tom, že budeme nazývať .php miesto .c. 258 00:11:24,010 --> 00:11:26,980 Pretože sa jedná o súbor PHP, I do-- mierne annoyingly-- mať 259 00:11:26,980 --> 00:11:30,132 spustite súbor php tag takhle. 260 00:11:30,132 --> 00:11:32,340 A budem pokračovať a definovať niekoľko funkcií. 261 00:11:32,340 --> 00:11:35,770 Funkcia volaná kontrola, ktorá je bude trvať na slová ako predtým. 262 00:11:35,770 --> 00:11:37,520 Ale tento argument je bude mať dolár 263 00:11:37,520 --> 00:11:39,840 podpísať, pretože sme opäť pomocou PHP. 264 00:11:39,840 --> 00:11:42,350 Ďalšie funkcie z dictionary.c bolo zaťaženie 265 00:11:42,350 --> 00:11:47,120 a to sa v mene slovníka, takže budem mať túto funkciu pripravený ísť. 266 00:11:47,120 --> 00:11:50,920 >> Jeden v dictionary.c je to, čo? 267 00:11:50,920 --> 00:11:54,580 Veľkosť bol jeden z najkrajších ty sa na aspoň pokiaľ ste si nechali nejaké premenné okolo. 268 00:11:54,580 --> 00:11:57,830 takže veľkosť jednoducho musí vrátiť premennú. 269 00:11:57,830 --> 00:11:59,090 A potom tu bol vyložiť. 270 00:11:59,090 --> 00:12:02,830 >> Takže tam boli tieto štyri funkcie v probléme nastavenie 5 271 00:12:02,830 --> 00:12:06,770 že ste potrebovali, aby s niektoré štruktúry alebo štruktúry dát. 272 00:12:06,770 --> 00:12:10,170 Tak som sľúbil, že v PHP, môžeme vyhlásiť, 273 00:12:10,170 --> 00:12:14,490 hash tabuľky, napríklad, to všetko ľahšie. 274 00:12:14,490 --> 00:12:17,377 V skutočnosti, ak chcem hash tabuľky, Len som ísť takhle 275 00:12:17,377 --> 00:12:18,460 a tu je moja hash tabuľky. 276 00:12:18,460 --> 00:12:21,555 A to je poznámka, skľučujúca, že sme skončili na poslednom čase. 277 00:12:21,555 --> 00:12:23,930 A viete, čo, keby som chcel premenné pre veľkosť, dobre, 278 00:12:23,930 --> 00:12:25,867 toto nie je všetko ktoré sa líšia od C 279 00:12:25,867 --> 00:12:27,450 ale ja idem ďalej a robiť, že. 280 00:12:27,450 --> 00:12:28,630 A všimnite si žiadny dátový typ. 281 00:12:28,630 --> 00:12:31,180 A ja sa vrátim neskôr, a vlastne sem pridať nejaké pripomienky. 282 00:12:31,180 --> 00:12:32,480 Ale čo zaťaženie? 283 00:12:32,480 --> 00:12:35,780 >> Ak sa znak dolára slovník je názov môjho súboru 284 00:12:35,780 --> 00:12:39,600 a ja som vlastne chcete načítať slová do tejto tabuľky podnikom, 285 00:12:39,600 --> 00:12:42,360 Ja si skutočne robiť niečo celkom jednoduché. 286 00:12:42,360 --> 00:12:44,880 One-- a to je minorly annoying-- v PHP, 287 00:12:44,880 --> 00:12:47,710 musíte zadať v z funkcie, ak vás 288 00:12:47,710 --> 00:12:51,060 chcete prístup k niektorým globálne premenná, ktorá je definovaná mimo. 289 00:12:51,060 --> 00:12:53,530 >> Ale to nie je zvlášť zaujímavé práve teraz. 290 00:12:53,530 --> 00:12:57,920 Čo je ešte zaujímavejšie je to pre každého postaviť, že som sa zmienil minule. 291 00:12:57,920 --> 00:13:01,880 A ukázalo sa, že PHP má funkciu volal súbor, ktorého zmysel života 292 00:13:01,880 --> 00:13:05,550 je súbor otvoriť a čítať všetky svoje linky do poľa 293 00:13:05,550 --> 00:13:06,840 a odovzdať ich späť. 294 00:13:06,840 --> 00:13:12,170 >> Čo znamená, že môžem robiť to slovník že teraz efektívne, keď volám súboru, 295 00:13:12,170 --> 00:13:15,472 to ma vrátiť pole slov zo súboru. 296 00:13:15,472 --> 00:13:16,430 Nie je to tak dobrý. 297 00:13:16,430 --> 00:13:20,130 Je to stále ešte bude linka slov, niečo lineárne. 298 00:13:20,130 --> 00:13:23,880 Ale môžem pokračovať a opakovať nad každým z týchto slov použitia 299 00:13:23,880 --> 00:13:25,710 že syntax sme videli krátko minule. 300 00:13:25,710 --> 00:13:27,940 A uvidíte, že viac v nadchádzajúcej pset. 301 00:13:27,940 --> 00:13:32,070 >> Ale teraz mám slučky iterácie po každé slovo v slovníku. 302 00:13:32,070 --> 00:13:36,100 A v každej iterácii, spomínam, že som volanie aktuálne slovo "slovo". 303 00:13:36,100 --> 00:13:39,790 A všetko to bude trvať, než dať slovo do slovníka je 304 00:13:39,790 --> 00:13:43,530 bude slovo hádať "true". 305 00:13:43,530 --> 00:13:44,740 To je môj vložka funkcie. 306 00:13:44,740 --> 00:13:46,661 To je funkcia load má pre môjho slovníka. 307 00:13:46,661 --> 00:13:49,410 Teraz je to trochu podvod, pretože vieš čo, je to vlastne 308 00:13:49,410 --> 00:13:52,920 spätné lomítko n na konci slov že by som mal asi zbaviť, 309 00:13:52,920 --> 00:13:56,380 ale to nie je problém, pretože PHP má funkcia volaná chop, ktoré doslova 310 00:13:56,380 --> 00:13:58,480 kotlety off jeden znak na samom konci. 311 00:13:58,480 --> 00:13:59,400 Takže tam žiadny problém. 312 00:13:59,400 --> 00:14:02,199 Išli sme ďalej a vlastne skrátil, že sa práve tento. 313 00:14:02,199 --> 00:14:05,240 A teraz som mal asi sledovať veľkosti, tak sa poďme aspoň urobiť tohle-- 314 00:14:05,240 --> 00:14:05,835 Veľkosť ++. 315 00:14:05,835 --> 00:14:07,339 Môžem to urobiť ako predtým. 316 00:14:07,339 --> 00:14:10,380 A potom je to pravdepodobne bude fungovať v pohode, takže to vráti hodnotu true. 317 00:14:10,380 --> 00:14:10,930 Hotovo. 318 00:14:10,930 --> 00:14:11,797 Pset 5. 319 00:14:11,797 --> 00:14:13,545 >> [SMIECH] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. Malan: OK. 321 00:14:14,420 --> 00:14:16,628 Chystáme sa urobiť znovu s ďalším pset, taky. 322 00:14:16,628 --> 00:14:18,730 A čo veľkosť? 323 00:14:18,730 --> 00:14:22,080 No, toto snáď je o ako by ste očakávali minule, 324 00:14:22,080 --> 00:14:24,460 aj keď musím urobiť to hlúpe globálna vec. 325 00:14:24,460 --> 00:14:26,610 Je to len artefakt od Konštrukcia jazyku je. 326 00:14:26,610 --> 00:14:28,450 >> Ale kontrola je trochu zaujímavejšie. 327 00:14:28,450 --> 00:14:31,420 Takže keď som prešiel v dolára Prvý podpísať slovo, ja 328 00:14:31,420 --> 00:14:34,060 Chcete mať prístup ku že globálna premenná stôl. 329 00:14:34,060 --> 00:14:36,700 A teraz, keď chcem skontrolujte, či slovo je tam, 330 00:14:36,700 --> 00:14:44,350 Môžem len povedať, či to je pravda, že vkladá sa nachádza v tabuľke, 331 00:14:44,350 --> 00:14:49,957 potom choďte do toho a návrat pravda; inak, vráti false. 332 00:14:49,957 --> 00:14:51,180 Hotovo. 333 00:14:51,180 --> 00:14:52,440 Druhá polovica pset 5. 334 00:14:52,440 --> 00:14:54,540 >> Dobre, tak ešte raz, ja som rezanie pár rohov. 335 00:14:54,540 --> 00:14:56,831 Úprimne povedané, mal som asi stráviť pár sekúnd 336 00:14:56,831 --> 00:14:58,300 Na tejto implementácie. 337 00:14:58,300 --> 00:15:01,860 A ja som asi nemal zosmiešňovať všetky hodín si dať na pset toľko. 338 00:15:01,860 --> 00:15:04,045 Takže strtolower je funkcia. 339 00:15:04,045 --> 00:15:06,670 Niečo podobné existencialistický v C, aspoň pre znaky, 340 00:15:06,670 --> 00:15:08,560 ale PHP je dostal celú verziu reťazca. 341 00:15:08,560 --> 00:15:11,226 >> To bude nútiť všetko na malé písmená, čo niektorí z vás 342 00:15:11,226 --> 00:15:14,944 mohla urobiť, aby sa to, čo kanonické ste uvedenie do slovníka. 343 00:15:14,944 --> 00:15:16,360 A teraz môžete to urobiť v C tiež. 344 00:15:16,360 --> 00:15:17,780 To nemá nič spoločné s PHP. 345 00:15:17,780 --> 00:15:20,260 >> Ale kedykoľvek budete mať Boolean stav, 346 00:15:20,260 --> 00:15:22,680 ako niečo, čo na linke 10 tam, čo je len 347 00:15:22,680 --> 00:15:27,145 bude hodnotiť na hodnotu true alebo falošný, a vaša ak inde jasne 348 00:15:27,145 --> 00:15:33,620 vracia true alebo false, mohol by som proste naozaj túto sexy 349 00:15:33,620 --> 00:15:38,360 a práve niečo také. 350 00:15:38,360 --> 00:15:40,500 Takže tu je moja kontrola funkcie. 351 00:15:40,500 --> 00:15:42,560 Jasne, ak Boolean vracia hodnotu true alebo false, 352 00:15:42,560 --> 00:15:44,630 povedzme, vráti ho ihneď. 353 00:15:44,630 --> 00:15:47,340 >> A je tu pár ďalších vylepšení Mohol by som sem a tam. 354 00:15:47,340 --> 00:15:51,380 Load-- odľahčenie, mimochodom, že to robí. 355 00:15:51,380 --> 00:15:52,850 Nič, čo by tam robil. 356 00:15:52,850 --> 00:15:55,840 Vzhľadom k tomu, všetky pamäte PHP a mnoho ďalších jazykov 357 00:15:55,840 --> 00:15:57,570 je v skutočnosti riadená pre vás. 358 00:15:57,570 --> 00:16:00,330 A tak vzhľadom k tomu, C, ako je ste sa naučili bolestne, 359 00:16:00,330 --> 00:16:04,700 niečo, čo malloc alebo calloc alebo realloc, musíte oslobodiť sa. 360 00:16:04,700 --> 00:16:08,770 Všetko, čo fopen, musíte fclose, tak, že zdroje sú nakoniec oslobodení 361 00:16:08,770 --> 00:16:11,690 a nástroje, ako Valgrind nie Všimnite si, a nie sa sťažovať, 362 00:16:11,690 --> 00:16:13,570 čo je dobrá vec pre prevádzku na nich. 363 00:16:13,570 --> 00:16:16,190 >> Ale iste, musí tu byť nejaký háčik, že jo? 364 00:16:16,190 --> 00:16:19,400 Inak sme trochu zbytočný celá partia týždňov. 365 00:16:19,400 --> 00:16:23,270 Takže tam je rad dôvodov, Preto sme tak nejako využiť túto trajektóriu, 366 00:16:23,270 --> 00:16:24,440 ale tam je trade-off. 367 00:16:24,440 --> 00:16:25,820 Jasne, to bolo tematické. 368 00:16:25,820 --> 00:16:29,690 >> Takže to, čo by mohlo trade-off tu pohybuje od C do PHP? 369 00:16:29,690 --> 00:16:33,250 Cítim sa, ako všetko vyhrať, ak iný ako trochu škaredosti tu alebo tam. 370 00:16:33,250 --> 00:16:34,040 Jo. 371 00:16:34,040 --> 00:16:34,700 Čo je to? 372 00:16:34,700 --> 00:16:36,064 >> STUDENT: [nepočuteľné] pamäť. 373 00:16:36,064 --> 00:16:36,980 DAVID J. Malan: Speed. 374 00:16:36,980 --> 00:16:37,479 OK. 375 00:16:37,479 --> 00:16:40,720 No, moja rýchlosť bola celkom rýchlo. 376 00:16:40,720 --> 00:16:42,020 Je to tak? 377 00:16:42,020 --> 00:16:44,320 Ale rýchlosť vykonávania programu? 378 00:16:44,320 --> 00:16:45,580 OK, tak to je spravodlivé miesto. 379 00:16:45,580 --> 00:16:50,930 >> Tak to by sa stalo, ja vopred cued up aj moja skúsiť riešenie, jeden 380 00:16:50,930 --> 00:16:53,510 Mal som na veľkej doske bolo riešenie try-based, 381 00:16:53,510 --> 00:16:55,510 a mám to v tomto adresári tu. 382 00:16:55,510 --> 00:16:58,510 Tak som sa vo chvíli, môžem ísť ďalej a beží to na Biblii Kinga Jamesa, 383 00:16:58,510 --> 00:16:59,657 klávesy Enter. 384 00:16:59,657 --> 00:17:01,990 A to je snáď správny realizácia na konci, 385 00:17:01,990 --> 00:17:05,109 mi dáva čas celkom 0,38 sekúnd, ktoré 386 00:17:05,109 --> 00:17:07,270 jeden trochu ľubovoľný príklad. 387 00:17:07,270 --> 00:17:09,270 >> A keď som teraz ísť do toho druhé okno terminálu 388 00:17:09,270 --> 00:17:14,569 tu, kde som prvýkrát otvoril gedit, nech ma ísť do dnešnej code--, ktoré opäť 389 00:17:14,569 --> 00:17:19,650 je v tomto adresári here-- a nechaj ma ísť napred a spustiť pravopisu. 390 00:17:19,650 --> 00:17:23,470 Takže len aby bolo jasno, To je verzia PHP. 391 00:17:23,470 --> 00:17:25,170 Ja som len ukazuje hornú časť tu. 392 00:17:25,170 --> 00:17:32,020 >> Takže ak mám pravopisu z tilda CS50 Pset 5 textov, King James, zadajte. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 Je to stále rýchlejšie než písanie je to v C, ale celkový čas 395 00:17:43,050 --> 00:17:47,650 je oznámenie, 0,93, zatiaľ čo my Implementácia C na báze bola 0,38. 396 00:17:47,650 --> 00:17:49,110 Takže je to non-triviálne rozdiel. 397 00:17:49,110 --> 00:17:51,100 >> A to je len na jednom súbore. 398 00:17:51,100 --> 00:17:53,480 Ak by ste mali spustiť dva Programy versus veľké dosky 399 00:17:53,480 --> 00:17:56,510 a má veľa vstupov testované, by určite sčítajú. 400 00:17:56,510 --> 00:18:00,310 A ak by sme mali ešte väčšie dátové súbory, aj to by pridať viac. 401 00:18:00,310 --> 00:18:04,820 Takže áno, platiť nejaké cenu rýchlosti tak skutočne je. 402 00:18:04,820 --> 00:18:05,470 Čo ešte? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Jo? 405 00:18:08,860 --> 00:18:10,340 >> STUDENT: Množstvo pamäte RAM. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. Malan: Množstvo pamäte RAM. 407 00:18:11,756 --> 00:18:15,380 Tak som sa nedal jedna sekunda myslel pri písaní tohto PHP 408 00:18:15,380 --> 00:18:17,300 verzia o tom, ako moc spomienka, že som pomocou. 409 00:18:17,300 --> 00:18:22,080 Som úplne odkladá, že pre PHP sama o sebe, a ten, kto napísal tento program. 410 00:18:22,080 --> 00:18:24,500 A to by mohlo byť v poriadku, ale keď som v skutočnosti naozaj 411 00:18:24,500 --> 00:18:28,420 starostlivosť o stláčanie toľko výkonu z môjho programu, alebo z mojej webovej stránky 412 00:18:28,420 --> 00:18:31,150 alebo z akéhokoľvek nástroja Staviam, možno 413 00:18:31,150 --> 00:18:33,310 PHP, naozaj, nie je správny jazyk. 414 00:18:33,310 --> 00:18:36,330 >> A v skutočnosti, že je dôvod, prečo, pre Napríklad, veľa web servers-- 415 00:18:36,330 --> 00:18:38,980 skutočné programy, ktoré slúžiť až webovú content-- 416 00:18:38,980 --> 00:18:41,810 nie sú napísaný v PHP alebo v jazyku Python alebo Ruby. 417 00:18:41,810 --> 00:18:44,630 Sú napísané, ako budete teraz robiť s pset 6, 418 00:18:44,630 --> 00:18:48,120 v C, takže môžete stlačiť každý kúsok výkonu z toho 419 00:18:48,120 --> 00:18:50,780 a skutočne vykonávať ovládanie jemnozrnná nad tým, čo je 420 00:18:50,780 --> 00:18:52,980 deje pod kapucňa a nie len brať 421 00:18:52,980 --> 00:18:54,890 za samozrejmosť, niektoré vyššie Štruktúra dát na úrovni. 422 00:18:54,890 --> 00:18:58,071 >> Zvážte, po tom všetkom, kto v PHP implementovaná 423 00:18:58,071 --> 00:19:00,070 že pojem hash table-- je to vlastne viac 424 00:19:00,070 --> 00:19:04,260 správne nazýva asociatívne array-- robí on alebo ona má nejakú predstavu, aký druh 425 00:19:04,260 --> 00:19:07,090 vstupov sa bude uvedenie do konštrukcie? 426 00:19:07,090 --> 00:19:08,260 Tak samozrejme nie je, že jo? 427 00:19:08,260 --> 00:19:10,340 Je to všeobecný nástroj s motocyklom, ktorý je 428 00:19:10,340 --> 00:19:13,430 za predpokladu, pre každého, kto chce ju používať, a tak isto 429 00:19:13,430 --> 00:19:17,680 nemožno optimalizovať nakoniec presne to, čo chcete robiť. 430 00:19:17,680 --> 00:19:21,180 >> Takže doba vývoja trade-offs-- moc líšia, výkon sa môže líšiť, 431 00:19:21,180 --> 00:19:23,120 zložitosť alebo využitie pamäte sa môže líšiť. 432 00:19:23,120 --> 00:19:24,820 A tak to, čo nájdete stále je, že je tu 433 00:19:24,820 --> 00:19:26,570 bude inak nástroje pre obchod. 434 00:19:26,570 --> 00:19:31,160 A v skutočnosti pre super väčšinu záverečných prác ľudí v tejto triede, 435 00:19:31,160 --> 00:19:34,360 verte tomu alebo nie, C nebude byť správny jazyk používať. 436 00:19:34,360 --> 00:19:37,880 >> A v skutočnosti, jeden z stánok s jedlom nakoniec pre každú triedu, ako je tento 437 00:19:37,880 --> 00:19:40,510 je, aby si myslíš, No, čo by ste mali vytiahnuť 438 00:19:40,510 --> 00:19:42,710 police, keď chcete vyriešiť nejaký problém. 439 00:19:42,710 --> 00:19:46,720 A skutočne, budeme cez tento most ešte, ako sa pozeráme na viac jazykov 440 00:19:46,720 --> 00:19:47,920 aj za dnešok. 441 00:19:47,920 --> 00:19:50,530 >> Takže poďme prechod teraz snáď známejší kontext 442 00:19:50,530 --> 00:19:52,480 pre použitie jazyka, ako je PHP. 443 00:19:52,480 --> 00:19:56,720 Je to trochu bežné použitie v príkazového riadku, písanie skriptov 444 00:19:56,720 --> 00:19:59,050 ako ja, ale je to oveľa, oveľa častejšie. 445 00:19:59,050 --> 00:20:02,350 A bola určená na použitie v forma súborov, ktoré obvykle končia 446 00:20:02,350 --> 00:20:05,060 v .php-- ale to je nie prerequisite-- 447 00:20:05,060 --> 00:20:07,990 ktoré samy vytvárať webový obsah. 448 00:20:07,990 --> 00:20:11,310 >> Tak nechaj ma ísť napred a otvoriť niekoľko príklady som si pripravil dopredu. 449 00:20:11,310 --> 00:20:15,100 A to sú vlastne akési pravda príbehy tým, že jedna z prvých vecí 450 00:20:15,100 --> 00:20:18,200 Čo som kedy robil sám po dokončení CS50 a možno, myslím, 451 00:20:18,200 --> 00:20:21,350 CS51 rokmi je môj spolubývajúci a ja sme boli pomáhať 452 00:20:21,350 --> 00:20:24,320 spustiť prváku intramurální športový program, ktorý v tej dobe, 453 00:20:24,320 --> 00:20:28,610 bol v prvom ročníku registrácii pre rôzne športové vyplnením kus papiera, 454 00:20:28,610 --> 00:20:31,800 ako to bolo volané, chôdza cez dvor k Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 a jeho umiestnením v niektorých Pokles dvere Proctorův. 456 00:20:34,030 --> 00:20:37,210 A potom on alebo ona by prejsť je a potom nás vlastne napíšte ručne 457 00:20:37,210 --> 00:20:39,140 ktoré sme zaznamenali nejaký šport. 458 00:20:39,140 --> 00:20:41,166 >> Tak jasne, príležitosť pre zlepšenie. 459 00:20:41,166 --> 00:20:44,040 V týchto dňoch, môžete sa obrátiť na práve Formuláre Google, ale späť v deň, 460 00:20:44,040 --> 00:20:46,914 sme mali skutočne dosiahnuť for-- to nebola ani tak dlho ago-- dosiahnuť 461 00:20:46,914 --> 00:20:49,410 pre programovanie jazyk, ktorý nebol PHP. 462 00:20:49,410 --> 00:20:51,200 V tej dobe, to bolo niečo ako Perl, 463 00:20:51,200 --> 00:20:52,890 ktorý vyšiel z módy, pretože. 464 00:20:52,890 --> 00:20:54,160 Ale princíp je rovnaký. 465 00:20:54,160 --> 00:20:58,940 >> A ja som v podstate sa posadil, aby sa pokúsila k portu ide verzie Perl PHP, 466 00:20:58,940 --> 00:21:03,710 ale v plnom upozornenie, nedal akákoľvek myšlienka estetiky ešte nie. 467 00:21:03,710 --> 00:21:04,960 Takže tu je webová stránka. 468 00:21:04,960 --> 00:21:05,670 Jedná sa o súbor. 469 00:21:05,670 --> 00:21:09,470 Keby som priblížiť, jeho zrejme volal froshim0.php 470 00:21:09,470 --> 00:21:12,060 len preto, že je to naša prvá Príklad v tejto sérii. 471 00:21:12,060 --> 00:21:15,970 A všimnite si, že má niečo, čo vyzerá byť veľmi škaredý HTML formulár, 472 00:21:15,970 --> 00:21:18,680 ale forma je zaujímavá pretože umožňuje 473 00:21:18,680 --> 00:21:21,910 mi poskytnúť vstup užívateľa do prehliadača. 474 00:21:21,910 --> 00:21:27,730 >> Teraz naposledy, keď sme mali formu, aby ktorého sme sa predložiť svoje parameter dotazu, 475 00:21:27,730 --> 00:21:30,450 front parameter ako to bolo volané? 476 00:21:30,450 --> 00:21:31,330 Takže Google, nie? 477 00:21:31,330 --> 00:21:34,090 Sme úplne punted na myšlienke robiť niečo s týmto vstupom. 478 00:21:34,090 --> 00:21:36,160 >> Ale dnes, začneme produkovať výstup. 479 00:21:36,160 --> 00:21:39,420 A správanie budem vidieť tu spočiatku je dosť triviálne. 480 00:21:39,420 --> 00:21:42,980 David, budem vyraďovať pohlavia tu, hovoria Matthewsa tu. 481 00:21:42,980 --> 00:21:43,800 Nebudem sa kapitán. 482 00:21:43,800 --> 00:21:45,410 Idem na tlačidlo Registrovať. 483 00:21:45,410 --> 00:21:50,720 A všimnite si, že URL je zmenil sa zaregistrovať, 0.php, 484 00:21:50,720 --> 00:21:52,310 a potom je tu to škaredé textu tu. 485 00:21:52,310 --> 00:21:54,460 Dal som ani pomyslenie na formátovanie tohto. 486 00:21:54,460 --> 00:21:59,900 >> Ale čo je zaujímavé, že tri hodnoty boli zrejme prešiel v roku. 487 00:21:59,900 --> 00:22:02,960 To je PHP druh ekvivalentná printf-- 488 00:22:02,960 --> 00:22:06,330 uvidíme, čo sa to vlastne s názvom v bit-- že práve vytlačí 489 00:22:06,330 --> 00:22:08,300 to, čo ste prešiel do neho. 490 00:22:08,300 --> 00:22:11,414 Takže to naznačuje, že táto forma mal prinajmenšom tri polia na to, 491 00:22:11,414 --> 00:22:12,580 a ty ma videl zadajte ich do. 492 00:22:12,580 --> 00:22:15,739 Jeden z nich bol moje meno, jeden bol pohlavia, jeden bol koľaje. 493 00:22:15,739 --> 00:22:18,780 A kapitán ani dostať zaslané server, pretože som nemal skontrolovať. 494 00:22:18,780 --> 00:22:22,150 >> Takže to znamená, že ako sa zdá, keď zadáte veci na webe, 495 00:22:22,150 --> 00:22:26,830 Nielen, že URL niekedy change-- niekedy nie. 496 00:22:26,830 --> 00:22:30,330 V skutočnosti, názov súboru zmenený, ale to, čo chýba z URL 497 00:22:30,330 --> 00:22:32,861 že sme videli minule s firmou Google. 498 00:22:32,861 --> 00:22:33,360 Jo? 499 00:22:33,360 --> 00:22:34,380 >> STUDENT: Nie query string 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. Malan: Nie je reťazec dotazu. 501 00:22:35,220 --> 00:22:37,270 Nie je otáznik niečo. 502 00:22:37,270 --> 00:22:40,050 Niet pochýb o tom mark q rovná mačky, ako sme to urobili minule. 503 00:22:40,050 --> 00:22:42,170 A nie je to rozhodne nie je Názov otáznik rovná 504 00:22:42,170 --> 00:22:46,310 David alebo koľaji rovná Matthews, Takže tam, kde sa to všetko deje? 505 00:22:46,310 --> 00:22:51,290 >> No, dovoľte mi vrátiť sa do gedit tu a otvoriť prvú z týchto súborov 506 00:22:51,290 --> 00:22:57,020 v mojom VHOST, miestne hostiteľ, verejné adresár tu a ísť do froshim0. 507 00:22:57,020 --> 00:23:02,060 Tak to dopadá, že takmer všetky tejto stránke je len HTML. 508 00:23:02,060 --> 00:23:05,410 A to môže byť neznáme pre vás, ale čoskoro bude viac s pset 6 509 00:23:05,410 --> 00:23:07,370 a pset 7 a pset 8. 510 00:23:07,370 --> 00:23:09,160 Ale to je len HTML stránky. 511 00:23:09,160 --> 00:23:12,400 >> A zaujímavé veci Zdá sa, že tu. 512 00:23:12,400 --> 00:23:16,290 Formulár značka, ktorej činnosť atribút má hodnotu 0 registra. 513 00:23:16,290 --> 00:23:18,890 To je dôvod, prečo, keď som sa predložiť to, že ide do tohto súboru. 514 00:23:18,890 --> 00:23:20,620 Ale metóda je iná today-- príspevok. 515 00:23:20,620 --> 00:23:23,120 Tak to dopadá, že je aspoň dve metódy na webe používajú 516 00:23:23,120 --> 00:23:24,911 odoslať informácie z prehliadača na server. 517 00:23:24,911 --> 00:23:25,980 Get hovorí v URL. 518 00:23:25,980 --> 00:23:27,950 Post hovorí inde. 519 00:23:27,950 --> 00:23:30,570 A kedy a prečo by mohol si skutočne chcú webové stránky 520 00:23:30,570 --> 00:23:34,110 použiť príspevok potom miesto zo si len intuitívne? 521 00:23:34,110 --> 00:23:37,080 Akejkoľvek webovej stránky. 522 00:23:37,080 --> 00:23:42,010 Aké údaje by mali byť tesne dedukcií teraz poštou na rozdiel 523 00:23:42,010 --> 00:23:45,184 dostať, keď sme videli dva rozdiely? 524 00:23:45,184 --> 00:23:46,350 STUDENT: [nepočuteľné] zaistite. 525 00:23:46,350 --> 00:23:47,790 DAVID J. Malan: Ak chcete, niečo, čo sa v bezpečí. 526 00:23:47,790 --> 00:23:50,360 Takže môžete zadať heslo na webové stránky, kreditné karty 527 00:23:50,360 --> 00:23:53,030 na webových stránkach by druh tejto suboptimálne 528 00:23:53,030 --> 00:23:56,220 v prípade, že prehliadač dal, že hodnota v URL. 529 00:23:56,220 --> 00:23:57,680 Prečo? 530 00:23:57,680 --> 00:24:00,059 Vidíte to, čo nie je Zdá sa, že tak veľký problém, 531 00:24:00,059 --> 00:24:03,350 ale šance sú si dosť často chodiť ďaleko od svojho počítača alebo použitia počítača 532 00:24:03,350 --> 00:24:05,310 laboratória, a tak niekto iného, ​​alebo dokonca spolubývajúci 533 00:24:05,310 --> 00:24:08,220 mohol ľahko ísť a vidieť že súkromné ​​informácie. 534 00:24:08,220 --> 00:24:10,220 Keď odošlete e-mail cez internet, budete pravdepodobne 535 00:24:10,220 --> 00:24:12,350 Nechceme, aby údaje, ktoré sa končí v URL tiež. 536 00:24:12,350 --> 00:24:15,266 A tak je tu mnoho dôvodov, Preto by sme mohli chcieť, aby to tu. 537 00:24:15,266 --> 00:24:18,610 A photos-- pravdu, nemôžem ani celkom Predstavte si, ako by sa na grafiku, 538 00:24:18,610 --> 00:24:21,480 ako JPEG, a dať ho do URL. 539 00:24:21,480 --> 00:24:22,330 Dalo by sa to urobiť. 540 00:24:22,330 --> 00:24:25,840 Je tu spôsoby kódovania, ale je to jednoducho nie je jednoduché takto. 541 00:24:25,840 --> 00:24:29,030 >> Zaregistrujte 0 je vlastne veľmi nezaujatý. 542 00:24:29,030 --> 00:24:31,610 Všetko, čo to hovorí, že je to doslova. 543 00:24:31,610 --> 00:24:35,910 Tlačí sa v niektorých HTML tagy nasledujúce. 544 00:24:35,910 --> 00:24:38,640 Mám tag PHP tu vnorená vnútri vopred značky. 545 00:24:38,640 --> 00:24:42,300 "Pre" jednoducho znamená, pre-formátovaný text, mono-rozložený, ako písací stroj. 546 00:24:42,300 --> 00:24:44,836 >> Printr je tlač rekurzívne funkcie. 547 00:24:44,836 --> 00:24:46,710 A potom je tu to Zaujímavá vec tu. 548 00:24:46,710 --> 00:24:48,835 A vrátime sa k tomu pretože tam je iné, 549 00:24:48,835 --> 00:24:51,140 ale znak dolára podčiarkovník Príspevok sa zdá byť 550 00:24:51,140 --> 00:24:56,110 premenné v PHP, v ktorom niečo odoslanie z prehliadača na server 551 00:24:56,110 --> 00:24:58,040 je uložená pre vás. 552 00:24:58,040 --> 00:25:00,930 A uvidíme, ako sa dostať na že informácie onedlho. 553 00:25:00,930 --> 00:25:04,000 >> Ale najprv, vráťme sa k mierne odlišný príklad. 554 00:25:04,000 --> 00:25:09,050 Chystáte sa do register-- alebo skôr froshims1.php, 555 00:25:09,050 --> 00:25:10,470 ktorý vyzerá trochu inak. 556 00:25:10,470 --> 00:25:12,670 Vzal som si trochu viac úsilie s formátovaním, 557 00:25:12,670 --> 00:25:14,370 aj keď je to stále dosť škaredý. 558 00:25:14,370 --> 00:25:16,990 Ale budem pokračovať a zadajte "Davide" teraz. 559 00:25:16,990 --> 00:25:17,850 Male. 560 00:25:17,850 --> 00:25:19,360 Budeme kontrolovať "kapitána" tentoraz. 561 00:25:19,360 --> 00:25:20,660 Urobíme Matthewsa. 562 00:25:20,660 --> 00:25:22,430 A zaregistrujte sa. 563 00:25:22,430 --> 00:25:24,110 >> A tentoraz to hovorí, hm, naozaj nie. 564 00:25:24,110 --> 00:25:26,180 Dobre, takže to, čo je zaregistrovať jeden? 565 00:25:26,180 --> 00:25:30,509 Nechaj ma ísť do otvoreného registra 1 a- hm. 566 00:25:30,509 --> 00:25:32,300 V poriadku, takže to je zaujímavé, a to 567 00:25:32,300 --> 00:25:34,880 je odrazovým mostíkom teraz k ďalšie zaujímavé programy. 568 00:25:34,880 --> 00:25:38,970 >> Všimnite si, v hornej časti tohto súboru má PHP tag rovnako ako niektoré komentáre. 569 00:25:38,970 --> 00:25:42,590 A to sú pre túto chvíľu, rozptýlenie tak nech to jednoducho zbaviť týchto pripomienok 570 00:25:42,590 --> 00:25:47,070 rovnako, ako by to v C. A tvrdím, tento kus kódu s komentármi 571 00:25:47,070 --> 00:25:49,280 že tento kód je overovania podania. 572 00:25:49,280 --> 00:25:51,690 >> No, ukázalo sa, že premenné ako znak dolára 573 00:25:51,690 --> 00:25:53,739 zdôrazniť príspevok je volal flash globals. 574 00:25:53,739 --> 00:25:55,530 Sú ako ty špeciálna globálne premenné 575 00:25:55,530 --> 00:25:58,840 že sú len omni-v súčasnej dobe k dispozícii v rámci programu. 576 00:25:58,840 --> 00:26:03,870 A môžete použiť hranatá zátvorka notáciu index do nich nie je pomocou čísel 577 00:26:03,870 --> 00:26:07,460 ako 0, 1, 2, 3, ale skutočná slová. 578 00:26:07,460 --> 00:26:12,100 >> Takže si môžete myslieť znak dolára zdôrazňujú príspevok ako akési hash tabuľky 579 00:26:12,100 --> 00:26:15,920 že by ste mohli prejsť kľúč do, na vyhľadávanie slovo, v hranatých zátvorkách, 580 00:26:15,920 --> 00:26:19,370 a to bude vám späť hodnota, ktorú používateľ skutočne poskytnutá. 581 00:26:19,370 --> 00:26:21,210 PHP má funkciu nazýva prázdna, že práve 582 00:26:21,210 --> 00:26:23,720 hovorí, že áno, alebo nie, to premenná je prázdna, alebo nie. 583 00:26:23,720 --> 00:26:27,250 Máme tieto dvojité tyče, čo jednoducho znamená, alebo, ako v C. 584 00:26:27,250 --> 00:26:31,740 >> Takže v skutočnosti, táto linka 4 je práve hovorí, v prípade, že používateľ nedal meno 585 00:26:31,740 --> 00:26:36,540 alebo nedal pohlavia alebo nie dať koľaji, choďte do toho a presmerovať ho 586 00:26:36,540 --> 00:26:38,184 alebo ju prostredníctvom tejto linky tu. 587 00:26:38,184 --> 00:26:40,600 Tak toto je trochu tajomný, ale to len znamená doslovne 588 00:26:40,600 --> 00:26:43,330 späť na toto miesto, tak to plavia užívateľa 589 00:26:43,330 --> 00:26:45,420 späť do miesta, kde on alebo ona pochádza. 590 00:26:45,420 --> 00:26:47,880 Ale je to trochu nevkusný v tom, že som tvrdo kódované to. 591 00:26:47,880 --> 00:26:52,150 >> Ale čo keď to, ak podmienka nemožno vyhodnotiť na hodnotu true? 592 00:26:52,150 --> 00:26:55,790 Čo v prípade, že používateľ sa mi dať jeho alebo jej meno a koľaj a pohlavia? 593 00:26:55,790 --> 00:26:58,540 Že ak podmienka nie je bude hodnotiť na hodnotu true, 594 00:26:58,540 --> 00:27:00,650 takže si nemyslím, narazila na výstupe v riadku 7. 595 00:27:00,650 --> 00:27:01,680 Takže čo sa stane? 596 00:27:01,680 --> 00:27:03,880 A to je to, čo je Zaujímavé informácie o PHP. 597 00:27:03,880 --> 00:27:07,470 >> Môžete spadnúť do a von schémy PHP, aby som tak povedal. 598 00:27:07,470 --> 00:27:10,985 Ak chcete nejaký kód spustiť, môžete otvoriť a zatvoriť tag PHP 599 00:27:10,985 --> 00:27:13,010 a dal kódu tam, ako by som tu urobil. 600 00:27:13,010 --> 00:27:16,810 Akonáhle zatvorte tag PHP server 601 00:27:16,810 --> 00:27:19,407 sa práve chystá vypľuť čo ste tam dal. 602 00:27:19,407 --> 00:27:21,740 A skutočne, toto bola časť originálny design PHP, 603 00:27:21,740 --> 00:27:25,280 pre lepšiu horšie, bola táto vzájomným kódu a značenie 604 00:27:25,280 --> 00:27:25,920 jazyk. 605 00:27:25,920 --> 00:27:28,670 A uvidíme, že práve táto rýchlo prejde do neporiadku. 606 00:27:28,670 --> 00:27:31,280 A tak budeme robiť lepšie ako v konečnom dôsledku, ale len 607 00:27:31,280 --> 00:27:35,620 Všimnite si, s akou ľahkosťou Som skutočne schopní vykonať nejakú logiku. 608 00:27:35,620 --> 00:27:37,440 >> Ale ešte trochu nezaujatý. 609 00:27:37,440 --> 00:27:41,210 Poďme otvoriť verziu dva frosh IM, ktoré 610 00:27:41,210 --> 00:27:44,270 zrejme podriaďuje register2.php. 611 00:27:44,270 --> 00:27:47,600 Takže tento súbor to vlastne deje vyzerať takmer rovnaké. 612 00:27:47,600 --> 00:27:50,780 Chystám sa ísť na frosh IM 2. 613 00:27:50,780 --> 00:27:53,050 Ale v frosh IM 2, uvidíme, čo sa stane. 614 00:27:53,050 --> 00:27:58,110 >> David, kliknite na príslušný prepínač, as sa to volá; Matthews, nie kapitán. 615 00:27:58,110 --> 00:27:59,230 Registrovať. 616 00:27:59,230 --> 00:28:00,130 Tie sú registrované. 617 00:28:00,130 --> 00:28:00,700 Nie tak celkom. 618 00:28:00,700 --> 00:28:02,574 Ale počkajte, len sme urobili že príklad, nie my? 619 00:28:02,574 --> 00:28:04,520 Dobre, stand by. 620 00:28:04,520 --> 00:28:06,602 Urobíme na tri. 621 00:28:06,602 --> 00:28:08,560 Je zrejmé, niečo to o sa stane s Gmail. 622 00:28:08,560 --> 00:28:09,600 Dostaneme sa tam. 623 00:28:09,600 --> 00:28:11,900 >> Takže frosh IM 3 vyzerá takto. 624 00:28:11,900 --> 00:28:13,050 Nelíšia. 625 00:28:13,050 --> 00:28:19,850 Ale keď som to Dávid, muž, Matthews, a registrovať, toto tretie a posledná verzia 626 00:28:19,850 --> 00:28:22,230 nároky, proste tí, sú registrované v skutočnosti. 627 00:28:22,230 --> 00:28:23,560 To je trochu nevýznamné. 628 00:28:23,560 --> 00:28:25,600 Ale tvrdím, s tým Tretia a posledná verzia 629 00:28:25,600 --> 00:28:30,610 Teraz som znova presne to, čo my spolubývajúci a ja postavený za frosh IM 630 00:28:30,610 --> 00:28:31,731 Program rokmi. 631 00:28:31,731 --> 00:28:32,480 A to bolo jednoduché. 632 00:28:32,480 --> 00:28:34,330 Nebolo databázy, no Excel. 633 00:28:34,330 --> 00:28:36,450 Ale oveľa dôležitejšie je, nebolo viac papiera 634 00:28:36,450 --> 00:28:42,520 pretože to, čo sme robili s týmto programom bolo v skutočnosti e-mailom Proctor, ktorý 635 00:28:42,520 --> 00:28:44,530 bol predtým príjem tieto veci prostredníctvom formulárov. 636 00:28:44,530 --> 00:28:48,890 >> A zrejme sme naprogramované na túto takým spôsobom, že keď sa niekto registruje, 637 00:28:48,890 --> 00:28:52,470 Účet e-maily John Harvarde proctor-- alebo sa v tomto prípade, 638 00:28:52,470 --> 00:28:55,960 John Harvard-- s nasledujúcimi text-- "Tento človek jednoducho registrovaný." 639 00:28:55,960 --> 00:29:00,560 Volá sa David, kapitán je prázdna; pohlavia, samčie; a koľaji, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Takže to, čo sa tam stalo? 641 00:29:01,560 --> 00:29:05,360 No, súbor v otázke tu je zrejme register3.php. 642 00:29:05,360 --> 00:29:09,080 A keď som to otvoriť, uvidíte ako moc kódu, ako je tento 643 00:29:09,080 --> 00:29:12,380 a tiež, úprimne povedané, neistota systému, ako je e-mailom. 644 00:29:12,380 --> 00:29:16,290 Práve som skutočne predstieral, že sa John Harvard nasledujúcim spôsobom. 645 00:29:16,290 --> 00:29:20,920 >> Mám php tag otvoriť top, ktorý Len hovorí, že tu je nejaký PHP kód. 646 00:29:20,920 --> 00:29:23,155 Tu dole, ukazuje sa, že sú knižnice v PHP. 647 00:29:23,155 --> 00:29:26,410 Vy jednoducho potrebujete Vrátane hlavičky súbory ako moc. 648 00:29:26,410 --> 00:29:28,900 Získate viac s kuchynský drez, aby som tak povedal. 649 00:29:28,900 --> 00:29:31,820 >> Ale tentoraz v riadku 4, mám Chcete odbornej knižnici s názvom 650 00:29:31,820 --> 00:29:36,087 PHP mailer, čo je niečo, čo vás môžete nainštalovať zadarmo v mnohých systémoch. 651 00:29:36,087 --> 00:29:37,920 Tu dole som potvrdenie podanie len 652 00:29:37,920 --> 00:29:40,540 kontrolou sa používateľ dá mi meno, pohlavie a koľaji. 653 00:29:40,540 --> 00:29:44,130 A ak áno, choďte do toho a inštanciu mailer. 654 00:29:44,130 --> 00:29:47,020 >> Môžete myslieť na to, ako je riadok kódu, ktorý práve prideľuje. 655 00:29:47,020 --> 00:29:48,950 Je to ako malloc, ale je to trochu viac sexi 656 00:29:48,950 --> 00:29:51,790 v tom, že ste spomenul nielen malloc a niektoré generické číslo. 657 00:29:51,790 --> 00:29:55,030 Hovoríte, daj mi jeden z nich, daj mi nový jeden z nich. 658 00:29:55,030 --> 00:29:57,950 >> A ak ste naprogramovaný v Java alebo C ++ a ďalších jazykov, 659 00:29:57,950 --> 00:29:59,130 ste mohli vidieť to. 660 00:29:59,130 --> 00:30:01,840 Ale krátky na to, ak je neznáme, tento riadok 661 00:30:01,840 --> 00:30:05,410 uvádza do dolára mailom špeciálna struct s názvom 662 00:30:05,410 --> 00:30:08,731 objekt, ktorý má vstavaný-in e-mail funkčnosť. 663 00:30:08,731 --> 00:30:10,355 A v skutočnosti, všimnite si, a podobné syntaxe. 664 00:30:10,355 --> 00:30:11,900 >> To nie je ukazovateľ, samo o sebe. 665 00:30:11,900 --> 00:30:13,990 PHP práve používa rovnakú syntax. 666 00:30:13,990 --> 00:30:17,660 Tento riadok vraví použitie SMTP-- Simple Mail Transfer 667 00:30:17,660 --> 00:30:20,900 Protokol, ktorý je práve protokol používaný pre odosielanie pošty. 668 00:30:20,900 --> 00:30:24,240 To je určujúce použitie Harvard je SMTP server, ktorý 669 00:30:24,240 --> 00:30:25,830 je niekde tu na akademickej pôde. 670 00:30:25,830 --> 00:30:28,480 >> To je to, čo hovorí, TCP číslo portu hovoriť, 671 00:30:28,480 --> 00:30:31,650 a ja som zistil, že zo strany googling alebo dotazom na help desk. 672 00:30:31,650 --> 00:30:34,640 A potom, pretože Harvard používa niektoré Bezpečnostný systém na poštovom server-- 673 00:30:34,640 --> 00:30:37,060 aspoň na šifrovanie komunikácia medzi vami a ním, 674 00:30:37,060 --> 00:30:41,380 aj keď niekto môže poslať to-- Idem zapnúť protokolu TLS 675 00:30:41,380 --> 00:30:42,710 pre udržanie tohto bezpečia. 676 00:30:42,710 --> 00:30:44,730 >> Ale to je miesto, kde sa veci trochu desivé. 677 00:30:44,730 --> 00:30:47,970 Môžem len svojvoľne povedať, že som jharvard, 678 00:30:47,970 --> 00:30:51,930 a môžem len svojvoľne e-mail, aby som tu. 679 00:30:51,930 --> 00:30:55,650 A potom som si zadať predmet s týmto tu. 680 00:30:55,650 --> 00:30:58,460 >> A to len vyzerá škaredo, ale je to len banda zreťazenie. 681 00:30:58,460 --> 00:31:04,480 Ukázalo sa, že PHP má super užitočný symbol, ako niektoré jazyky, operátor bodka, 682 00:31:04,480 --> 00:31:07,340 ktorá sa práve doslova zřetězuje reťazec za reťazec po reťazci, 683 00:31:07,340 --> 00:31:09,810 a vy nemusíte malloc alebo obrázku z celkovej dĺžky reťazca. 684 00:31:09,810 --> 00:31:10,820 Vy to jednoducho urobiť. 685 00:31:10,820 --> 00:31:15,220 A skutočne, pretože som zreťazenie vo všetkých týchto veciach s týmito bodmi, 686 00:31:15,220 --> 00:31:18,330 To je dôvod, prečo som email poslal pozrel, ako to urobil. 687 00:31:18,330 --> 00:31:20,610 >> A potom konečne tu, som odosielanie e-mailov. 688 00:31:20,610 --> 00:31:22,580 Takže ak je to falošný, Ja len, že umriem, 689 00:31:22,580 --> 00:31:25,680 čo je funkcia, ktorá len tlačí na obrazovke niektoré chybové správy. 690 00:31:25,680 --> 00:31:29,170 Ale to je, v skutočnosti, volanie funkcie odoslanie. 691 00:31:29,170 --> 00:31:31,780 V opačnom prípade, ak je toto všetko zlyhá, je tu presmeruje ma späť. 692 00:31:31,780 --> 00:31:34,050 >> A prečo vidím, že Som registrovaný v skutočnosti? 693 00:31:34,050 --> 00:31:36,110 No, to sa stalo tu. 694 00:31:36,110 --> 00:31:38,170 Tak som sa, aby to sa k z niekoľkých dôvodov. 695 00:31:38,170 --> 00:31:41,542 >> Jeden z nich, je to presne tak, ako, ak budete stavať niektoré webové stránky záverečného projektu 696 00:31:41,542 --> 00:31:44,000 alebo v reálnom svete, to je ako odosielať e-mailové upomienky 697 00:31:44,000 --> 00:31:45,924 pre svojich zákazníkov a vašu odberatelia. 698 00:31:45,924 --> 00:31:47,590 To je, ako sa Poslať heslo upomienky. 699 00:31:47,590 --> 00:31:50,760 To je, ako posielať ľudí správy že majú novú Facebook 700 00:31:50,760 --> 00:31:52,990 Správa čaká, alebo niečo také. 701 00:31:52,990 --> 00:31:55,010 >> Ale tiež hovorí do skutočnosť, že by to mohlo 702 00:31:55,010 --> 00:31:58,160 boli veľmi dobre od Davin alebo niekto iný. 703 00:31:58,160 --> 00:32:00,567 A ja hovorím, tento druh s úsmevom, pretože som 704 00:32:00,567 --> 00:32:03,400 úplne istý, čo sa deje prostredníctvom niekoľko z vašich mysliach v tomto bode. 705 00:32:03,400 --> 00:32:11,910 Ale to je jeden z tých, robiť ako ja hovoria, nie ako ja druh vecí, 706 00:32:11,910 --> 00:32:14,480 pretože je triviálne falšovať e-maily, ako je tento. 707 00:32:14,480 --> 00:32:16,480 Ale ako môžete vidieť alebo čítať v Crimson, 708 00:32:16,480 --> 00:32:18,271 poslednou dobou je to tiež celkom triviálne pre ľudí 709 00:32:18,271 --> 00:32:20,050 ich spätne do istej pôvodu. 710 00:32:20,050 --> 00:32:23,790 A opýtajte sa ma nejaký čas, možno na CS50 obed, ako som sa prvýkrát 711 00:32:23,790 --> 00:32:27,080 mám veľmi úzko oboznámení takmer na ed palube mnoho rokov 712 00:32:27,080 --> 00:32:30,890 dávno, keď som zistil, ako internet funguje. 713 00:32:30,890 --> 00:32:36,940 Takže v každom case-- mierne Po vydaní dosky urobil. 714 00:32:36,940 --> 00:32:42,300 >> Takže v každom prípade, že je celá partia super globals, 715 00:32:42,300 --> 00:32:45,960 ako sa im hovorí tu, z ktorých jedna sme saw-- znak dolára podčiarkovník miesto. 716 00:32:45,960 --> 00:32:49,530 K dispozícii je náprotivok s názvom GET, čo je miesto, kde veci z URL 717 00:32:49,530 --> 00:32:50,690 skončí deje. 718 00:32:50,690 --> 00:32:54,051 A je tu celá banda ďalších, too-- relácie a servera a cookie. 719 00:32:54,051 --> 00:32:55,800 Vrátime sa k cookie niekedy inokedy, 720 00:32:55,800 --> 00:33:01,340 ale relácia je celkom fajn pretože práve now-- až do now-- 721 00:33:01,340 --> 00:33:06,350 všetko, čo sme urobili s webovým prehliadačom je trochu bez štátnej príslušnosti, aby som tak povedal. 722 00:33:06,350 --> 00:33:10,060 Aj kliknite okolo, prístup súbory na serveri, niečo 723 00:33:10,060 --> 00:33:13,500 sa deje na obrazovke, ale potom sa spojenie uzavrie. 724 00:33:13,500 --> 00:33:17,450 Internet Explorer alebo Icon Firefox dotočí 725 00:33:17,450 --> 00:33:20,340 a vidíte len to, čo ktoré webová stránka obsahuje. 726 00:33:20,340 --> 00:33:23,530 >> Takže HTTP je bez štátnej príslušnosti v tom, že akonáhle je spojenie, 727 00:33:23,530 --> 00:33:25,050 dostane nejaké dáta, to je všetko. 728 00:33:25,050 --> 00:33:29,940 Žiadne ďalšie spojenie, na rozdiel od Skype, Na rozdiel od FaceTime, na rozdiel od GChat, ktorý 729 00:33:29,940 --> 00:33:32,180 udržiava konštantnú pripojenie k serveru. 730 00:33:32,180 --> 00:33:34,650 Web je v podstate odpojený, keď budeme 731 00:33:34,650 --> 00:33:36,630 vidieť, ako dlho, ako môžeme simulovať veci 732 00:33:36,630 --> 00:33:39,300 ako Facebook chat a GChat, ktoré udržujú illusion-- 733 00:33:39,300 --> 00:33:41,680 alebo vlastne robiť udržať konštantné pripojenie pomocou 734 00:33:41,680 --> 00:33:43,270 viac moderné technológie. 735 00:33:43,270 --> 00:33:49,000 >> Ale keď som sa ísť do, povedzme, counter.php, To je ďalší jednoduchý príklad, 736 00:33:49,000 --> 00:33:52,700 ako uvidíme, že v súčasnej dobe si myslia, že Navštívil som stránky nulovú dobu. 737 00:33:52,700 --> 00:33:56,790 Ale keď som jednoducho znova načítať stránku, to nejako vie, že som tu predtým. 738 00:33:56,790 --> 00:33:58,840 Keby som znova načítať, je vie, že som tu predtým. 739 00:33:58,840 --> 00:34:01,100 A znovu a znovu a znovu a znovu. 740 00:34:01,100 --> 00:34:03,610 >> Takže tam je nejaký plus-plussing deje, ale oznámenia 741 00:34:03,610 --> 00:34:07,090 maličkosť točí niekedy tak krátkodobo až hore a potom sa odpojí, 742 00:34:07,090 --> 00:34:11,179 takže to nie je, že by som sa konštantná Pripojenie k môjmu prístroju. 743 00:34:11,179 --> 00:34:16,929 No, keď idem do counter.php, Všimnite si, ako je to jednoduché. 744 00:34:16,929 --> 00:34:19,080 Prvýkrát som volať tento osobitný funkcie, ktoré sme čoskoro 745 00:34:19,080 --> 00:34:21,513 začnete samozrejmosť volal spustenie relácie. 746 00:34:21,513 --> 00:34:22,179 Spustite reláciu. 747 00:34:22,179 --> 00:34:25,095 >> A relácie ďalej len bude vedro, ako nakupovanie 748 00:34:25,095 --> 00:34:28,120 vozík, v ktorom si môžete dať hodnoty a trochu veriť ako programátor 749 00:34:28,120 --> 00:34:31,590 že budeš tu, až sa že užívateľ príde back-- druhý 750 00:34:31,590 --> 00:34:35,670 neskôr, o hodinu neskôr, a to aj o rok neskôr, tak dlho, ako on alebo ona nie je jasné, 751 00:34:35,670 --> 00:34:37,602 ich cookies, ako budeme nakoniec vidieť. 752 00:34:37,602 --> 00:34:39,310 A teraz už len mať ak podmienka tu. 753 00:34:39,310 --> 00:34:44,679 Takže ak v nasledujúcom kľúči, volal počítadlo je nastavené v 754 00:34:44,679 --> 00:34:49,210 v tomto super global-- tento hash stôl, ak will-- názvom relácie, 755 00:34:49,210 --> 00:34:53,350 potom choďte do toho a chytiť hodnota z session-- think 756 00:34:53,350 --> 00:34:55,250 to ako nakupovanie cart-- a uložte ho 757 00:34:55,250 --> 00:34:57,680 v dočasnej premennej nazvanej čítač. 758 00:34:57,680 --> 00:35:02,240 >> V opačnom prípade, ak je to hodnota čítača sa nie je nastavený na tzv nákupného košíka, 759 00:35:02,240 --> 00:35:04,430 len inicializovať na 0. 760 00:35:04,430 --> 00:35:09,830 Konečne, tu dole, ísť a dať späť do nákupných vozíkov alebo zasadania 761 00:35:09,830 --> 00:35:13,000 hodnota počítadla +1. 762 00:35:13,000 --> 00:35:16,730 Tak to dopadá, že táto špeciálny kontajner here-- 763 00:35:16,730 --> 00:35:20,355 ktorý, opäť, je jedným z nich spojený polia, polia, ktoré môžete index 764 00:35:20,355 --> 00:35:25,010 do slov miesto numbers-- pretrváva aj potom, čo užívateľ zmizne. 765 00:35:25,010 --> 00:35:26,510 Opäť platí, že pôjdem späť na stránku teraz. 766 00:35:26,510 --> 00:35:28,400 Bolo to minútu alebo tak. 767 00:35:28,400 --> 00:35:31,300 Ale to si pamätá, že som tu bolo 19 krát predtým. 768 00:35:31,300 --> 00:35:32,740 To je môj 20. návšteva. 769 00:35:32,740 --> 00:35:36,560 >> A tak to bude kľúčom k vykonávanie akejkoľvek webovej stránky, ktoré si pamätá 770 00:35:36,560 --> 00:35:40,640 že ste prihlásení, že ste dal niečo doslovný do vášho nákupného košíka 771 00:35:40,640 --> 00:35:43,902 kúpiť, alebo že máte niektoré Počet správ prebieha. 772 00:35:43,902 --> 00:35:45,610 Kedykoľvek budete chcieť zapamätať si informácie, 773 00:35:45,610 --> 00:35:48,130 uvidíme, že PHP, rovnako ako niekoľko iných jazykov, 774 00:35:48,130 --> 00:35:53,640 nám poskytuje ilúziu štátu aj keď, ako uvidíte v pset 6, 775 00:35:53,640 --> 00:35:57,642 ako ste odosielanie HTTP požiadaviek z klienta na server, to je všetko. 776 00:35:57,642 --> 00:35:59,850 Akonáhle sa dostanete späť, že odpoveď, nič viac 777 00:35:59,850 --> 00:36:01,790 vracia zo servera v predvolenom nastavení. 778 00:36:01,790 --> 00:36:03,820 Ale uvidíme, ako obísť to. 779 00:36:03,820 --> 00:36:07,430 >> No tak, poďme sa pokúsiť vyčistiť to sa trochu. 780 00:36:07,430 --> 00:36:09,470 Videli sme niekoľko rôznych príkladoch. 781 00:36:09,470 --> 00:36:12,250 Jo, a ako stranou, pre tých, ktorí poznajú alebo nepoznajú, 782 00:36:12,250 --> 00:36:14,230 z dôvodu, že Frosh IM príklad šiel 783 00:36:14,230 --> 00:36:18,060 z pohľadu naozaj škaredý dobre slightly--, 784 00:36:18,060 --> 00:36:23,160 stále ugly-- mierne menej škaredá aj keď stále škaredá 785 00:36:23,160 --> 00:36:25,230 Je to preto, ak sa pozrieme na zdrojový kód tu 786 00:36:25,230 --> 00:36:28,240 Ukazuje sa, že to mám na samom začiatku súboru. 787 00:36:28,240 --> 00:36:32,570 >> Ukazuje sa, že bootstrap je jedným z mnohých voľne dostupné knižnice vonku 788 00:36:32,570 --> 00:36:37,140 že existujú nie pre programovacie jazyky vždy, ale pre CSS alebo JavaScript 789 00:36:37,140 --> 00:36:39,190 alebo HTML alebo ľubovoľný počet jazykov. 790 00:36:39,190 --> 00:36:42,160 >> A títo ľudia here-- pôvodne vyšiel 791 00:36:42,160 --> 00:36:44,730 z Twitter-- jednoducho celá partia štýlov. 792 00:36:44,730 --> 00:36:47,360 Je to obrovský súbor tu, že niekto písal, 793 00:36:47,360 --> 00:36:51,020 alebo niekto to písal, v priebehu času, že určuje farby a formátovanie 794 00:36:51,020 --> 00:36:53,740 a ktovie čo ešte, takže môžem druh požičať ich syntax 795 00:36:53,740 --> 00:36:56,157 a nebudú sa musieť prísť na to, ako vyložiť svoj formulár. 796 00:36:56,157 --> 00:36:57,990 To je tiež minified tak, že počítač môže 797 00:36:57,990 --> 00:37:00,560 pochopiť to, ale nie nutne človek. 798 00:37:00,560 --> 00:37:03,050 Tak to je práve dôvod, prečo štylizácia tam zmenilo. 799 00:37:03,050 --> 00:37:05,450 >> Ale poďme teraz urobiť lepšie pokiaľ ide o dizajn, 800 00:37:05,450 --> 00:37:07,490 pretože ak zostaneme dole táto cesta príliš dlhá, 801 00:37:07,490 --> 00:37:11,290 náš kód to bude dostať chaotický a Messier. 802 00:37:11,290 --> 00:37:13,040 Tak sa poďme zamerať na tieto príklady tu. 803 00:37:13,040 --> 00:37:15,090 Posledná pre dnešok. 804 00:37:15,090 --> 00:37:18,720 >> Takže tu je super jednoduché verzia 1.0 internetových stránok CS50 je. 805 00:37:18,720 --> 00:37:21,250 Má iba odkazy na prednášky a učebné osnovy, 806 00:37:21,250 --> 00:37:25,490 a to pomocou tohto zoznamu tag-- značku UL, že sme použili naposledy. 807 00:37:25,490 --> 00:37:28,800 A ak je v skutočnosti, keď som otvoriť Zobraziť zdrojový kód stránky, 808 00:37:28,800 --> 00:37:31,710 uvidíte, že to je naozaj, ale naozaj jednoduchý HTML. 809 00:37:31,710 --> 00:37:35,460 A v skutočnosti, aj keď je to súbor PHP pod kapotou, 810 00:37:35,460 --> 00:37:38,620 je to stále len pľuvať vykonávať len HTML pre túto chvíľu. 811 00:37:38,620 --> 00:37:41,312 >> Takže keď som kliknite na prednáškach, vidíme to stalo. 812 00:37:41,312 --> 00:37:43,020 A keď som kliknite na týždeň nula, to vidíme. 813 00:37:43,020 --> 00:37:44,920 A keď som kliknite na Streda, vidíme to. 814 00:37:44,920 --> 00:37:47,900 A to zrejme bol PDF fotografie z onoho dňa. 815 00:37:47,900 --> 00:37:52,020 Všetko, čo som urobil, je spojenie s kotva tag na túto adresu URL tu. 816 00:37:52,020 --> 00:37:55,400 >> Takže je to len povedať, je to celkom jednoduchá verzia stránok CS50 je. 817 00:37:55,400 --> 00:37:56,790 Poďme sa pozrieť, ako to urobiť. 818 00:37:56,790 --> 00:38:01,240 Ak idem do adresára mvc0, uvidíme niekoľko súborov. 819 00:38:01,240 --> 00:38:03,250 Jedným z nich je README, takže ak Čiastočne je to príliš rýchlo, 820 00:38:03,250 --> 00:38:05,166 stačí strčiť okolo pokojnejšie neskôr. 821 00:38:05,166 --> 00:38:07,930 A upozornenia tu je súbor index.php. 822 00:38:07,930 --> 00:38:09,960 Ukazuje sa, že v prípade, Vy sám, človek, 823 00:38:09,960 --> 00:38:14,460 nezadáte konečný názov URL, webový server zvyčajne 824 00:38:14,460 --> 00:38:17,010 vyvodzuje nejaké predvolený názov pre Vás. 825 00:38:17,010 --> 00:38:20,060 Index bodka niečo je všeobecne nastavená ako predvolená. 826 00:38:20,060 --> 00:38:23,010 >> Takže to je dôvod, prečo pred chvíľou keď som navštívil túto adresu URL tu 827 00:38:23,010 --> 00:38:26,750 žiadny súbor, žiadny súbor rozšírenie, žiadne obdobie v URL. 828 00:38:26,750 --> 00:38:29,710 Je to jednoducho vedel, že nejako magicky hľadať index.php. 829 00:38:29,710 --> 00:38:30,870 Je to len konvencie. 830 00:38:30,870 --> 00:38:32,360 By sa dalo nazvať čokoľvek. 831 00:38:32,360 --> 00:38:35,110 >> Takže keď som teraz ísť do index.php, uvidíte 832 00:38:35,110 --> 00:38:37,100 že indeed-- poďme zbaviť komentárov 833 00:38:37,100 --> 00:38:39,500 tu, pretože je to naozaj nič zaujímavého na to-- 834 00:38:39,500 --> 00:38:41,579 To je len pevný kódované HTML. 835 00:38:41,579 --> 00:38:43,370 Tak to je v súlade, keď sa mojej žaloby 836 00:38:43,370 --> 00:38:45,230 že môžete miešať HTML a PHP. 837 00:38:45,230 --> 00:38:48,060 Neexistuje žiadny skutočný programovanie logiky tu. 838 00:38:48,060 --> 00:38:51,030 >> A ostatné súbory sú celkom veľa rovnako nezaujímavé. 839 00:38:51,030 --> 00:38:56,240 Je to len pevne týždeň jeden tu týždeň jeden meter a týždeň jeden watt, 840 00:38:56,240 --> 00:38:57,510 na pondelok a v stredu. 841 00:38:57,510 --> 00:39:01,890 A potom keď som otvoriť týždeň nula, Všimnite si, že je to takmer totožné. 842 00:39:01,890 --> 00:39:03,320 >> A to je niečo ako kľúčové stánok s jedlom. 843 00:39:03,320 --> 00:39:06,180 Všimnite si, ako je to nadbytočné. 844 00:39:06,180 --> 00:39:10,710 Tieto súbory ťažko zmeniť, a napriek tomu som vytiahol jednu z týchto copy / paste pracovných miest 845 00:39:10,710 --> 00:39:13,420 kde som vzal jednu file-- pravdepodobne v týždni zero-- skopírovali 846 00:39:13,420 --> 00:39:16,320 keď jeden týždeň obišiel, a vylepšil niekoľko hodnôt. 847 00:39:16,320 --> 00:39:18,590 Mali by sme byť schopní robiť lepšie ako toto. 848 00:39:18,590 --> 00:39:21,800 >> Takže sa vráťme do MVC a ísť do verzie jedna. 849 00:39:21,800 --> 00:39:24,810 A všimnite si mám niekoľko súborov, pretože to, čo 850 00:39:24,810 --> 00:39:29,870 bolo spoločné pre všetky tieto súbory moment ago-- ak sa vrátim k verzii 0, 851 00:39:29,870 --> 00:39:32,600 vráťme sa do indexu, a len postulate-- 852 00:39:32,600 --> 00:39:36,090 Raz som sa zbaviť comments-- aká časť tejto stránky 853 00:39:36,090 --> 00:39:40,072 Zrejme je v každom z mojich súborov? 854 00:39:40,072 --> 00:39:40,780 Stačí zavolať na to. 855 00:39:40,780 --> 00:39:44,620 Ktoré riadky sú duplikované pravdepodobne cez všetky tieto stránky? 856 00:39:44,620 --> 00:39:45,120 Jo? 857 00:39:45,120 --> 00:39:46,110 >> STUDENT: [nepočuteľné]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. Malan: 1 až 9. 859 00:39:47,660 --> 00:39:48,720 Jo, určite. 860 00:39:48,720 --> 00:39:52,080 1 až 9, snáď s výnimkou 8 zmení trochu z nasledujúcich dôvodov CS50 861 00:39:52,080 --> 00:39:54,650 stáva prednášky alebo týždeň nula, alebo tak niečo. 862 00:39:54,650 --> 00:39:55,970 Ale takmer totožné. 863 00:39:55,970 --> 00:39:58,657 Takže toto všetko je len druh skopírovať a vložiť. 864 00:39:58,657 --> 00:40:00,490 A je tu pár iné linky Neviem si 865 00:40:00,490 --> 00:40:05,000 z toho sú pravdepodobne rovnaké vo všetkých súborov. 866 00:40:05,000 --> 00:40:06,315 >> STUDENT: 12 a 13. 867 00:40:06,315 --> 00:40:07,190 DAVID J. Malan: Jo. 868 00:40:07,190 --> 00:40:11,220 Iste, 12, 13, 14 a pravdepodobne len preto, že sa zaujímavé veci 869 00:40:11,220 --> 00:40:15,460 sa deje na tratiach 11 a 10, takže by sa mohlo zdať. 870 00:40:15,460 --> 00:40:18,350 Takže poďme sa pozrieť na verziu 1, ktorý sa snaží zlepšiť to. 871 00:40:18,350 --> 00:40:24,020 Vo verzii 1 tohto MVC example-- stretneme vysvetliť, čo mvc prostriedky v moment-- 872 00:40:24,020 --> 00:40:27,420 keď pôjdem do indexu, je to druh teraz vyzerá trochu mätúce. 873 00:40:27,420 --> 00:40:28,880 Nie je to tak jednoduché ako predtým. 874 00:40:28,880 --> 00:40:30,906 >> Ale akonáhle začnete pozorne si ju prečítajte, je to 875 00:40:30,906 --> 00:40:32,530 veľmi jednoduché, čo to robí. 876 00:40:32,530 --> 00:40:34,397 Zrejme riadok 1 a linka 8 boli nahradené 877 00:40:34,397 --> 00:40:37,230 všetky veci, ktoré ste práve identified-- aj keď len na správnu mieru, 878 00:40:37,230 --> 00:40:41,900 Nechal som ULS tam len v prípade, že niektoré dní nemal zoznam vecí. 879 00:40:41,900 --> 00:40:47,860 A to vyžaduje, je niečo ako libry zahrnúť do C. Táto voľba skopíruje a pasty 880 00:40:47,860 --> 00:40:50,470 Obsah účinne tu do tohto súboru. 881 00:40:50,470 --> 00:40:53,650 >> Takže header.php, ako vy možno usúdiť z jeho názvu, 882 00:40:53,650 --> 00:40:55,330 bude záhlaví stránky. 883 00:40:55,330 --> 00:40:57,110 Je to tu trochu kópie. 884 00:40:57,110 --> 00:41:01,820 Má len zhora, ale už nie je obsah nižšie. 885 00:41:01,820 --> 00:41:05,070 >> A ak sa pozriem na pätu medzitým, ktorý bol iný súbor mentioned-- 886 00:41:05,070 --> 00:41:08,830 toto je ešte menej zaujímavé, ale zase je to bežné na všetko. 887 00:41:08,830 --> 00:41:10,250 Tak toto je päta. 888 00:41:10,250 --> 00:41:11,300 Toto je hlavičky. 889 00:41:11,300 --> 00:41:13,950 Jedná sa o súbor, ktorý je mení, tak prečo nie 890 00:41:13,950 --> 00:41:18,140 sa snaží vytknúť commonality s týmito dvoma linkami tu? 891 00:41:18,140 --> 00:41:20,090 >> Ale môžeme vyčistiť to sa trochu ďalej. 892 00:41:20,090 --> 00:41:23,260 Chystám sa ísť dopredu a otvoriť verzia dve, kde 893 00:41:23,260 --> 00:41:27,106 uvidíme, že je tu nový súbor, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Uvidíme, čo to je za chvíľu. 895 00:41:28,610 --> 00:41:30,930 Poďme do indexu, ako vstupný bod ako predtým. 896 00:41:30,930 --> 00:41:35,230 >> A teraz si všimnúť som vyžadujúce helpers.php, nie hlavičky alebo päty. 897 00:41:35,230 --> 00:41:41,720 Ale pomocníci je niečo ako helpers.c a helpers.h z pset 2 898 00:41:41,720 --> 00:41:46,150 alebo pset 3 dávno, keď ste vlastne sa hľadať a nájsť pre túto pset, 899 00:41:46,150 --> 00:41:50,950 a vy ste museli všetky svoje kód pre triedenie a vyhľadávanie v samostatnom súbore. 900 00:41:50,950 --> 00:41:52,510 To je to, čo sa tu deje. 901 00:41:52,510 --> 00:41:54,390 >> A teraz riadok 3 vyzerá trochu inak. 902 00:41:54,390 --> 00:41:55,920 A to je len jeden riadok. 903 00:41:55,920 --> 00:41:57,950 Aby to bolo ešte viac jasné, mohol som len 904 00:41:57,950 --> 00:42:01,820 to, že sa tento štylisticky konzistentné so všetkým sme urobili. 905 00:42:01,820 --> 00:42:04,130 Ale v skutočnosti to nie je zmene funkcie. 906 00:42:04,130 --> 00:42:05,880 Je to len jeden riadok skutočného kódu. 907 00:42:05,880 --> 00:42:09,010 >> Zdá sa, že je tu funkcia niekam volal činí záhlavie, 908 00:42:09,010 --> 00:42:11,420 a to je miesto, kde sa veci pekne silný. 909 00:42:11,420 --> 00:42:17,040 Všimnite si, že vo vnútri jeho zátvorkách Je to, čo iný kus syntaxe? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Je to asi trochu ťažké povedať, ale Všimnite si there's-- Dám nejaký biely 912 00:42:23,350 --> 00:42:24,300 priestor. 913 00:42:24,300 --> 00:42:25,530 K dispozícii je hranaté zátvorky. 914 00:42:25,530 --> 00:42:29,700 >> A hranaté zátvorky sme videli pred trochu v súvislosti s asociatívnych polí, 915 00:42:29,700 --> 00:42:31,580 ktoré sú, opäť, rovnako ako stoly mriežky. 916 00:42:31,580 --> 00:42:36,230 A ak si myslíte, že teraz na C, poradie argumentov do funkcie 917 00:42:36,230 --> 00:42:37,570 musí byť vždy rovnaká. 918 00:42:37,570 --> 00:42:41,146 Musíte si uvedomiť, čo sa objednať je-- X, Y, Z alebo Z, Y, x-- 919 00:42:41,146 --> 00:42:44,020 a vy budete musieť vždy poskytnúť im v rovnakom poradí, alebo ich vyhľadať 920 00:42:44,020 --> 00:42:45,100 Ak ste zabudli. 921 00:42:45,100 --> 00:42:51,140 >> Ale to sa zdá byť šikovný spôsob, odovzdávanie ľubovoľnú hodnotu kľúča 922 00:42:51,140 --> 00:42:55,840 páry, pričom názov je názov argumentu, v tomto prípade 923 00:42:55,840 --> 00:42:58,334 a CS50 je jeho hodnota. 924 00:42:58,334 --> 00:43:00,250 A skutočnosť, že som Tieto hranaté zátvorky 925 00:43:00,250 --> 00:43:02,560 tu znamená, že som mohol tiež prejsť do niečoho 926 00:43:02,560 --> 00:43:07,550 ako týždeň je 1 alebo 0, alebo 2 alebo 3. 927 00:43:07,550 --> 00:43:10,550 Preto sme parametrizovať Táto funkcia tak, aby 928 00:43:10,550 --> 00:43:15,180 že to môže trvať niekoľko vstupov, ale teraz je to len jeden. 929 00:43:15,180 --> 00:43:20,060 >> Ak by som teraz ísť do helpers.php, Všimnite si, čo to robí. 930 00:43:20,060 --> 00:43:22,030 To je trochu nové funkcie, 931 00:43:22,030 --> 00:43:24,190 ale teraz len sa na viere, že je to 932 00:43:24,190 --> 00:43:26,570 syntax, s ktorou definovať funkciu v PHP. 933 00:43:26,570 --> 00:43:27,840 Doslova hovoria funkcie. 934 00:43:27,840 --> 00:43:30,090 Nezadáte návrat typu, a to v súlade 935 00:43:30,090 --> 00:43:33,880 s premennou detail predtým kde nemáte naozaj silne typu. 936 00:43:33,880 --> 00:43:35,650 >> To len určuje, to, že v predvolenom nastavení táto 937 00:43:35,650 --> 00:43:37,460 vezme asociatívne poľa ako argument. 938 00:43:37,460 --> 00:43:38,210 A viete čo? 939 00:43:38,210 --> 00:43:41,450 V prípade, že používateľ neprejde jeden v predpokladajme, že predvolenú hodnotu. 940 00:43:41,450 --> 00:43:44,680 >> To je funkcia, ktorá C nemá pre nás, čo je príjemné, pretože teraz 941 00:43:44,680 --> 00:43:46,430 údaje, aj keď nedávajú to nič, 942 00:43:46,430 --> 00:43:49,300 bude polia, ale prázdna. 943 00:43:49,300 --> 00:43:51,860 A ako stranou, extrakt len robí niečo funky 944 00:43:51,860 --> 00:43:56,380 kde to má všetky kľúče z toho asociatívne pole, všetky tie veci, 945 00:43:56,380 --> 00:43:59,950 by ste mohli dať v hranatých zátvorkách, a vytvára premenné z nich 946 00:43:59,950 --> 00:44:06,270 takže môžeme mať prístup nakoniec na ne footet.php a header.php. 947 00:44:06,270 --> 00:44:08,950 To je trochu abstraktná, tak mi dovoľte upozorniť na to. 948 00:44:08,950 --> 00:44:12,990 >> V index.php, všimnite si, že som prejde v hodnote páru kľúčov vlastníctva 949 00:44:12,990 --> 00:44:14,850 s hodnotou CS50. 950 00:44:14,850 --> 00:44:18,660 Ak sa teraz pozriete na helpers.php, Všimnite si, že RenderHeader 951 00:44:18,660 --> 00:44:23,870 je extrahovania, že údaje, ktoré som prechádzajúceho , A potom vyžaduje header.php. 952 00:44:23,870 --> 00:44:27,970 To, čo som urobil, je trochu chudobný človek je Vykonávanie teraz z nasledujúcich. 953 00:44:27,970 --> 00:44:31,720 >> Ak otvorím header.php, Všimnite si, že som už ťažko 954 00:44:31,720 --> 00:44:34,890 kódované slovo CS50 v tomto hlavičkovom súbore. 955 00:44:34,890 --> 00:44:39,310 Dal som to síce ukrutne s názvom funkcie, špeciálne znaky HTML, 956 00:44:39,310 --> 00:44:40,170 tam. 957 00:44:40,170 --> 00:44:41,640 Povšimnime si ale, čo som urobil. 958 00:44:41,640 --> 00:44:44,240 Mám otvorený HTML. 959 00:44:44,240 --> 00:44:47,420 Potom mám otvorenú hlavu a otvorené titul. 960 00:44:47,420 --> 00:44:52,380 >> A potom vnútri názvu je otvorený a zavrieť značky, mám trochu PHP kódu. 961 00:44:52,380 --> 00:44:56,670 A to je pekné, ale syntaxe, čo jednoducho znamená, echo von. 962 00:44:56,670 --> 00:44:59,840 To doslova znamená tohle-- echo following-- 963 00:44:59,840 --> 00:45:01,910 ale to je zvodnejšie písať. 964 00:45:01,910 --> 00:45:05,000 Echo z titulu ktorá bola odovzdaná v. 965 00:45:05,000 --> 00:45:07,560 >> Ale čo si myslíte, že HTML špeciálna char je o, 966 00:45:07,560 --> 00:45:10,590 najmä ak máte niektoré predchádzajúce HTML skúsenosť? 967 00:45:10,590 --> 00:45:14,050 Aké znaky by mohli byť nebezpečné odovzdať na stránku 968 00:45:14,050 --> 00:45:17,980 kam dynamicky generovať webové stránky s kódom, ako je tento? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Nechaj ma ísť do tohto súboru, verzia dva, a uvidíme, či nemôžem vyvolať to. 971 00:45:24,650 --> 00:45:26,210 >> Verzia dve je to. 972 00:45:26,210 --> 00:45:28,510 A všimnite si všetko je v poriadku, funguje dobre. 973 00:45:28,510 --> 00:45:35,280 Ale predpokladám, že idem do index.php a Aj spresnil, že názov mojej stránky 974 00:45:35,280 --> 00:45:36,630 nie je CS50. 975 00:45:36,630 --> 00:45:44,930 Je otvorená držiak skript upozornenia hello world, blízko jeden citát, 976 00:45:44,930 --> 00:45:49,740 v blízkosti zátvorka, bodkočiarka, otvorený držiak, lomítko skript. 977 00:45:49,740 --> 00:45:51,897 >> Script, ako sme to nakoniec vidieť, je tag 978 00:45:51,897 --> 00:45:54,480 ktoré môžete použiť na použitie iného programovací jazyk nazvaný 979 00:45:54,480 --> 00:45:56,330 JavaScript vnútri webovej stránky. 980 00:45:56,330 --> 00:45:57,960 A teraz si všimnúť tú logiku. 981 00:45:57,960 --> 00:45:59,840 Tu je kľúčovým nazýva titulu. 982 00:45:59,840 --> 00:46:02,690 Tu je, že je to šialené dlhé hodnoty teraz. 983 00:46:02,690 --> 00:46:07,840 >> Ale keď idem do pomocníkov Page- alebo skôr, záhlavie stránky, 984 00:46:07,840 --> 00:46:11,310 Volám túto funkciu na tento titul ako prvý. 985 00:46:11,310 --> 00:46:15,250 Takže keď som teraz túto stránku znova načítať, I vidieť, ktorý vyzerá smiešne, 986 00:46:15,250 --> 00:46:16,110 ale je to bezpečné. 987 00:46:16,110 --> 00:46:17,310 Je to proste vyzerá hlúpo. 988 00:46:17,310 --> 00:46:20,320 >> Predpokladajme však, že namiesto toho, Zabudol som, že to. 989 00:46:20,320 --> 00:46:24,660 A moje slová, nenulové číslo z vás sa zabudnúť, ako to urobiť 990 00:46:24,660 --> 00:46:27,790 a budete mať nejaký pracovitý študent alebo priateľ príde 991 00:46:27,790 --> 00:46:31,540 pre vás na CS50 veľtrhu alebo anonymne v noci šťourat na vašich webových stránkach 992 00:46:31,540 --> 00:46:35,300 a v podstate injekčnej kód unbeknownst vám do vašich stránok 993 00:46:35,300 --> 00:46:35,800 nejako. 994 00:46:35,800 --> 00:46:39,000 >> Pretože keď som jednoducho pľuvať z titulu tu a titul 995 00:46:39,000 --> 00:46:44,330 there-- dobre, ak titul doslovne vyzerá takto a PHP 996 00:46:44,330 --> 00:46:47,660 ako jazyk, ktorý môže pľuvať z iných jazykov textu, 997 00:46:47,660 --> 00:46:50,650 to je doslova deje nahradiť túto značku, 998 00:46:50,650 --> 00:46:53,010 Samozrejme, to, čo som dal inde. 999 00:46:53,010 --> 00:46:57,640 >> Takže keď som teraz ísť sem a znovu po rozopol tie bezpečnostné mechanizmy, 1000 00:46:57,640 --> 00:46:59,982 teraz mám ahoj svet tu. 1001 00:46:59,982 --> 00:47:02,690 Teraz to nie je všetko tak veľký riešiť, ale môžete urobiť niečo 1002 00:47:02,690 --> 00:47:05,119 trochu nebezpečný tu, ako by to 1003 00:47:05,119 --> 00:47:08,410 ďalšie tags-- ako uvidíme, až budeme tráviť viac času JavaScript-- ako umiestnenie 1004 00:47:08,410 --> 00:47:14,910 dot href dostane, citácie, koniec citátu, HTTP business.com, ale opak toho 1005 00:47:14,910 --> 00:47:15,950 z druhého dňa. 1006 00:47:15,950 --> 00:47:20,120 A teraz môžete navodiť web strana skutočne ísť okamžite 1007 00:47:20,120 --> 00:47:21,190 na tejto webovej stránke tu. 1008 00:47:21,190 --> 00:47:23,000 >> A vlastne, ja nechcem dokonca ísť do business.com 1009 00:47:23,000 --> 00:47:24,749 pretože nechcem vedieť, čo to je. 1010 00:47:24,749 --> 00:47:28,710 Ale aj to, spustí kód byť aplikovaný na tejto stránke. 1011 00:47:28,710 --> 00:47:32,680 Takže je to len povedať, že aj keď predstavujeme výborný čoskoro na niektorých 1012 00:47:32,680 --> 00:47:36,800 týchto zložitejších štruktúr, to všetko ku koncu roka uistite sa, 1013 00:47:36,800 --> 00:47:39,320 že váš kód nie je využiteľný. 1014 00:47:39,320 --> 00:47:40,960 >> Takže teraz tretia verzia tu. 1015 00:47:40,960 --> 00:47:42,470 Začína to byť trochu obsiahlejší. 1016 00:47:42,470 --> 00:47:44,875 Ja som naozaj like-- análny strana o mne 1017 00:47:44,875 --> 00:47:47,750 bol už trochu naštvaný Skutočnosť, že som sa funkcia nazýva 1018 00:47:47,750 --> 00:47:51,940 RenderHeader a RenderFooter že sú takmer totožné. 1019 00:47:51,940 --> 00:47:55,400 Tak ma napadlo, prečo nie Aj parametrizáciu týchto funkcií 1020 00:47:55,400 --> 00:47:59,180 na len jeden volal činí, majú trvať aj druhý argument 1021 00:47:59,180 --> 00:48:04,420 ako meno šablóny, konečný na render-- buď hlavičky alebo päty? 1022 00:48:04,420 --> 00:48:07,160 A potom prípadne, ak chcem odovzdať v niektorých párov kľúčových hodnôt 1023 00:48:07,160 --> 00:48:10,580 ako ja o titul pre header ale nie pre pätu, 1024 00:48:10,580 --> 00:48:11,800 Nemohol som to urobiť. 1025 00:48:11,800 --> 00:48:16,510 >> A tak teraz, keď pôjdem do helpers.php, je to trochu zložitejšie. 1026 00:48:16,510 --> 00:48:19,670 A ja budem mávať svoje ruky na detaily, ale je to len jedna funkcia. 1027 00:48:19,670 --> 00:48:21,890 Takže je to krok smerom k lepšiemu dizajnu. 1028 00:48:21,890 --> 00:48:23,360 >> Môžeme si zobrať ešte o krok ďalej. 1029 00:48:23,360 --> 00:48:28,890 Ak idem do svojej štvrtej verzia toho všimnete teraz 1030 00:48:28,890 --> 00:48:31,320 že robím niečo ešte trochu tajomný. 1031 00:48:31,320 --> 00:48:33,230 A viem, že to je Mnoho absorbovať naraz, 1032 00:48:33,230 --> 00:48:35,080 ale my sme tak nejako čistenie veci. 1033 00:48:35,080 --> 00:48:38,550 Teraz dávam svojich pomocníkov súbor do zložky s názvom 1034 00:48:38,550 --> 00:48:41,190 includes-- len ľubovoľná meno, kde chcem, aby veci 1035 00:48:41,190 --> 00:48:44,300 že chcem include-- a potom Zvyšok je rovnaký. 1036 00:48:44,300 --> 00:48:47,140 >> Ale keď sa pozriem teraz gedit, Všimnite si, že som sa dostal zbaviť 1037 00:48:47,140 --> 00:48:51,940 zo všetkých tých ostatných súborov a som presunula napríklad na tu. 1038 00:48:51,940 --> 00:48:55,110 A potom sa v šablónach, Mám to tu taky. 1039 00:48:55,110 --> 00:48:59,292 A tak to je všetko teraz k krok použitie oveľa lepší návrhový vzor. 1040 00:48:59,292 --> 00:49:01,000 A my sme sa veľmi rýchlo chystá odísť 1041 00:49:01,000 --> 00:49:03,870 z východzieho funkcie PHP, ktoré sme tu začali s, 1042 00:49:03,870 --> 00:49:07,655 kde stačí miešať PHP, a vaše HTML, CSS a vaše, 1043 00:49:07,655 --> 00:49:09,780 a vy jednoducho vypľuť a idete o vašej ceste. 1044 00:49:09,780 --> 00:49:11,404 Nie je to bude veľmi udržiavateľný. 1045 00:49:11,404 --> 00:49:14,481 Rovnako ako v C, sme začali používať viac súborov a viac funkcií 1046 00:49:14,481 --> 00:49:15,730 a factoring veci, že z. 1047 00:49:15,730 --> 00:49:16,688 Urobíme tú to isté. 1048 00:49:16,688 --> 00:49:19,970 A v skutočnosti, v piatej a poslednej verzia tu, som urobil jednu vec. 1049 00:49:19,970 --> 00:49:23,710 Môžete dokonca použiť dot dot, ktorý znova, je len nadradený adresár. 1050 00:49:23,710 --> 00:49:28,260 Ak chcete byť ešte väčšiu bezpečnosť pri vedomí, pretože keď sa pozriem na počúvanie 1051 00:49:28,260 --> 00:49:32,450 tu piaty a posledná verzia, oznámenia že mám jeden adresár s názvom tu 1052 00:49:32,450 --> 00:49:35,180 verejnosť, a potom na rovnakej úrovni, aby som tak povedal, 1053 00:49:35,180 --> 00:49:38,490 Mám zahŕňa a šablóny a potom, že textový súbor readme. 1054 00:49:38,490 --> 00:49:41,130 >> A dôvod, prečo som sa štruktúrovanou to rád tohle-- a toľko web 1055 00:49:41,130 --> 00:49:44,330 hostitelia, najmä tých, ktoré 5dolar mesiac ty alebo tie 10 dolárov mesiac, 1056 00:49:44,330 --> 00:49:47,170 ak ste niekedy mal jeden z nich services-- čo tak mnohé z nich 1057 00:49:47,170 --> 00:49:50,690 je jednoducho očakávajú, že budete vypísať všetky vaše súbory do jedného adresára, 1058 00:49:50,690 --> 00:49:53,640 ako sme to urobili už s Tento prvý príklad. 1059 00:49:53,640 --> 00:49:56,740 >> Ale akonáhle začnete stavať viac sofistikované stránky, ktoré práve uložiť 1060 00:49:56,740 --> 00:50:00,480 Dáta vám záleží, a súbory, ktoré ste starostlivosť o, vlastne organizovať veci 1061 00:50:00,480 --> 00:50:05,060 správne a väčšiu bezpečnosť vedomie v mysli môže 1062 00:50:05,060 --> 00:50:07,927 začneme sa brániť proti všetkým priateľom 1063 00:50:07,927 --> 00:50:10,135 že máte buď alebo mimo tejto triedy, ktorý, 1064 00:50:10,135 --> 00:50:12,510 Akonáhle začnete robiť programy sami na webe, 1065 00:50:12,510 --> 00:50:15,140 sa chystáte začať výberom na vás a na nich. 1066 00:50:15,140 --> 00:50:17,420 >> A tak sa pozrieme nakoniec sa na tento návrh. 1067 00:50:17,420 --> 00:50:20,010 To je len obrázok ktorý znázorňuje nasledujúci. 1068 00:50:20,010 --> 00:50:22,897 Chystáme sa dať všetky naše programovanie logiky v jednom alebo viacerých súborov, 1069 00:50:22,897 --> 00:50:25,230 a budeme len začať volanie týchto radičov. 1070 00:50:25,230 --> 00:50:28,022 To je miesto, kde mozog Naše webové stránky v skutočnosti sú. 1071 00:50:28,022 --> 00:50:29,730 Potom ideme do majú výhľad a výhľad 1072 00:50:29,730 --> 00:50:32,480 sú tak jednoduché, ako len samostatné files-- tzv šablóny, často. 1073 00:50:32,480 --> 00:50:34,410 Oni jednoducho majú estetika mojej stránke, 1074 00:50:34,410 --> 00:50:37,020 to, čo chcem stránka vyzerať like-- farby a rozvrhnutie 1075 00:50:37,020 --> 00:50:38,870 a pozície všetky premenné. 1076 00:50:38,870 --> 00:50:41,120 >> A potom ešte zaujímavejšie že budeme nakoniec dostať 1077 00:50:41,120 --> 00:50:45,420 je model, ktorý sa bude len slovo, ktoré udrieť na iných technológiách 1078 00:50:45,420 --> 00:50:47,771 že prinášame do obrázok, rovnako ako aktuálne databáz, 1079 00:50:47,771 --> 00:50:49,520 takže keď budete chcieť uložiť informácie, 1080 00:50:49,520 --> 00:50:52,140 nemusíte len poslať e-mail do svojho prokuristu alebo sami sebe, 1081 00:50:52,140 --> 00:50:57,350 skutočne uložiť do databázy použiť iný jazyk, známy ako SQL. 1082 00:50:57,350 --> 00:51:00,450 A tak sme si dnes tu nechať a vyzdvihnúť s tým v stredu 1083 00:51:00,450 --> 00:51:02,990 a zaviesť databáz potom. 1084 00:51:02,990 --> 00:51:06,940 >> [Prehrávanie hudby] 1085 00:51:06,940 --> 00:54:24,555