1 00:00:00,000 --> 00:00:03,920 >> [Predvajanje glasbe] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. Malan: Dobro. 4 00:00:13,800 --> 00:00:15,640 To je CS50. 5 00:00:15,640 --> 00:00:17,620 To je začetek osmih tedna. 6 00:00:17,620 --> 00:00:22,440 In se morda spomniš, da smo končali Nazadnje, ko gledamo na novem jeziku 7 00:00:22,440 --> 00:00:23,240 celoti. 8 00:00:23,240 --> 00:00:25,905 Pravzaprav, tistega, ki je dokaj lahek in to ni niti 9 00:00:25,905 --> 00:00:26,940 programski jezik. 10 00:00:26,940 --> 00:00:31,100 To je jezik, markup, ki nam omogoča, dejansko strukturo in spletnih strani. 11 00:00:31,100 --> 00:00:33,350 In če vam kaj drugega v povezavi s this-- 12 00:00:33,350 --> 00:00:35,670 ali pa kmalu bo, če bo imate že ne. 13 00:00:35,670 --> 00:00:38,530 Bomo uporabili kaskadno Style Sheets ali CSS, ki 14 00:00:38,530 --> 00:00:40,971 je druga vrsta jeziku z lastnostmi in vrednotami 15 00:00:40,971 --> 00:00:43,220 da se dogaja, da nam naredi stvari všeč spremenite barvo 16 00:00:43,220 --> 00:00:46,010 in spremenite položaj in te vrste poteg. 17 00:00:46,010 --> 00:00:49,940 Ampak danes in naprej, začnemo osredotočiti na močnejših jezikov 18 00:00:49,940 --> 00:00:52,810 Dejanski programskih jezikov, kot so PHP. 19 00:00:52,810 --> 00:00:54,880 >> Torej je PHP bila približno za nekaj časa. 20 00:00:54,880 --> 00:00:56,810 In kot boste videli, da je bil namenjen predvsem 21 00:00:56,810 --> 00:01:00,280 zgodaj za dejanski uporabo v razvoj spletnih 22 00:01:00,280 --> 00:01:02,360 in dejansko ustvarjajo spletne strani. 23 00:01:02,360 --> 00:01:04,849 Torej, kaj vrste lastnosti pa jezik 24 00:01:04,849 --> 00:01:10,040 potrebujejo, da bi splet Strani dinamično z njim? 25 00:01:10,040 --> 00:01:14,760 >> Z drugimi besedami, če želite ustvariti vsebina dynamically-- kot je Facebook 26 00:01:14,760 --> 00:01:19,480 Newsfeed, ki se stalno spreminjajo, ali hitra sporočila, ki pop up od časa 27 00:01:19,480 --> 00:01:21,872 da time-- všeč, kar je Ključni del funkcionalnosti 28 00:01:21,872 --> 00:01:24,580 morate v programskem jeziku da bi vam pustil dinamično 29 00:01:24,580 --> 00:01:28,070 natisniti nove informacije na zaslonu? 30 00:01:28,070 --> 00:01:28,685 >> ŠTUDENT: 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 Poskrbeli bomo, da. 34 00:01:31,995 --> 00:01:35,310 Malo bolj natančno. 35 00:01:35,310 --> 00:01:37,639 Mislim, lahko naredimo to s C, odkrito povedano. 36 00:01:37,639 --> 00:01:38,930 Bilo bi bolečine v vratu. 37 00:01:38,930 --> 00:01:41,045 Ampak-- je to obveza? 38 00:01:41,045 --> 00:01:41,895 >> ŠTUDENT: Ja. 39 00:01:41,895 --> 00:01:42,677 Spremenljivke, morda? 40 00:01:42,677 --> 00:01:43,760 DAVID J. Malan: spremenljivke. 41 00:01:43,760 --> 00:01:44,160 OK, seveda. 42 00:01:44,160 --> 00:01:45,740 Spremenljivke nam lahko zagotovo pomagal. 43 00:01:45,740 --> 00:01:47,020 In še nekaj, enostavnejši. 44 00:01:47,020 --> 00:01:50,640 Ga zelo prvič smo uporabili v Program prvega dne 45 00:01:50,640 --> 00:01:55,686 ko smo dejansko rekel "zdravo svet". 46 00:01:55,686 --> 00:01:56,570 >> ŠTUDENT: Print. 47 00:01:56,570 --> 00:01:57,778 >> DAVID J. Malan: Print, kajne? 48 00:01:57,778 --> 00:02:01,050 Print ali printf v svet C. Torej vsem tem času, 49 00:02:01,050 --> 00:02:03,362 smo imeli na našem odstranjevanje language-- C, 50 00:02:03,362 --> 00:02:05,570 v particular-- in celo Scratch za to zadevo, ki 51 00:02:05,570 --> 00:02:07,400 lahko ustvarjajo nize besedila. 52 00:02:07,400 --> 00:02:11,090 >> No, če je HTML, kot smo videli prejšnji teden, je Samo cel kup nizov besedila 53 00:02:11,090 --> 00:02:14,692 čeprav z odprtim oklepajem in zaprta nosilci in nekakšna rima 54 00:02:14,692 --> 00:02:16,650 in razlog za to, no potem smo lahko res 55 00:02:16,650 --> 00:02:20,440 začnete ustvarjati spletne strani bodisi ročno, da jih vnesete v gedit 56 00:02:20,440 --> 00:02:23,870 ali v Microsoft Wordu, za to matter-- moramo samo urejevalnik besedil. 57 00:02:23,870 --> 00:02:26,830 >> Ali bi lahko napisali kodo, na svoj komentar 58 00:02:26,830 --> 00:02:30,435 prej, da bi nas pustil dinamično ustvari HTML, 59 00:02:30,435 --> 00:02:32,560 in to je tisto, kar bomo začeti početje z PHP 60 00:02:32,560 --> 00:02:34,900 in na koncu še z jezik imenuje JavaScript, 61 00:02:34,900 --> 00:02:37,910 se uporablja en jezik za ustvarjanje drugega. 62 00:02:37,910 --> 00:02:40,720 In res, to je tisto, kar Facebook in veliko, veliko drugih spletnih strani 63 00:02:40,720 --> 00:02:44,530 storiti, da bi dejansko dinamično prikaz novih informacij za vas. 64 00:02:44,530 --> 00:02:47,117 >> Torej začnimo z this-- a Grobni videti črto, vendar 65 00:02:47,117 --> 00:02:48,450 To je pravzaprav zelo močan. 66 00:02:48,450 --> 00:02:51,210 Doslej smo bili z uporabo C, kar je zbrati jezik. 67 00:02:51,210 --> 00:02:55,050 In samo na hitro recap-- zbrati jezik ima kakšno lastnost? 68 00:02:55,050 --> 00:02:59,050 Seveda morate zbrati je, ampak kaj to pomeni? 69 00:02:59,050 --> 00:03:00,505 Ja? 70 00:03:00,505 --> 00:03:02,940 >> ŠTUDENT: To mora biti sestavljeni v strojno kodo. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. Malan: OK. 72 00:03:03,060 --> 00:03:04,530 Zato je treba sestaviti v strojno kodo. 73 00:03:04,530 --> 00:03:07,340 Torej si vzemite izvorno kodo, ki je neke vrste angleščina-like. 74 00:03:07,340 --> 00:03:09,270 Pretvorite da nekaj nižji ravni, 75 00:03:09,270 --> 00:03:11,590 ki se v končni fazi imenujemo Objekt code-- 0 in 1 je. 76 00:03:11,590 --> 00:03:14,830 In to je tisti 0 in 1, ki je CPU, kot tistih, ki jih Intel, 77 00:03:14,830 --> 00:03:16,110 dejansko razumeli. 78 00:03:16,110 --> 00:03:19,690 >> Zdaj, PHP in Python in Ruby in JavaScript in šopki drugo 79 00:03:19,690 --> 00:03:23,190 jeziki niso pripravljeni jeziki, ampak razlaga jezikov 80 00:03:23,190 --> 00:03:26,630 kar pomeni, da jih je samo tip in potem jih ne spremeni v 0 in 1 je. 81 00:03:26,630 --> 00:03:30,790 Si namesto le zagotoviti nato kot prispevek k programu nekoga drugega, 82 00:03:30,790 --> 00:03:32,080 imenovani tolmač. 83 00:03:32,080 --> 00:03:34,460 In da je oseba, ki je Program je zasnovan 84 00:03:34,460 --> 00:03:38,280 razumeti, kaj vse in vsak simbol v Python ali PHP 85 00:03:38,280 --> 00:03:42,650 ali Ruby ali poljubno število drugi jeziki pomeni. 86 00:03:42,650 --> 00:03:44,760 >> In tako je vse, kar potrebujemo, je kaj takega. 87 00:03:44,760 --> 00:03:46,350 Torej v bistvu, bom pojdi na napravi 88 00:03:46,350 --> 00:03:48,100 tukaj, samo v nobeno stara okna, in smo 89 00:03:48,100 --> 00:03:52,580 dogaja, da gredo naprej in odprt datoteka z imenom, pravijo, zdravo. 90 00:03:52,580 --> 00:03:55,780 Sedaj že prej, morda sem se rešil to celo s pripono, 91 00:03:55,780 --> 00:03:57,910 ampak bom naredil kaj še enostavnejše tukaj. 92 00:03:57,910 --> 00:04:02,450 Jaz bom šel naprej in začeti ta datoteka s tem Grobni sintakso. 93 00:04:02,450 --> 00:04:06,310 Torej "uporabnik, bin, env, za okolje, php. " 94 00:04:06,310 --> 00:04:10,670 >> To je le ena vrstica kode, ki je bo povedal svoj operacijski sistem, 95 00:04:10,670 --> 00:04:13,730 poišči v lokalnem okolje, karkoli že to je, 96 00:04:13,730 --> 00:04:18,149 kjerkoli PHP is-- na interpreter-- in iti naprej in uporabiti ta tolmača 97 00:04:18,149 --> 00:04:20,589 razlagati naslednjo kodo. 98 00:04:20,589 --> 00:04:22,760 Zdaj, to je vrsta grda lastnost PHP. 99 00:04:22,760 --> 00:04:24,980 Toda v tem jeziku, kateremkoli Čas, da napišete PHP kodo, 100 00:04:24,980 --> 00:04:29,200 morate imeti enega od teh grdo PHP oznake razmejuje začetek 101 00:04:29,200 --> 00:04:32,220 vašega code-- 00:04:37,430 >> Vendar pod tod lahko jaz zdaj nekaj storiti preprosta, kot printf zdravo vejico 103 00:04:37,430 --> 00:04:40,922 svet poševnica nazaj n close quote, close oklepaj. 104 00:04:40,922 --> 00:04:42,630 In potem samo za dober ukrep, jaz grem 105 00:04:42,630 --> 00:04:45,380 da gredo naprej in blizu moj php tag tukaj 106 00:04:45,380 --> 00:04:47,390 da bo vse izgleda lepo lepo natisnjena. 107 00:04:47,390 --> 00:04:50,780 >> In takoj, ko sem kliknite Shrani, gedit je dejansko dovolj pameten 108 00:04:50,780 --> 00:04:54,620 pogled na to zelo prvi vrstici in zavedaš, oh, pišete PHP kodo. 109 00:04:54,620 --> 00:04:56,710 Naj mi skladenjsko highlight je z barvami 110 00:04:56,710 --> 00:04:58,690 tukaj, tako da stoji ven malo več. 111 00:04:58,690 --> 00:05:01,300 Ampak zdaj bom šel do mojega terminala okno. 112 00:05:01,300 --> 00:05:02,340 Bom povečavo. 113 00:05:02,340 --> 00:05:06,860 >> Ta program je bil imenovan "zdravo" tako bom naredil dot poševnica zdravo, 114 00:05:06,860 --> 00:05:07,990 vendar pa je zavrnil dovoljenje. 115 00:05:07,990 --> 00:05:08,490 In bash. 116 00:05:08,490 --> 00:05:10,610 Dejansko smo slišali, da stvar nekaj tednov ago 117 00:05:10,610 --> 00:05:13,140 v okviru Shellshock, eden od teh hroščev. 118 00:05:13,140 --> 00:05:16,240 >> Vendar dovoljenje zanikal smo videli prej, morda v drugačnem kontekstu. 119 00:05:16,240 --> 00:05:19,060 Ali kdo spomni, kako če odpravite nekaj 120 00:05:19,060 --> 00:05:22,100 kadar je dovoljenje zavrnjeno, kot je ta? 121 00:05:22,100 --> 00:05:23,490 Kaj je ukaz, vsaj? 122 00:05:23,490 --> 00:05:24,159 >> ŠTUDENT: Chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. Malan: Ja, chmod, za spremembo načina datoteke. 124 00:05:26,700 --> 00:05:30,171 In boste dobili vse bolj uporabljajo za naslednji teden s poznejšo problem 125 00:05:30,171 --> 00:05:30,670 nastavljen. 126 00:05:30,670 --> 00:05:33,211 Ampak za zdaj, jaz grem, da spremenite način ni mogoče brati, 127 00:05:33,211 --> 00:05:36,650 ampak prav vsakomur executeability privilegiji, zmožnost 128 00:05:36,650 --> 00:05:37,710 zagnati to datoteko. 129 00:05:37,710 --> 00:05:40,360 In bom za dodelitev da datoteko zdravo. 130 00:05:40,360 --> 00:05:45,150 >> Če bom sedaj naredil dot poševnica vpišite zdravo, vas glej, v resnici, moj program, zdravo svet. 131 00:05:45,150 --> 00:05:48,760 In kaj je naredil korak I jasno preskočite skupaj? 132 00:05:48,760 --> 00:05:49,520 Sestavljanje. 133 00:05:49,520 --> 00:05:51,680 Tako da sem tekel ta program preprosto. 134 00:05:51,680 --> 00:05:55,690 >> In se izkaže, da lahko to storite s Veliko sintakse spominja na C. 135 00:05:55,690 --> 00:06:03,400 Dovolite mi, da gre v današnjem kodo, ki sem jo dal v mojo vhost imenik 136 00:06:03,400 --> 00:06:05,250 Tukaj, na realnih razlogov bomo vrnili. 137 00:06:05,250 --> 00:06:09,350 In jaz bom šel v, recimo, pogoji 1. 138 00:06:09,350 --> 00:06:12,450 >> In boste videli tukaj, prvi in Najpomembnejše je, da cel kup pripomb. 139 00:06:12,450 --> 00:06:15,240 Toda to je dejansko ponovno oblikovanje v PHP 140 00:06:15,240 --> 00:06:18,960 programa smo v tednu en imenovane pogoji 1.c 141 00:06:18,960 --> 00:06:20,690 kadar je namen v doba tega programa 142 00:06:20,690 --> 00:06:22,950 je očitno, da zahteva navodilo za celo število 143 00:06:22,950 --> 00:06:25,270 nato pa naredite nekaj puhasto Analiza na njej, pri čemer 144 00:06:25,270 --> 00:06:29,510 praviš, če je pozitiven ali negativna ali enaka nič. 145 00:06:29,510 --> 00:06:34,220 In sem to prineslo samo gor, ker, razen morda eno malo podrobnosti, 146 00:06:34,220 --> 00:06:37,150 to je mogoče ločevati tako daleč od C. 147 00:06:37,150 --> 00:06:39,930 >> Kaj je ena značilnost tukaj, da morda skoči ven 148 00:06:39,930 --> 00:06:41,410 na vas kot malo drugačna? 149 00:06:41,410 --> 00:06:42,160 Mogoče dve stvari. 150 00:06:42,160 --> 00:06:42,660 Ja? 151 00:06:42,660 --> 00:06:44,070 >> ŠTUDENT: Dollar znamenje n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. Malan: Ja. 153 00:06:44,944 --> 00:06:46,210 Torej dolar znak n je prisotna. 154 00:06:46,210 --> 00:06:48,120 Dolar in znaki, kot so bomo videli, se bodo 155 00:06:48,120 --> 00:06:51,460 da se določi na začetku katere koli spremenljivke v PHP. 156 00:06:51,460 --> 00:06:54,250 To je tako dobro in bad-- dobro v da je nekako jasno, kaj je 157 00:06:54,250 --> 00:06:56,797 spremenljivka, slab s tem, da je še ena stvar, da tip. 158 00:06:56,797 --> 00:06:58,630 In tu je še ena stvar, ki jo imajo, ne povsem 159 00:06:58,630 --> 00:07:00,876 videli, vsaj s tem zapisom. ja? 160 00:07:00,876 --> 00:07:01,630 >> ŠTUDENT: readline. 161 00:07:01,630 --> 00:07:02,671 >> DAVID J. Malan: readline. 162 00:07:02,671 --> 00:07:06,550 Readline nismo videli, sama po sebi C, čeprav obstaja nekaj 163 00:07:06,550 --> 00:07:09,530 podobno, vendar smo se uporablja getstring, in to je nasprotna. 164 00:07:09,530 --> 00:07:12,950 Torej, če sem šel v to imenik, ki se zgodi, da bo, 165 00:07:12,950 --> 00:07:18,030 kot bom razložil, v nekaj v moji vhost Imenik in moj vir imenik, 166 00:07:18,030 --> 00:07:22,730 in sem šel naprej in to dot poševnica conditions-- whoops-- dot slash 167 00:07:22,730 --> 00:07:26,710 pogoji 1, boste videli, še enkrat, Enako issue-- permission denied. 168 00:07:26,710 --> 00:07:33,610 >> Zato mi dovolite, povečate in narediti chmod plus x o pogojih, dot pogoji poševnicama. 169 00:07:33,610 --> 00:07:35,222 Rad bi celo, prosim, 50. 170 00:07:35,222 --> 00:07:36,930 In lahko bi to igral Igra ves dan. 171 00:07:36,930 --> 00:07:39,140 To se dogaja, da se obnašajo natanko kot je to storila v enem tednu. 172 00:07:39,140 --> 00:07:42,860 >> OK, tako da ni vse tako različna, razen Ne samo, da je rahlo malo sintakse, 173 00:07:42,860 --> 00:07:45,490 ampak na vrhu, sem spet imel to vrstico, ki 174 00:07:45,490 --> 00:07:49,760 Dovolili so mi, da ustvarite nekaj, Izgleda program C imenovano zdravo, 175 00:07:49,760 --> 00:07:51,150 imenovane pogoji 1. 176 00:07:51,150 --> 00:07:54,520 Ampak to ni 0 in tisti, Jaz sem neposredno izvajajo. 177 00:07:54,520 --> 00:07:57,620 To je namesto teče ta tolmač, čigar ime 178 00:07:57,620 --> 00:07:59,440 zgodi, da bo enak jezik. 179 00:07:59,440 --> 00:08:04,970 Program se imenuje PHP, in moja koda pod črto je eden dejansko prenašajo vanj. 180 00:08:04,970 --> 00:08:07,740 >> Mi lahko naredimo še en dokaj preprost Primer spominja na nekaj, 181 00:08:07,740 --> 00:08:09,240 smo naredili tedni. 182 00:08:09,240 --> 00:08:12,020 Tudi to je vrsta samovoljno kos kode 183 00:08:12,020 --> 00:08:14,000 ki očitno ne kaj, ko je pobegnil? 184 00:08:14,000 --> 00:08:15,625 Kaj se to dogaja za tiskanje, predvidoma? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Torej, najprej na liniji 16, to je reči x je sedaj 2, verjetno. 187 00:08:28,250 --> 00:08:30,920 % D je enak kot $ i za printf. 188 00:08:30,920 --> 00:08:33,460 Torej potem je cubing, dot, dot, dot, v skladu 17. 189 00:08:33,460 --> 00:08:36,299 In potem v vrstico 18 se prikaže poklicati funkcijo kubikov. 190 00:08:36,299 --> 00:08:37,600 In kje je Cubed opredeljen? 191 00:08:37,600 --> 00:08:40,319 >> No, izgleda, da v vrstici 25, tako da ni vse tako različna. 192 00:08:40,319 --> 00:08:42,610 Imam zgoraj nekaj pripomb je, vendar za večino del, 193 00:08:42,610 --> 00:08:45,370 to je precej enostavno Prenos ali pretvorbe 194 00:08:45,370 --> 00:08:48,470 iz programa C na PHP različico. 195 00:08:48,470 --> 00:08:52,670 Vendar pa so zdaj nekaj razlike, da bi bilo mogoče skočiti ven. 196 00:08:52,670 --> 00:08:56,100 Kaj je drugače o tem, kako bi napisati to isti program v C? 197 00:08:56,100 --> 00:08:57,900 >> ŠTUDENT: [neslišno]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. Malan: Obstaja no prototip up top. 199 00:09:00,070 --> 00:09:03,210 Torej PHP-- in odkrito, Veliko sodobnih languages-- 200 00:09:03,210 --> 00:09:06,920 so veliko pametnejši in bolj koristno kot C prevajalnika, da vas 201 00:09:06,920 --> 00:09:09,740 lahko dajo funkcijo tukaj, lahko postavite funkcijo tukaj, 202 00:09:09,740 --> 00:09:12,740 in tolmač se dogaja da vam naredi uslugo branja 203 00:09:12,740 --> 00:09:16,010 celoten spis, preden se odloči, da nekatere funkcije ne obstaja. 204 00:09:16,010 --> 00:09:17,970 Tako lepo leti izboljšave kasneje. 205 00:09:17,970 --> 00:09:22,126 Vendar pa je tudi nekaj ostali drugačni ali odsoten tukaj. 206 00:09:22,126 --> 00:09:22,626 Ja? 207 00:09:22,626 --> 00:09:25,084 >> ŠTUDENT: [neslišno]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. Malan: Mi ne bi bilo treba razglasi vrste spremenljivk, 209 00:09:27,750 --> 00:09:31,780 tako da bomo videli kmalu, da obstajajo različne vrste v PHP, 210 00:09:31,780 --> 00:09:34,970 vendar vam ni treba, da jih določite, ki je tudi tako dobro in slabo. 211 00:09:34,970 --> 00:09:36,623 In tu je še ena stvar, ki manjka. 212 00:09:36,623 --> 00:09:37,430 >> ŠTUDENT: Tukaj ni knjižnice. 213 00:09:37,430 --> 00:09:38,630 >> DAVID J. Malan: Ni knjižnic. 214 00:09:38,630 --> 00:09:39,350 OK, tako da je lepo. 215 00:09:39,350 --> 00:09:40,540 Smo dobili veliko več iz škatle. 216 00:09:40,540 --> 00:09:43,373 Tako da je v resnici veliko več Stvari, kot sem mislil, je bilo drugače. 217 00:09:43,373 --> 00:09:44,350 Kako približno poteka v hrbtu? 218 00:09:44,350 --> 00:09:46,032 Kaj je to? 219 00:09:46,032 --> 00:09:46,740 Piše še enkrat? 220 00:09:46,740 --> 00:09:47,960 >> ŠTUDENT: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. Malan: Ni kazalci. 222 00:09:49,270 --> 00:09:51,280 OK, vsaj v tem primeru ni. 223 00:09:51,280 --> 00:09:52,070 To je pošteno. 224 00:09:52,070 --> 00:09:55,090 Torej ne obstajajo kazalci v PHP dejansko na splošno. 225 00:09:55,090 --> 00:09:58,730 Obstaja nekaj, kar se imenuje reference, vendar ne bomo porabili preveč časa tam. 226 00:09:58,730 --> 00:09:59,520 In kaj še? 227 00:09:59,520 --> 00:10:00,185 >> ŠTUDENT: Main. 228 00:10:00,185 --> 00:10:01,060 DAVID J. Malan: Main. 229 00:10:01,060 --> 00:10:02,768 Torej, to je Biggie Sem mislil. 230 00:10:02,768 --> 00:10:04,660 Opazili ni glavna vstopna točka. 231 00:10:04,660 --> 00:10:06,525 Vi preprosto začnite pisati kodo. 232 00:10:06,525 --> 00:10:08,400 In to je dejansko bo ugodno 233 00:10:08,400 --> 00:10:10,560 ko smo prehod trenutek, da dejansko uporabo 234 00:10:10,560 --> 00:10:13,980 ki temelji na spletu, ta isti jezik programiranje, za katerega smo 235 00:10:13,980 --> 00:10:16,580 Ne želim, da imajo samo eno vstopno točko. 236 00:10:16,580 --> 00:10:19,980 Mi bi želeli, da imajo kup URL-ji, kup različnih datotek 237 00:10:19,980 --> 00:10:22,930 vse ob vhodu v uporabniškem in proizvaja izpise. 238 00:10:22,930 --> 00:10:27,130 >> Ampak tukaj je zelo odigral Primer, ki sem obljubil zadnjič, 239 00:10:27,130 --> 00:10:30,130 namreč v tej mapi tukaj, pravopisne napake. 240 00:10:30,130 --> 00:10:33,680 Tako da v tem datotečnem Speller, ki smo jo ne boste porabili preveč časa, da je 241 00:10:33,680 --> 00:10:37,870 bistvu porting-- P-O-R-T. To je samo beseda, ker če, ​​recimo, 242 00:10:37,870 --> 00:10:40,800 pretvorite iz enega jezika v drugo ročno običajno. 243 00:10:40,800 --> 00:10:45,680 >> To je kanali PC različica Speller od PSET 5. 244 00:10:45,680 --> 00:10:48,856 In jaz sem v bistvu poskušal pretvarjati je po vrsticah tesno, kot sem lahko. 245 00:10:48,856 --> 00:10:51,730 Torej, če vam je všeč takšne stvari, je v resnici vredno na neki točki 246 00:10:51,730 --> 00:10:54,229 jih vleče tako do strani, ki jih strani in videli, kaj je enaka 247 00:10:54,229 --> 00:10:55,230 in kaj je drugače. 248 00:10:55,230 --> 00:10:57,510 Ampak oni so precej darn podobno. 249 00:10:57,510 --> 00:11:00,110 Če se spomnite, kaj Speller celo izgledala, 250 00:11:00,110 --> 00:11:02,110 čeprav nisi morali spremeniti to datoteko, 251 00:11:02,110 --> 00:11:04,860 to je precej podobno strukturno s samo nekaj 252 00:11:04,860 --> 00:11:06,200 sprememb tu in tam. 253 00:11:06,200 --> 00:11:10,140 >> Torej, to je samo reči, da je precej enostavna za pretvorbo Speller 254 00:11:10,140 --> 00:11:12,000 iz C v PHP. 255 00:11:12,000 --> 00:11:15,390 Toda v slovarju, tam je nekaj še bolj prepričljiv. 256 00:11:15,390 --> 00:11:19,270 Dovolite mi, da gredo naprej in ustvariti moje dictionary.php datoteke. 257 00:11:19,270 --> 00:11:24,010 Tako nekoliko drugačen v tem, imenovali jo bomo .php namesto .c. 258 00:11:24,010 --> 00:11:26,980 Ker je to PHP file, I do-- nekoliko annoyingly-- imajo 259 00:11:26,980 --> 00:11:30,132 zagnati datoteko z php tag všeč. 260 00:11:30,132 --> 00:11:32,340 In bom, da gredo naprej in opredeliti nekaj funkcij. 261 00:11:32,340 --> 00:11:35,770 Funkcija imenovano prijava, ki je dogaja, da v besedi kot prej. 262 00:11:35,770 --> 00:11:37,520 Vendar ta argument je dogaja, da imajo dolar 263 00:11:37,520 --> 00:11:39,840 podpisati, ker smo spet z uporabo PHP. 264 00:11:39,840 --> 00:11:42,350 Še ena funkcija od dictionary.c bila obremenitev 265 00:11:42,350 --> 00:11:47,120 in to je v imenu slovarju, tako da bom dobil to funkcijo pripravljena iti. 266 00:11:47,120 --> 00:11:50,920 >> Še eden v dictionary.c bilo kaj? 267 00:11:50,920 --> 00:11:54,580 Velikost je ena najlepših tiste, na Vsaj če si ohranil neko spremenljivko okoli. 268 00:11:54,580 --> 00:11:57,830 tako velikost je le, da se vrnete spremenljivko. 269 00:11:57,830 --> 00:11:59,090 In potem je bila praznenja. 270 00:11:59,090 --> 00:12:02,830 >> Tako je bilo v teh štirih Funkcije problem nastaviti 5 271 00:12:02,830 --> 00:12:06,770 ki jo je potrebno izvesti z nekatere strukture ali strukture podatkov. 272 00:12:06,770 --> 00:12:10,170 Torej, sem obljubil, da se v PHP, lahko razglasi 273 00:12:10,170 --> 00:12:14,490 razpršene tabele, na primer, vse bolj enostavno, da. 274 00:12:14,490 --> 00:12:17,377 V bistvu, če hočem razpršene tabele, Jaz sem samo šel tako 275 00:12:17,377 --> 00:12:18,460 in tam je moj hash tabele. 276 00:12:18,460 --> 00:12:21,555 In to je opomba, odigral, da smo končali na zadnjem času. 277 00:12:21,555 --> 00:12:23,930 In veš kaj, če sem hotel spremenljivka za velikost, no, 278 00:12:23,930 --> 00:12:25,867 ta pa še ni vse ki se razlikuje od C, 279 00:12:25,867 --> 00:12:27,450 ampak bom, da gredo naprej in narediti. 280 00:12:27,450 --> 00:12:28,630 In opazili nobenega podatkovnega tipa. 281 00:12:28,630 --> 00:12:31,180 In bom šel nazaj kasneje in dejansko dodali nekaj komentarjev tukaj. 282 00:12:31,180 --> 00:12:32,480 Kaj pa obremenitev? 283 00:12:32,480 --> 00:12:35,780 >> Če je znak za dolar slovar je ime moje datoteke 284 00:12:35,780 --> 00:12:39,600 in sem pravzaprav želite naložiti besed v tej tabeli zdaj, 285 00:12:39,600 --> 00:12:42,360 Jaz lahko dejansko narediti nekaj dokaj preprost. 286 00:12:42,360 --> 00:12:44,880 One-- in to je minorly annoying-- v PHP, 287 00:12:44,880 --> 00:12:47,710 morate navesti v notranjosti funkcije, če vas 288 00:12:47,710 --> 00:12:51,060 želijo dostop do nekaterih svetovno spremenljivka, ki je definirana zunaj. 289 00:12:51,060 --> 00:12:53,530 >> Ampak to ni posebej zanimivo zdaj. 290 00:12:53,530 --> 00:12:57,920 Kaj je bolj zanimivo je to za vsakega konstrukt, ki sem jih omenil zadnjič. 291 00:12:57,920 --> 00:13:01,880 In se izkaže, da ima PHP funkcijo imenuje datoteka, katere namen v življenju 292 00:13:01,880 --> 00:13:05,550 je, da odprete in preberete v v vseh njegovih vrstic v matriki 293 00:13:05,550 --> 00:13:06,840 in jih vrniti k. 294 00:13:06,840 --> 00:13:12,170 >> Ki je rekel, da sem lahko naredil slovar tako da je zdaj dejansko ko kličem datoteka 295 00:13:12,170 --> 00:13:15,472 To se dogaja, da me vrniti niz besed iz spisa. 296 00:13:15,472 --> 00:13:16,430 To pa še ni vse, da je dobro. 297 00:13:16,430 --> 00:13:20,130 Še vedno se dogaja, da se črta besed, nekaj linearnega. 298 00:13:20,130 --> 00:13:23,880 Vendar sem lahko šel naprej in ponoviti nad vsakim od teh besed z uporabo 299 00:13:23,880 --> 00:13:25,710 da skladnja smo videli kratko zadnjič. 300 00:13:25,710 --> 00:13:27,940 In boste videli več v prihajajoči PSET. 301 00:13:27,940 --> 00:13:32,070 >> Ampak zdaj imam zanko ponavljanjem za vsako besedo v slovarju. 302 00:13:32,070 --> 00:13:36,100 In na vsaki ponovitvi, se spomni, da sem kliče trenutno besedo "beseda." 303 00:13:36,100 --> 00:13:39,790 In vse to bo trajalo do dal besedo v slovar, je 304 00:13:39,790 --> 00:13:43,530 bo beseda guess "true". 305 00:13:43,530 --> 00:13:44,740 To je moj vložek funkcijo. 306 00:13:44,740 --> 00:13:46,661 To je moj tovor funkcija za moj slovar. 307 00:13:46,661 --> 00:13:49,410 Zdaj je malo goljufija, ker veš kaj, tam je pravzaprav 308 00:13:49,410 --> 00:13:52,920 poševnica nazaj n je ob koncu besed da bi moral verjetno znebili, 309 00:13:52,920 --> 00:13:56,380 vendar to ni problem, ker je PHP Funkcija se imenuje chop, ki dobesedno 310 00:13:56,380 --> 00:13:58,480 kotleta off en znak na samem koncu. 311 00:13:58,480 --> 00:13:59,400 Torej ni problem tam. 312 00:13:59,400 --> 00:14:02,199 Šli smo naprej in dejansko skrajša, da samo to. 313 00:14:02,199 --> 00:14:05,240 In zdaj bom moral verjetno spremljate velikosti, tako Dovolite vsaj storiti this-- 314 00:14:05,240 --> 00:14:05,835 velikost ++. 315 00:14:05,835 --> 00:14:07,339 To lahko storim kot prej. 316 00:14:07,339 --> 00:14:10,380 In potem je to, da bo verjetno dela čisto v redu, tako da se vrnemo true. 317 00:14:10,380 --> 00:14:10,930 Končano. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [Smeh] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. Malan: OK. 321 00:14:14,420 --> 00:14:16,628 Bomo še enkrat, da z naslednjo PSET, preveč. 322 00:14:16,628 --> 00:14:18,730 Torej, kaj pa velikost? 323 00:14:18,730 --> 00:14:22,080 No, upajmo, da je to eden o kot bi pričakovali zadnji čas, 324 00:14:22,080 --> 00:14:24,460 čeprav moram storiti ta neumna globalna stvar. 325 00:14:24,460 --> 00:14:26,610 To je samo artefakt od Zasnova jeziku je. 326 00:14:26,610 --> 00:14:28,450 >> Vendar pregled je malo bolj zanimivo. 327 00:14:28,450 --> 00:14:31,420 Torej, če sem opravil v dolar najprej se prijavite besedo, I 328 00:14:31,420 --> 00:14:34,060 želijo imeti dostop do da je globalna spremenljivka tabela. 329 00:14:34,060 --> 00:14:36,700 In zdaj, če želim preverite, če beseda obstaja, 330 00:14:36,700 --> 00:14:44,350 Jaz lahko samo rečem, če je res, da naslednja je določen v tabeli, 331 00:14:44,350 --> 00:14:49,957 potem pa pojdi naprej in vračanje true; drugega, vrne false. 332 00:14:49,957 --> 00:14:51,180 Končano. 333 00:14:51,180 --> 00:14:52,440 Druga polovica PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> Vse je v redu, tako da še enkrat, jaz sem rezanje nekaj kotičkov. 335 00:14:54,540 --> 00:14:56,831 V pravičnosti, da bi moral verjetno preživijo nekaj sekund 336 00:14:56,831 --> 00:14:58,300 o tem izvajanju. 337 00:14:58,300 --> 00:15:01,860 In jaz verjetno ne bi zasmehovali vse ur daš na PSET toliko. 338 00:15:01,860 --> 00:15:04,045 Torej strtolower je funkcija. 339 00:15:04,045 --> 00:15:06,670 Nekaj ​​podobnega eksistencialistka v C, vsaj za znake, 340 00:15:06,670 --> 00:15:08,560 ampak PHP je dobil celotno verzijo niza. 341 00:15:08,560 --> 00:15:11,226 >> To se dogaja na silo vse v male črke, kar nekateri od vas 342 00:15:11,226 --> 00:15:14,944 bi lahko storili kaj kanoniziran si se uvrstite v slovarju. 343 00:15:14,944 --> 00:15:16,360 In zdaj lahko to storite v C, preveč. 344 00:15:16,360 --> 00:15:17,780 To nima nič opraviti s PHP. 345 00:15:17,780 --> 00:15:20,260 >> Ampak kadarkoli imate Boolean pogoj, 346 00:15:20,260 --> 00:15:22,680 kot nekaj, kar na spletu 10 tam, ki je le 347 00:15:22,680 --> 00:15:27,145 gre za oceno, da res ali false, in vaš če še jasno 348 00:15:27,145 --> 00:15:33,620 se vrača true ali false, sem lahko samo res, da to bolj seksi 349 00:15:33,620 --> 00:15:38,360 in samo narediti nekaj takega. 350 00:15:38,360 --> 00:15:40,500 Tako da je moj nadzorne funkcije. 351 00:15:40,500 --> 00:15:42,560 Desno, če Boolean vrne true ali false, 352 00:15:42,560 --> 00:15:44,630 kaj je to pravkar vrnil takoj. 353 00:15:44,630 --> 00:15:47,340 >> In tu je še nekaj drugih poteg Jaz bi lahko tu in tam. 354 00:15:47,340 --> 00:15:51,380 Load-- praznenja, mimogrede, je to storjeno. 355 00:15:51,380 --> 00:15:52,850 Nič ni naredil. 356 00:15:52,850 --> 00:15:55,840 Ker vsi pomnilnika v PHP in mnogi drugi jeziki 357 00:15:55,840 --> 00:15:57,570 dejansko upravlja za vas. 358 00:15:57,570 --> 00:16:00,330 Torej, medtem ko je v C, kot da ste boleče naučili, 359 00:16:00,330 --> 00:16:04,700 karkoli funkcije malloc ali calloc ali realloc, se moraš sprostiti. 360 00:16:04,700 --> 00:16:08,770 Karkoli fopen, moraš fclose, tako da so sredstva končno osvobojena 361 00:16:08,770 --> 00:16:11,690 in orodja, kot Valgrind ne opazili in se ne pritožujejo, 362 00:16:11,690 --> 00:16:13,570 kar je dobra stvar za vožnjo na njih. 363 00:16:13,570 --> 00:16:16,190 >> Ampak zagotovo pa mora neka ulov, kajne? 364 00:16:16,190 --> 00:16:19,400 Sicer pa smo nekako izgubljen cel kup tednov. 365 00:16:19,400 --> 00:16:23,270 Tako da je vsaka vrsta razlogov Zato smo nekako izkoristiti to pot, 366 00:16:23,270 --> 00:16:24,440 vendar je kompromis. 367 00:16:24,440 --> 00:16:25,820 Dobro, to je bila tematska. 368 00:16:25,820 --> 00:16:29,690 >> Torej, kaj bi lahko trade-off Tukaj se gibljejo od C do PHP? 369 00:16:29,690 --> 00:16:33,250 Počutim se kot vsi zmagali doslej razen malo grdote tu ali tam. 370 00:16:33,250 --> 00:16:34,040 Ja. 371 00:16:34,040 --> 00:16:34,700 Kaj je to? 372 00:16:34,700 --> 00:16:36,064 >> ŠTUDENT: [neslišno] spomin. 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, je bila moja hitrost zelo hitro. 376 00:16:40,720 --> 00:16:42,020 Kajne? 377 00:16:42,020 --> 00:16:44,320 Ampak hitrost izvedbe programa? 378 00:16:44,320 --> 00:16:45,580 OK, tako da je poštena točka. 379 00:16:45,580 --> 00:16:50,930 >> Tako da bi se to zgodilo, jaz vnaprej cued up tako moje poskusiti rešitev, en 380 00:16:50,930 --> 00:16:53,510 Imel sem na veliko tablo je raztopina-poskus temelji, 381 00:16:53,510 --> 00:16:55,510 in moram, da v tem imeniku tukaj. 382 00:16:55,510 --> 00:16:58,510 Tako da sem v tem trenutku, lahko grem naprej in teči to na Svetega pisma kralja Jakoba, 383 00:16:58,510 --> 00:16:59,657 pritisnemo Enter. 384 00:16:59,657 --> 00:17:01,990 In to je, upajmo, pravilna izvedba na koncu, 385 00:17:01,990 --> 00:17:05,109 mi daje čas skupaj od 0,38 sekunde za ki 386 00:17:05,109 --> 00:17:07,270 eden nekoliko arbitrarna primer. 387 00:17:07,270 --> 00:17:09,270 >> In če sem sedaj šel v to druga sponka okno 388 00:17:09,270 --> 00:17:14,569 tukaj, kjer sem prvič odprl gedit, naj grem v današnjem code-- ki, še enkrat, 389 00:17:14,569 --> 00:17:19,650 je v tem imeniku in here-- Naj gredo naprej in zagon Speller. 390 00:17:19,650 --> 00:17:23,470 Torej, da bo jasno, to je PHP različico. 391 00:17:23,470 --> 00:17:25,170 Jaz sem samo kaže zgornji tem tukaj. 392 00:17:25,170 --> 00:17:32,020 >> Torej, če naredim Speller za tilde CS50 PSET 5 besedila, King James, vnesite. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 To je še vedno hitrejši od pisanja je v C, vendar skupni čas 395 00:17:43,050 --> 00:17:47,650 je obvestilo, 0,93, medtem ko je moj Izvedba temelji-C je 0,38. 396 00:17:47,650 --> 00:17:49,110 Torej, to je nepomembno razliko. 397 00:17:49,110 --> 00:17:51,100 >> In to je samo na eni datoteki. 398 00:17:51,100 --> 00:17:53,480 Če ste bili, da zaženete dva programi v primerjavi z veliko tablo 399 00:17:53,480 --> 00:17:56,510 in imajo cel kup vhodov testirali, bi to zagotovo sešteti. 400 00:17:56,510 --> 00:18:00,310 In če bomo imeli še večje podatkovne nize, Tudi to bi seštejejo vse več. 401 00:18:00,310 --> 00:18:04,820 Torej, ja, pri čemer je nekaj cena hitrosti je res tako. 402 00:18:04,820 --> 00:18:05,470 Kaj še? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Ja? 405 00:18:08,860 --> 00:18:10,340 >> ŠTUDENT: Znesek uporabo RAM. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. Malan: Znesek uporabo RAM. 407 00:18:11,756 --> 00:18:15,380 Tako da nisem dal eno sekundo mislil, ko je pisal to PHP 408 00:18:15,380 --> 00:18:17,300 Različica, koliko spomin sem uporabo. 409 00:18:17,300 --> 00:18:22,080 Jaz sem popolnoma odložitvijo da PHP sama in kdor je napisal ta program. 410 00:18:22,080 --> 00:18:24,500 In da bi bilo v redu, ampak če sem dejansko res 411 00:18:24,500 --> 00:18:28,420 mar stisnete toliko uspešnosti iz mojega programa ali iz moje spletne strani 412 00:18:28,420 --> 00:18:31,150 ali iz kakršnegakoli orodja Jaz sem gradnjo, morda 413 00:18:31,150 --> 00:18:33,310 PHP, res, ni pravi jezik. 414 00:18:33,310 --> 00:18:36,330 >> In v resnici, da je zato, za instance, veliko web servers-- 415 00:18:36,330 --> 00:18:38,980 dejanski programi, ki služijo up spletno content-- 416 00:18:38,980 --> 00:18:41,810 niso napisane v PHP ali v Python ali Ruby. 417 00:18:41,810 --> 00:18:44,630 Zapisani so, tako kot boste zdaj storili z PSEt 6, 418 00:18:44,630 --> 00:18:48,120 v C, tako da lahko stisnete vsak bit uspešnosti iz nje 419 00:18:48,120 --> 00:18:50,780 in res uresničujejo Nadzor fine-grain nad tem, kar je 420 00:18:50,780 --> 00:18:52,980 dogaja pod hood in ne vzemite 421 00:18:52,980 --> 00:18:54,890 za samoumevno nekaj višje podatkovna struktura ravni. 422 00:18:54,890 --> 00:18:58,071 >> Razmislite, po vsem, kdor v PHP izvaja 423 00:18:58,071 --> 00:19:00,070 da pojem hash table-- je dejansko več 424 00:19:00,070 --> 00:19:04,260 pravilno imenovano asociativno array-- on ali ona ne sanja, kakšne 425 00:19:04,260 --> 00:19:07,090 vhodov boste lahko dajanje v strukturi? 426 00:19:07,090 --> 00:19:08,260 Torej očitno ni, kajne? 427 00:19:08,260 --> 00:19:10,340 To je generično orodje v pripomočkih, ki je 428 00:19:10,340 --> 00:19:13,430 pod pogojem, da se vsakogar, ki želi da ga uporabljate, in tako gotovo, da 429 00:19:13,430 --> 00:19:17,680 ni mogoče optimizirati končno točno tisto, kar želite narediti. 430 00:19:17,680 --> 00:19:21,180 >> Torej trade-offs-- čas razvoja morda razlikujejo, zmogljivost se lahko razlikuje, 431 00:19:21,180 --> 00:19:23,120 kompleksnost ali pomnilnika se lahko razlikujejo. 432 00:19:23,120 --> 00:19:24,820 In kaj boste našli bolj je, da obstaja 433 00:19:24,820 --> 00:19:26,570 bo različna orodja za trgovino. 434 00:19:26,570 --> 00:19:31,160 In v resnici za super večino končni projekti ljudi v tem razredu, 435 00:19:31,160 --> 00:19:34,360 verjeli ali ne, C ne bo za pravilen jezik za uporabo. 436 00:19:34,360 --> 00:19:37,880 >> In v resnici, eden izmed takeaways na koncu za vsak razred, kot je ta 437 00:19:37,880 --> 00:19:40,510 je, da se misliš, dobro, kaj morate snemite 438 00:19:40,510 --> 00:19:42,710 police, če želite rešiti nekaj težav. 439 00:19:42,710 --> 00:19:46,720 In res, bomo prečkali ta most Še bolj kot gledamo na več jezikov 440 00:19:46,720 --> 00:19:47,920 celo dlje danes. 441 00:19:47,920 --> 00:19:50,530 >> Tako da je prehod zdaj morda bolj poznajo ozadje 442 00:19:50,530 --> 00:19:52,480 za uporabo jezika, kot so PHP. 443 00:19:52,480 --> 00:19:56,720 To je nekoliko običajno uporabljajo pri ukazni vrstici, pisanja scenarijev 444 00:19:56,720 --> 00:19:59,050 kot sem storil, vendar je veliko, veliko bolj pogosti. 445 00:19:59,050 --> 00:20:02,350 In je namenjeno za uporabo pri oblika datoteke, ki se običajno konča 446 00:20:02,350 --> 00:20:05,060 v .php-- ampak to je ne prerequisite-- 447 00:20:05,060 --> 00:20:07,990 da sami ustvarjajo spletne vsebine. 448 00:20:07,990 --> 00:20:11,310 >> Zato naj gredo naprej in odprla nekaj Primeri I pripravimo vnaprej. 449 00:20:11,310 --> 00:20:15,100 In to so dejansko nekako res zgodbe, da ena od prvih stvari 450 00:20:15,100 --> 00:20:18,200 Sem kdaj sam naredil po končanem CS50 in morda, mislim, 451 00:20:18,200 --> 00:20:21,350 CS51 leti je moj cimra sva pomoč 452 00:20:21,350 --> 00:20:24,320 teči novinec Notranji športni program, ki je v času, 453 00:20:24,320 --> 00:20:28,610 je novinec registracije za različne šport z izpolnitvijo kos papirja, 454 00:20:28,610 --> 00:20:31,800 kot je bil imenovan, hoja čez dvorišče do Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 in ga spustite v nekaterih Padec Proctor vrata. 456 00:20:34,030 --> 00:20:37,210 In potem bi on ali ona iti skozi jih nato dejansko pišite ročno 457 00:20:37,210 --> 00:20:39,140 da smo registrirani za nekaj športa. 458 00:20:39,140 --> 00:20:41,166 >> Torej je jasno, priložnost za izboljšave. 459 00:20:41,166 --> 00:20:44,040 Te dni, lahko vklopite samo Google Forms, ampak nazaj v dan, 460 00:20:44,040 --> 00:20:46,914 smo imeli, da bi dejansko dosegli ta for-- ni bila niti tako dolgo ago-- doseže 461 00:20:46,914 --> 00:20:49,410 za programiranje jezik, ki ni bil PHP. 462 00:20:49,410 --> 00:20:51,200 Takrat je bilo nekaj, kar se imenuje Perl, 463 00:20:51,200 --> 00:20:52,890 ki je šel iz Vogue leta. 464 00:20:52,890 --> 00:20:54,160 Ampak ideja je ista. 465 00:20:54,160 --> 00:20:58,940 >> In jaz sem v bistvu sedel, da bi poskušali za port gre Perl različice PHP, 466 00:20:58,940 --> 00:21:03,710 vendar v celoti odpoved, ni dal koli mislil, da estetiko samo še. 467 00:21:03,710 --> 00:21:04,960 Tako da tukaj je spletna stran. 468 00:21:04,960 --> 00:21:05,670 To je datoteka. 469 00:21:05,670 --> 00:21:09,470 Če povečam, njeno navidezno imenovano froshim0.php 470 00:21:09,470 --> 00:21:12,060 samo zato, ker je to naša prva Primer v tej seriji. 471 00:21:12,060 --> 00:21:15,970 In opazili, da je tisto, kar se zdi biti zelo grd HTML oblika, 472 00:21:15,970 --> 00:21:18,680 ampak oblika je zanimiva saj omogoča 473 00:21:18,680 --> 00:21:21,910 me zagotoviti uporabnik vložek v brskalniku. 474 00:21:21,910 --> 00:21:27,730 >> Sedaj zadnji čas, ko smo imeli tako obliko, da koga smo submit našo parameter poizvedbe, 475 00:21:27,730 --> 00:21:30,450 Čakalna vrsta parameter, kot je bil imenovan? 476 00:21:30,450 --> 00:21:31,330 Torej na Google, kajne? 477 00:21:31,330 --> 00:21:34,090 Smo popolnoma punted na ideji počne ničesar s tem vhodu. 478 00:21:34,090 --> 00:21:36,160 >> Toda danes smo začeli proizvajati izhod. 479 00:21:36,160 --> 00:21:39,420 In vedenje, da bom videti tu najprej je precej nepomembno. 480 00:21:39,420 --> 00:21:42,980 David, bom preverite off spol tukaj, pravijo Matthews tukaj. 481 00:21:42,980 --> 00:21:43,800 Ne bom kapetan. 482 00:21:43,800 --> 00:21:45,410 Bom kliknite register. 483 00:21:45,410 --> 00:21:50,720 In opazil, da ima URL spremeniti, da se registrirajo, 0.php, 484 00:21:50,720 --> 00:21:52,310 in potem je to grdo besedilo tukaj. 485 00:21:52,310 --> 00:21:54,460 Sem dal nobene misli, da oblikovanje tega. 486 00:21:54,460 --> 00:21:59,900 >> Zanimivo pa je, da so trije Vrednosti so bile očitno sprejet. 487 00:21:59,900 --> 00:22:02,960 To je PHP vrsta enakovredna printf-- 488 00:22:02,960 --> 00:22:06,330 bomo videli, kaj se je v resnici imenuje v bit-- ki preprosto natisne 489 00:22:06,330 --> 00:22:08,300 kaj ste opravili vanjo. 490 00:22:08,300 --> 00:22:11,414 Torej to pomeni, da ta obrazec imelo vsaj tri področja, ki mu, 491 00:22:11,414 --> 00:22:12,580 in boste videli me jih vnesete. 492 00:22:12,580 --> 00:22:15,739 Ena je moje ime, ena pa je bila spola, eden je bil samski. 493 00:22:15,739 --> 00:22:18,780 In tokrat kapetan niti se pošlje server, ker ga nisem preveriti. 494 00:22:18,780 --> 00:22:22,150 >> To torej pomeni očitno, ko predloži stvari na spletu, 495 00:22:22,150 --> 00:22:26,830 Ne samo, da URL včasih change-- včasih pa ne. 496 00:22:26,830 --> 00:22:30,330 V resnici ime datoteke spremenil, ampak kaj je odsoten od naslova 497 00:22:30,330 --> 00:22:32,861 da sva videli zadnjič z Googlom. 498 00:22:32,861 --> 00:22:33,360 Ja? 499 00:22:33,360 --> 00:22:34,380 >> ŠTUDENT: Ne poizvedba 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. Malan: Ni poizvedba. 501 00:22:35,220 --> 00:22:37,270 Ni nekaj, kar vprašaj. 502 00:22:37,270 --> 00:22:40,050 Ni vprašanje, oznaka q enaka mačke, kot smo to storili zadnjič. 503 00:22:40,050 --> 00:22:42,170 In tam je gotovo ni Ime vprašaj enaka 504 00:22:42,170 --> 00:22:46,310 David ali domu enaka Matthews, tako da če je to vse se dogaja? 505 00:22:46,310 --> 00:22:51,290 >> No, naj gredo nazaj v gedit tukaj in odprli prvo od teh datotek 506 00:22:51,290 --> 00:22:57,020 v mojem vhost, lokalni gostitelj, javno Imenik sem in šel v froshim0. 507 00:22:57,020 --> 00:23:02,060 Tako se izkaže, da je skoraj Vse te strani je samo HTML. 508 00:23:02,060 --> 00:23:05,410 In to morda ne poznate, vendar pa bo kmalu bolj z PSET 6 509 00:23:05,410 --> 00:23:07,370 in PSET 7 in 8 PSET. 510 00:23:07,370 --> 00:23:09,160 Toda to je samo stran HTML. 511 00:23:09,160 --> 00:23:12,400 >> In zanimive stvari Zdi se, da tukaj. 512 00:23:12,400 --> 00:23:16,290 Form tag katere delovanje atribut ima vrednost registra 0. 513 00:23:16,290 --> 00:23:18,890 Zato, ko oddam to, da gre v tej datoteki. 514 00:23:18,890 --> 00:23:20,620 Ampak metoda je drugačna today-- mesto. 515 00:23:20,620 --> 00:23:23,120 Tako se izkaže, da je vsaj dve metodi na spletu, ki se uporabljajo 516 00:23:23,120 --> 00:23:24,911 Za pošiljanje podatkov od brskalnika do strežnika. 517 00:23:24,911 --> 00:23:25,980 Dobite ga postavlja v URL. 518 00:23:25,980 --> 00:23:27,950 Post pravi drugje. 519 00:23:27,950 --> 00:23:30,570 Kdaj in zakaj boste morda dejansko želijo spletno stran 520 00:23:30,570 --> 00:23:34,110 uporabiti delovno mesto, potem namesto o dobijo, samo intuitivno? 521 00:23:34,110 --> 00:23:37,080 Katero koli spletno stran. 522 00:23:37,080 --> 00:23:42,010 Kakšne vrste podatkov je treba za mišjo dlako s sklepanjem via pošti v nasprotju 523 00:23:42,010 --> 00:23:45,184 da bi dobili, če smo videli dve razlike? 524 00:23:45,184 --> 00:23:46,350 ŠTUDENT: [neslišno] pritrdite. 525 00:23:46,350 --> 00:23:47,790 DAVID J. Malan: Če želite nekaj, kar bi bilo varno. 526 00:23:47,790 --> 00:23:50,360 Tako lahko vnesete geslo na spletni strani, s kreditno kartico 527 00:23:50,360 --> 00:23:53,030 na spletni strani bi vrsta teh optimalna 528 00:23:53,030 --> 00:23:56,220 če brskalnik dal, da vrednost znotraj URL. 529 00:23:56,220 --> 00:23:57,680 Zakaj? 530 00:23:57,680 --> 00:24:00,059 Vidiš to, kar ne Zdi se, da tako velik posel, 531 00:24:00,059 --> 00:24:03,350 vendar so možnosti, ki jih precej pogosto hodi proč od računalnika ali uporabe računalnika 532 00:24:03,350 --> 00:24:05,310 laboratoriji, in tako je nekdo drugega ali celo sostanovalec 533 00:24:05,310 --> 00:24:08,220 lahko enostavno hoditi gor in glej da zasebne informacije. 534 00:24:08,220 --> 00:24:10,220 Ko pošljete e-pošto prek spleta, boste verjetno 535 00:24:10,220 --> 00:24:12,350 Ne želim, da so podatki konec v URL-ju, kot tudi. 536 00:24:12,350 --> 00:24:15,266 In tako obstaja poljubno število razlogov zakaj bi radi, da ga tukaj. 537 00:24:15,266 --> 00:24:18,610 In photos-- prav, ne morem še precej predstavljate, kako bi si vzeti grafiko, 538 00:24:18,610 --> 00:24:21,480 kot JPEG, in ga dal v URL. 539 00:24:21,480 --> 00:24:22,330 Lahko bi to naredil. 540 00:24:22,330 --> 00:24:25,840 Tam je načinov, ki ga kodira, vendar je samo ni enostavno, kot da. 541 00:24:25,840 --> 00:24:29,030 >> Torej registrirati 0 je pravzaprav Zelo underwhelming. 542 00:24:29,030 --> 00:24:31,610 Vse piše dobesedno to. 543 00:24:31,610 --> 00:24:35,910 To natisne znotraj nekaterih HTML oznake naslednje. 544 00:24:35,910 --> 00:24:38,640 Imam PHP tag tukaj ugnezdeni znotraj vnaprej tag. 545 00:24:38,640 --> 00:24:42,300 "Pre" pomeni le pre-oblikovano besedilo, mono razporejene, kot pisalni stroj. 546 00:24:42,300 --> 00:24:44,836 >> Printr je print rekurzivna funkcija. 547 00:24:44,836 --> 00:24:46,710 In potem je to zanimiva stvar tukaj. 548 00:24:46,710 --> 00:24:48,835 In se bomo vrnili k temu zato, ker je druge, 549 00:24:48,835 --> 00:24:51,140 ampak znak za dolar podčrtaj objava zdi 550 00:24:51,140 --> 00:24:56,110 spremenljivka v PHP, v katerem vse pošljete od brskalnika do strežnika 551 00:24:56,110 --> 00:24:58,040 gets shranjeni za vas. 552 00:24:58,040 --> 00:25:00,930 In bomo videli, kako priti na da informacije, preden dolgo. 553 00:25:00,930 --> 00:25:04,000 >> Najprej pa pojdimo nazaj nekoliko drugačen primer. 554 00:25:04,000 --> 00:25:09,050 Gredo v register-- ali namesto, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 ki izgleda nekoliko drugače. 556 00:25:10,470 --> 00:25:12,670 Vzel sem malo bolj prizadevanje z oblikovanjem, 557 00:25:12,670 --> 00:25:14,370 čeprav je še vedno precej grdo. 558 00:25:14,370 --> 00:25:16,990 Ampak bom, da gredo naprej in tip v "David" zdaj. 559 00:25:16,990 --> 00:25:17,850 Male. 560 00:25:17,850 --> 00:25:19,360 Preverili bomo "kapetan" tokrat. 561 00:25:19,360 --> 00:25:20,660 Bomo naredili Matthews. 562 00:25:20,660 --> 00:25:22,430 In register. 563 00:25:22,430 --> 00:25:24,110 >> In ta čas je pravi, hm, ni res. 564 00:25:24,110 --> 00:25:26,180 Vse je v redu, kaj je registrirati 1? 565 00:25:26,180 --> 00:25:30,509 Naj grem v odprt register 1 in-- hm. 566 00:25:30,509 --> 00:25:32,300 Vse je v redu, tako da je to Zanimivo, in to 567 00:25:32,300 --> 00:25:34,880 je odskočna deska zdaj proti več zanimivih programov. 568 00:25:34,880 --> 00:25:38,970 >> Opazili vrhu ima ta datoteka PHP tag, kot tudi nekaj pripomb. 569 00:25:38,970 --> 00:25:42,590 In to so, za zdaj, moteča tako da je le znebiti teh pripomb 570 00:25:42,590 --> 00:25:47,070 tako kot oni v C. In Trdim s tem kos kode s komentarjem 571 00:25:47,070 --> 00:25:49,280 da je ta koda potrjevanje predložitev. 572 00:25:49,280 --> 00:25:51,690 >> No, izkaže se, da spremenljivke, kot je znak za dolar 573 00:25:51,690 --> 00:25:53,739 podčrtaj objavo so imenovani super globals. 574 00:25:53,739 --> 00:25:55,530 Oni so kot ti posebne globalne spremenljivke 575 00:25:55,530 --> 00:25:58,840 da so le omni-trenutno na voljo v vašem programu. 576 00:25:58,840 --> 00:26:03,870 In jih lahko uporabite kvadratni nosilec zapisa indeks v njih ne bi uporabljali številke 577 00:26:03,870 --> 00:26:07,460 kot 0, 1, 2, 3, vendar dejanska besede. 578 00:26:07,460 --> 00:26:12,100 >> Torej si lahko zamislite znak za dolar podčrtaj delovno mesto kot nekakšen hash tabele 579 00:26:12,100 --> 00:26:15,920 da bi lahko mimo ključ v, a lookup beseda vmes oglatih oklepajev, 580 00:26:15,920 --> 00:26:19,370 in to se dogaja, da vam nazaj vrednost, ki jo je uporabnik dejansko opravljena. 581 00:26:19,370 --> 00:26:21,210 PHP ima funkcijo imenovana prazna, da le 582 00:26:21,210 --> 00:26:23,720 pravi, da ali ne, to spremenljivka je prazna ali ne. 583 00:26:23,720 --> 00:26:27,250 Imamo te dvojne palice, kar pomeni samo, ali, kot v C. 584 00:26:27,250 --> 00:26:31,740 >> Torej v bistvu, ta linija 4 je le rekel, če uporabnik ni dal ime 585 00:26:31,740 --> 00:26:36,540 ali ni dala spol ali ni dajejo domu, iti naprej in ga preusmeriti 586 00:26:36,540 --> 00:26:38,184 ali ji po tej liniji tukaj. 587 00:26:38,184 --> 00:26:40,600 Torej, to je malo nejasen, ampak to samo pomeni, dobesedno 588 00:26:40,600 --> 00:26:43,330 iti nazaj na to mesto, zato punts uporabnika 589 00:26:43,330 --> 00:26:45,420 nazaj tja, kjer je on ali ona prihaja. 590 00:26:45,420 --> 00:26:47,880 Ampak to je malo Neelegantan s tem, da sem težko je kodiran. 591 00:26:47,880 --> 00:26:52,150 >> Kaj pa, če je to pogoj, če ne ocenjuje, da res? 592 00:26:52,150 --> 00:26:55,790 Kaj pa, če uporabnik ni mi njegov ali njeno ime in domu in spol? 593 00:26:55,790 --> 00:26:58,540 Da če pogoj ni gre za oceno, da res, 594 00:26:58,540 --> 00:27:00,650 tako da ne hit izstopa v skladu 7. 595 00:27:00,650 --> 00:27:01,680 Torej, kaj se zgodi? 596 00:27:01,680 --> 00:27:03,880 In to je tisto, kar je Zanimivo PHP. 597 00:27:03,880 --> 00:27:07,470 >> Lahko padec v in iz načinu PHP, tako rekoč. 598 00:27:07,470 --> 00:27:10,985 Če želite del kode za izvedbo, lahko odprete in zaprete PHP tag 599 00:27:10,985 --> 00:27:13,010 in dal kodo tam, kot sem tukaj naredil. 600 00:27:13,010 --> 00:27:16,810 Takoj, ko boste zaprli PHP tag, strežnik 601 00:27:16,810 --> 00:27:19,407 je le, da bo izpljuni karkoli si dal tam. 602 00:27:19,407 --> 00:27:21,740 In res je bil ta del Prvoten PHP, 603 00:27:21,740 --> 00:27:25,280 Za boljše slabše, je bilo to mešanje kode in markup 604 00:27:25,280 --> 00:27:25,920 jezik. 605 00:27:25,920 --> 00:27:28,670 In bomo videli, da je to zelo hitro, je naloga v nered. 606 00:27:28,670 --> 00:27:31,280 In tako bomo storili bolje kot to na koncu, ampak samo 607 00:27:31,280 --> 00:27:35,620 Opazili enostavnost, s katero sem jaz dejansko sposoben izvršiti neko logiko. 608 00:27:35,620 --> 00:27:37,440 >> Ampak še vedno malce underwhelming. 609 00:27:37,440 --> 00:27:41,210 Odprimo up različico dva Frosh UI, ki 610 00:27:41,210 --> 00:27:44,270 očitno meni, da register2.php. 611 00:27:44,270 --> 00:27:47,600 Tako da je ta datoteka se dejansko dogaja videti skoraj enaki. 612 00:27:47,600 --> 00:27:50,780 Jaz bom šel na Frosh UI 2. 613 00:27:50,780 --> 00:27:53,050 Toda v Frosh UI 2, Poglejmo, kaj se zgodi. 614 00:27:53,050 --> 00:27:58,110 >> David, kliknite na gumb, kot je to se imenuje; Matthews, no kapitan. 615 00:27:58,110 --> 00:27:59,230 Registrirati. 616 00:27:59,230 --> 00:28:00,130 Prijavljeni ste. 617 00:28:00,130 --> 00:28:00,700 Ni res. 618 00:28:00,700 --> 00:28:02,574 Oh, počakajte, smo pravkar storil ta primer, ni mi? 619 00:28:02,574 --> 00:28:04,520 Vse je v redu, stati ob strani. 620 00:28:04,520 --> 00:28:06,602 Bomo narediti tri. 621 00:28:06,602 --> 00:28:08,560 Jasno je nekaj, kar je približno da se zgodi z Gmailom. 622 00:28:08,560 --> 00:28:09,600 Bomo dobili tam. 623 00:28:09,600 --> 00:28:11,900 >> Torej Frosh UI 3 izgleda takole. 624 00:28:11,900 --> 00:28:13,050 Nič drugače. 625 00:28:13,050 --> 00:28:19,850 Ampak, ko sem naredil David, moški, Matthews, in register, ta tretja in zadnja različica 626 00:28:19,850 --> 00:28:22,230 terjatve, preprosto vam, so registrirani v resnici. 627 00:28:22,230 --> 00:28:23,560 To je nekako nepomembno. 628 00:28:23,560 --> 00:28:25,600 Vendar trdim, s tem Tretja in zadnja različica 629 00:28:25,600 --> 00:28:30,610 Zdaj sem poustvarili točno tisto, my cimra in sem zgradil za Frosh UI 630 00:28:30,610 --> 00:28:31,731 Program pred leti. 631 00:28:31,731 --> 00:28:32,480 In to je bil preprost. 632 00:28:32,480 --> 00:28:34,330 Ni bilo baze podatkov, no Excel. 633 00:28:34,330 --> 00:28:36,450 Toda še bolj pomembno, ni bilo več papirja 634 00:28:36,450 --> 00:28:42,520 ker, kaj smo naredili s tem programom je bil dejansko email Proctor, ki 635 00:28:42,520 --> 00:28:44,530 je bil prej prejemali te stvari z obrazci. 636 00:28:44,530 --> 00:28:48,890 >> In očitno to smo programirani tak način, da ko nekdo registrira, 637 00:28:48,890 --> 00:28:52,470 Račun emails John Harvard proctor-- ali sam v tem primeru, 638 00:28:52,470 --> 00:28:55,960 John Harvard-- z naslednjim text-- "Ta oseba samo registrirani." 639 00:28:55,960 --> 00:29:00,560 Ime je David, kapetan je prazno; spol, moški; in domu, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Torej, kaj se je zgodilo tam? 641 00:29:01,560 --> 00:29:05,360 No, spis zadevnega tukaj očitno register3.php. 642 00:29:05,360 --> 00:29:09,080 In če odprem to, boste videli, tako moč kode, kot je ta 643 00:29:09,080 --> 00:29:12,380 in tudi, odkrito povedano, negotovost sistema, kot so e-pošte. 644 00:29:12,380 --> 00:29:16,290 Pravkar sem dejansko delal, da je John Harvard takole. 645 00:29:16,290 --> 00:29:20,920 >> Imam odprto php oznako up top, ki Samo pravi, tukaj prihaja nekaj PHP kodo. 646 00:29:20,920 --> 00:29:23,155 Tukaj, se izkaže, da so knjižnice v PHP. 647 00:29:23,155 --> 00:29:26,410 Ki ste jo pravkar ne potrebujejo vključuje datoteke glav toliko. 648 00:29:26,410 --> 00:29:28,900 Dobiš več z pomivalno korito, tako rekoč. 649 00:29:28,900 --> 00:29:31,820 >> Vendar tokrat v vrstici 4, jaz želijo specialne knjižnice, imenovane 650 00:29:31,820 --> 00:29:36,087 PHP mailer, kar je nekaj, kar vas lahko namestite brezplačno v mnogih sistemih. 651 00:29:36,087 --> 00:29:37,920 Tukaj sem potrjevanje predložitev samo 652 00:29:37,920 --> 00:29:40,540 s preverjanjem pa si dal me ime, spol in domu. 653 00:29:40,540 --> 00:29:44,130 In če je tako, pojdi naprej in sprožajo mailer. 654 00:29:44,130 --> 00:29:47,020 >> Lahko pomislite na to kot vrstica kode, ki so pravkar dodelila. 655 00:29:47,020 --> 00:29:48,950 To je, kot funkcije malloc, vendar to je malo bolj seksi 656 00:29:48,950 --> 00:29:51,790 s tem, da si omenil, ne samo funkcije malloc in nekaj generično številko. 657 00:29:51,790 --> 00:29:55,030 Pravite, dajte mi eno od teh, daj mi novo eno od teh. 658 00:29:55,030 --> 00:29:57,950 >> In če ste programirani Java ali C ++ ali drugih jezikov, 659 00:29:57,950 --> 00:29:59,130 Morda ste to videli. 660 00:29:59,130 --> 00:30:01,840 Ampak kratko to, če poznajo, ta linija 661 00:30:01,840 --> 00:30:05,410 postavlja v dollar sign pošti gradbena struct imenuje 662 00:30:05,410 --> 00:30:08,731 Objekt, ki je vgrajen v email funkcionalnost. 663 00:30:08,731 --> 00:30:10,355 In v resnici, obvestila in podobno sintakso. 664 00:30:10,355 --> 00:30:11,900 >> To ni kazalec, po sebi. 665 00:30:11,900 --> 00:30:13,990 PHP pravkar uporablja enako sintakso. 666 00:30:13,990 --> 00:30:17,660 Ta linija je rekel uporabe SMTP-- Simple Mail Transfer 667 00:30:17,660 --> 00:30:20,900 Protokol, ki je le Protokol za pošiljanje pošte. 668 00:30:20,900 --> 00:30:24,240 To je z navedbo uporabe SMTP server Harvard, ki 669 00:30:24,240 --> 00:30:25,830 nekje tukaj na kampusu. 670 00:30:25,830 --> 00:30:28,480 >> To je rekel, kaj TCP port število govoriti, 671 00:30:28,480 --> 00:30:31,650 in sem mislil, da so jih googling ali s prošnjo za pomoč uporabnikom. 672 00:30:31,650 --> 00:30:34,640 In potem, ker Harvard uporablja nekatere varnostni sistem na poštnem server-- 673 00:30:34,640 --> 00:30:37,060 vsaj za šifriranje promet med vami in njim, 674 00:30:37,060 --> 00:30:41,380 čeprav lahko vsakdo pošlje it-- Grem, da vklopite protokola TLS 675 00:30:41,380 --> 00:30:42,710 za vodenje to varno. 676 00:30:42,710 --> 00:30:44,730 >> Ampak, to je, če se stvari dobili malo strašljivo. 677 00:30:44,730 --> 00:30:47,970 Jaz lahko samo arbitrarno pravijo, da sem jharvard, 678 00:30:47,970 --> 00:30:51,930 in sem lahko samo arbitrarno sam email tukaj. 679 00:30:51,930 --> 00:30:55,650 In potem sem lahko določite predmet s to linijo tukaj. 680 00:30:55,650 --> 00:30:58,460 >> In to samo izgleda grdo, ampak to je samo kup Zveza. 681 00:30:58,460 --> 00:31:04,480 Izkazalo se je, PHP ima super koristno simbol, kot nekatere jezike, operator pika, 682 00:31:04,480 --> 00:31:07,340 ki samo dobesedno use Niz po vrvi po vrvi, 683 00:31:07,340 --> 00:31:09,810 in ne boste imeli, da funkcije malloc ali sliki iz celotne dolžina niza. 684 00:31:09,810 --> 00:31:10,820 Samo ti to naredil. 685 00:31:10,820 --> 00:31:15,220 In res, ker sem concatenating V vseh teh stvari, s temi pikami, 686 00:31:15,220 --> 00:31:18,330 zato sem email poslano videti, kot je to storila. 687 00:31:18,330 --> 00:31:20,610 >> In potem končno tu, sem pošiljanje e-pošte. 688 00:31:20,610 --> 00:31:22,580 Torej, če je ta napačna, Jaz sem samo, da bom umrla, 689 00:31:22,580 --> 00:31:25,680 ki je funkcija, ki samo natisne na zaslonu nekaj sporočil o napaki. 690 00:31:25,680 --> 00:31:29,170 Vendar pa je, v resnici, kliče funkcijo za pošiljanje. 691 00:31:29,170 --> 00:31:31,780 V nasprotnem primeru, če je vse to ne uspe, me preusmerja sem nazaj. 692 00:31:31,780 --> 00:31:34,050 >> In zakaj vidim, da Res sem registriran? 693 00:31:34,050 --> 00:31:36,110 No, to se je zgodilo tukaj. 694 00:31:36,110 --> 00:31:38,170 Zato sem to odprlo za Nekaj ​​razlogov. 695 00:31:38,170 --> 00:31:41,542 >> Ena, to je točno, kako, če si zgraditi nekatere spletne strani za končni projekt 696 00:31:41,542 --> 00:31:44,000 ali v realnem svetu, to je kako poslati e-poštne opomnike 697 00:31:44,000 --> 00:31:45,924 za vaše stranke ali vaše naročnike. 698 00:31:45,924 --> 00:31:47,590 To je, kako boste poslali geslo opomnike. 699 00:31:47,590 --> 00:31:50,760 To je, kako boste poslali ljudem sporočil da imajo novega Facebook 700 00:31:50,760 --> 00:31:52,990 Sporočilo teku ali nekaj takega. 701 00:31:52,990 --> 00:31:55,010 >> Ampak govori tudi Dejstvo, da lahko ta 702 00:31:55,010 --> 00:31:58,160 so bili zelo dobro od Davin ali kdorkoli drug. 703 00:31:58,160 --> 00:32:00,567 In sem rekel, ta vrsta z nasmehom, ker sem 704 00:32:00,567 --> 00:32:03,400 povsem prepričani, kaj se dogaja s več vaših glavah na tej točki. 705 00:32:03,400 --> 00:32:11,910 Toda to je eden od tistih, naredite I rečem, ne kot jaz stvarmi, 706 00:32:11,910 --> 00:32:14,480 ker je nepomembno oblikovati e-pošto, kot je ta. 707 00:32:14,480 --> 00:32:16,480 Ampak kot ste lahko opazili ali brali v Crimson, 708 00:32:16,480 --> 00:32:18,271 v zadnjem času pa je tudi precej nepomembno za ljudi 709 00:32:18,271 --> 00:32:20,050 izslediti nazaj do neke izvora. 710 00:32:20,050 --> 00:32:23,790 In me vprašati nekaj časa, morda na CS50 kosilo, kako sem prvič 711 00:32:23,790 --> 00:32:27,080 dobil zelo natančno seznanjeni skoraj do ed krovu več let 712 00:32:27,080 --> 00:32:30,890 nazaj, ko sem odkril kako internet deluje. 713 00:32:30,890 --> 00:32:36,940 Tako v vsakem case-- nekoliko Po ed odbor storil. 714 00:32:36,940 --> 00:32:42,300 >> Torej, v vsakem primeru, je cel kup super globals, 715 00:32:42,300 --> 00:32:45,960 kot oni tu imenuje, od katerih je eden smo saw-- dolar znak podčrtaj post. 716 00:32:45,960 --> 00:32:49,530 Tam je kolega pozval get, ki je, če stvari iz naslova URL 717 00:32:49,530 --> 00:32:50,690 konča dogaja. 718 00:32:50,690 --> 00:32:54,051 In tam je cel kup drugih, too-- seja in strežnik in piškotek. 719 00:32:54,051 --> 00:32:55,800 Vrnili se bomo na Piškotek kdaj drugič, 720 00:32:55,800 --> 00:33:01,340 toda seja je nekako kul ker pravica now-- do now-- 721 00:33:01,340 --> 00:33:06,350 vse, kar smo naredili s spletnim brskalnikom nekako brez državljanstva, če se tako izrazim. 722 00:33:06,350 --> 00:33:10,060 Lahko kliknite okoli, dostop datoteke na strežnik, nekaj, 723 00:33:10,060 --> 00:33:13,500 zgodi na zaslonu, vendar potem povezava zapre. 724 00:33:13,500 --> 00:33:17,450 Internet Explorer ali Icon Firefox ustavi predenje 725 00:33:17,450 --> 00:33:20,340 in si oglejte, kaj da spletna stran vsebuje. 726 00:33:20,340 --> 00:33:23,530 >> Torej HTTP brez državljanstva, da enkrat naredi povezavo, 727 00:33:23,530 --> 00:33:25,050 dobi nekaj podatkov, to je to. 728 00:33:25,050 --> 00:33:29,940 Nič več povezave, za razliko od Skype, za razliko od FaceTime, za razliko od Gchat, ki 729 00:33:29,940 --> 00:33:32,180 vzdržuje konstantna Povezava s strežnikom. 730 00:33:32,180 --> 00:33:34,650 Splet je v osnovi prekinjena, čeprav bomo 731 00:33:34,650 --> 00:33:36,630 videli kmalu, kako smo lahko simulirali stvari 732 00:33:36,630 --> 00:33:39,300 kot so Facebook klepet in Gchat, ki ohranjajo illusion-- 733 00:33:39,300 --> 00:33:41,680 ali dejansko ne ohranjajo stalna povezava prek 734 00:33:41,680 --> 00:33:43,270 bolj moderno tehnologijo. 735 00:33:43,270 --> 00:33:49,000 >> Ampak, če grem na, recimo, counter.php, to je še en preprost primer, 736 00:33:49,000 --> 00:33:52,700 kot bomo videli, da trenutno misli Obiskal sem ničelno časa stran. 737 00:33:52,700 --> 00:33:56,790 Ampak, če sem preprosto osvežite stran, nekako ve, da sem tukaj. 738 00:33:56,790 --> 00:33:58,840 Če bi še enkrat naložite, jo ve, da sem tukaj. 739 00:33:58,840 --> 00:34:01,100 In spet in spet in spet. 740 00:34:01,100 --> 00:34:03,610 >> Torej je nekaj plus-plussing dogaja, ampak obvestilo 741 00:34:03,610 --> 00:34:07,090 malo stvar vrti kdaj tako Na kratko up vrhu in nato prekine, 742 00:34:07,090 --> 00:34:11,179 tako da to ni všeč, imam konstanten povezava z mojo napravo. 743 00:34:11,179 --> 00:34:16,929 No, če sem šel v counter.php, opazili, kako preprosto je to. 744 00:34:16,929 --> 00:34:19,080 Najprej sem poklical ta posebna Funkcija, ki jo bomo kmalu 745 00:34:19,080 --> 00:34:21,513 začeli jemati za samoumevno imenuje začetek seje. 746 00:34:21,513 --> 00:34:22,179 Začni sejo. 747 00:34:22,179 --> 00:34:25,095 >> In seje odslej je le bo vedro, kot nakupovanje 748 00:34:25,095 --> 00:34:28,120 Voziček, v katerem si lahko vrednosti in nekako zaupam kot programer 749 00:34:28,120 --> 00:34:31,590 da boš tukaj, ko da uporabnik pride back-- sekundo 750 00:34:31,590 --> 00:34:35,670 kasneje, uro kasneje, še leto kasneje, dokler on ali ona ne počisti 751 00:34:35,670 --> 00:34:37,602 njihove piškote, saj bomo na koncu videli. 752 00:34:37,602 --> 00:34:39,310 In zdaj sem samo še če pogoj tukaj. 753 00:34:39,310 --> 00:34:44,679 Torej, če v naslednjem ključu, imenuje števec, ki je v notranjosti 754 00:34:44,679 --> 00:34:49,210 to super global-- to hash tabela, če will-- imenovano sejo, 755 00:34:49,210 --> 00:34:53,350 potem pa pojdi naprej in zgrabi vrednost od session-- think 756 00:34:53,350 --> 00:34:55,250 o tem kot nakupovanje cart-- in ga shranite 757 00:34:55,250 --> 00:34:57,680 v začasno spremenljivko z imenom števec. 758 00:34:57,680 --> 00:35:02,240 >> Drugače, če je bila ta vrednost števca ni določen v tako imenovanem nakupovalni voziček, 759 00:35:02,240 --> 00:35:04,430 Samo inicializacijo 0. 760 00:35:04,430 --> 00:35:09,830 Nazadnje je tu spodaj, pojdi in dal nazaj v nakupovalnih vozičkov ali seje 761 00:35:09,830 --> 00:35:13,000 Vrednost števca 1. 762 00:35:13,000 --> 00:35:16,730 Tako se izkaže, da je to posebna posoda here-- 763 00:35:16,730 --> 00:35:20,355 ki, spet, je eden od teh povezan nizi, matrika, ki jih lahko indeks 764 00:35:20,355 --> 00:35:25,010 v besede, namesto numbers-- vztraja tudi, ko uporabnik odide. 765 00:35:25,010 --> 00:35:26,510 Again, bom šel nazaj na stran zdaj. 766 00:35:26,510 --> 00:35:28,400 Minilo je že minuto ali tako. 767 00:35:28,400 --> 00:35:31,300 Vendar pa se spomni, da sem imel tu že 19-krat, preden. 768 00:35:31,300 --> 00:35:32,740 To je moj 20. obisk. 769 00:35:32,740 --> 00:35:36,560 >> In tako, da bo to ključnega pomena za izvajanje katere koli spletne strani, da si zapomni 770 00:35:36,560 --> 00:35:40,640 da ste prijavljeni, da si dal nekaj literal v košarici 771 00:35:40,640 --> 00:35:43,902 za nakup ali da imate nekaj Število sporočil v teku. 772 00:35:43,902 --> 00:35:45,610 Kadarkoli želite zapomni si informacije, 773 00:35:45,610 --> 00:35:48,130 bomo videli, da je PHP, kot je več drugih jezikov, 774 00:35:48,130 --> 00:35:53,640 nam daje to iluzijo stanje čeprav, kot boste videli v PSET 6, 775 00:35:53,640 --> 00:35:57,642 kot delaš zahteve HTTP od odjemalca do strežnika, to je to. 776 00:35:57,642 --> 00:35:59,850 Ko prideš nazaj, da odziv, ni nič več 777 00:35:59,850 --> 00:36:01,790 vrnil iz strežnika, ki ga privzeto. 778 00:36:01,790 --> 00:36:03,820 Ampak bomo videli, kako se dela okoli tega. 779 00:36:03,820 --> 00:36:07,430 >> No, poskusimo očistite to gor malo. 780 00:36:07,430 --> 00:36:09,470 Videli smo nekaj različni primeri tam. 781 00:36:09,470 --> 00:36:12,250 Oh, in kot prahi, za tistih, ki poznajo ali ne poznajo, 782 00:36:12,250 --> 00:36:14,230 Razlog, da Frosh UI primer odšli 783 00:36:14,230 --> 00:36:18,060 od videti res grda dobro slightly--, 784 00:36:18,060 --> 00:36:23,160 še ugly-- rahlo manj grda, čeprav je še vedno grd 785 00:36:23,160 --> 00:36:25,230 je zato, ker če pogledamo v izvorno kodo tukaj, 786 00:36:25,230 --> 00:36:28,240 Izkazalo se je, da imam to na samem vrhu datoteke. 787 00:36:28,240 --> 00:36:32,570 >> Izkazalo se je, da je bootstrap eden od mnogih prosto dostopni knjižnice tam 788 00:36:32,570 --> 00:36:37,140 da ne obstajajo za programske jezike Vedno, ampak CSS ali JavaScript 789 00:36:37,140 --> 00:36:39,190 ali HTML ali poljubno število jezikov. 790 00:36:39,190 --> 00:36:42,160 >> In ti ljudje here-- prvotno prišel ven 791 00:36:42,160 --> 00:36:44,730 od Twitter-- imajo samo cel kup stilov. 792 00:36:44,730 --> 00:36:47,360 To je ogromen datoteka tu, da je nekdo napisal, 793 00:36:47,360 --> 00:36:51,020 ali je nekdo napisal, v času, ki določa, barv in oblikovanje 794 00:36:51,020 --> 00:36:53,740 in malenkosti, tako da sem lahko vrsta sposodim svojo sintakso 795 00:36:53,740 --> 00:36:56,157 in ni treba, da ugotovimo, kako postaviti mojo obliko. 796 00:36:56,157 --> 00:36:57,990 To je tudi minified tako da lahko računalnik 797 00:36:57,990 --> 00:37:00,560 razumem, vendar ne nujno človeško. 798 00:37:00,560 --> 00:37:03,050 Torej, to je samo zato stilizacijo ni spremenila. 799 00:37:03,050 --> 00:37:05,450 >> Ampak kaj je sedaj še boljši v smislu oblikovanja, 800 00:37:05,450 --> 00:37:07,490 ker če bomo ostali dol ta pot predolga, 801 00:37:07,490 --> 00:37:11,290 naša koda se dogaja, da dobili grdo in umazani. 802 00:37:11,290 --> 00:37:13,040 Torej, kaj je osredotočiti na teh primerov tukaj. 803 00:37:13,040 --> 00:37:15,090 Zadnja za danes. 804 00:37:15,090 --> 00:37:18,720 >> Torej, tukaj je super enostavna Različica 1.0 spletne strani CS50 je. 805 00:37:18,720 --> 00:37:21,250 Ima samo povezave predavanja in učni načrt, 806 00:37:21,250 --> 00:37:25,490 in to z uporabo te neurejen seznam tag-- UL oznako, ki smo jo uporabili zadnjič. 807 00:37:25,490 --> 00:37:28,800 In če je v resnici, če bi odpirajo Ogled vira, 808 00:37:28,800 --> 00:37:31,710 boste videli, da je to res, res preprosta HTML. 809 00:37:31,710 --> 00:37:35,460 In v resnici, čeprav ta PHP file pod pokrovom, 810 00:37:35,460 --> 00:37:38,620 je še vedno samo pljuvanje samo HTML za zdaj. 811 00:37:38,620 --> 00:37:41,312 >> Torej, če sem kliknite na predavanja, vidimo to zgodilo. 812 00:37:41,312 --> 00:37:43,020 In če sem kliknite na teden nič, to vidimo. 813 00:37:43,020 --> 00:37:44,920 In če sem kliknite na Sreda, vidimo to. 814 00:37:44,920 --> 00:37:47,900 In to očitno bila PDF prosojnicah od tega dne. 815 00:37:47,900 --> 00:37:52,020 Vse sem naredil, je povezava z sidro tag na ta URL tukaj. 816 00:37:52,020 --> 00:37:55,400 >> Torej, to je samo reči, da je to precej preprosta različica spletne CS50 je. 817 00:37:55,400 --> 00:37:56,790 Poglejmo, kako se to izvaja. 818 00:37:56,790 --> 00:38:01,240 Če grem v imenik mvc0, bomo videli nekaj datotek. 819 00:38:01,240 --> 00:38:03,250 Eden od njih je README, tako da, če Nekatere od teh je prehitro, 820 00:38:03,250 --> 00:38:05,166 lahko samo suniti okrog bolj lagodno kasneje. 821 00:38:05,166 --> 00:38:07,930 In obvestilo Tukaj je index.php datoteko. 822 00:38:07,930 --> 00:38:09,960 Izkazalo se je, da če vi sami, človek, 823 00:38:09,960 --> 00:38:14,460 ne določajo dokončno ime v URL, spletni strežnik ponavadi 824 00:38:14,460 --> 00:38:17,010 sklepa nekaj privzeto ime za vas. 825 00:38:17,010 --> 00:38:20,060 Indeks dot nekaj je splošno privzeta. 826 00:38:20,060 --> 00:38:23,010 >> Torej, to je, zakaj pred nekaj trenutki ko sem obiskal ta URL tukaj 827 00:38:23,010 --> 00:38:26,750 no ime datoteke, ne datoteka razširitev, ni nobeno obdobje v URL. 828 00:38:26,750 --> 00:38:29,710 Samo vedel nekako čudežno iskati index.php. 829 00:38:29,710 --> 00:38:30,870 To je samo konvencija. 830 00:38:30,870 --> 00:38:32,360 Lahko imenujemo ničesar. 831 00:38:32,360 --> 00:38:35,110 >> Torej, če sem zdaj šel v index.php, boste videli 832 00:38:35,110 --> 00:38:37,100 da indeed-- dovolimo, znebiti pripomb 833 00:38:37,100 --> 00:38:39,500 tukaj, ker je res nič zanimivo it-- 834 00:38:39,500 --> 00:38:41,579 To je le težko kodirana HTML. 835 00:38:41,579 --> 00:38:43,370 Tako da je v skladu, čeprav z mojega zahtevka 836 00:38:43,370 --> 00:38:45,230 da lahko pomešati HTML in PHP. 837 00:38:45,230 --> 00:38:48,060 Ni dejanska programiranje logiko tukaj. 838 00:38:48,060 --> 00:38:51,030 >> In druge datoteke so precej veliko tako kot nezanimivo. 839 00:38:51,030 --> 00:38:56,240 To je samo hard-kodirane en teden tukaj tednu ena m in teden en w, 840 00:38:56,240 --> 00:38:57,510 v ponedeljek in sredo. 841 00:38:57,510 --> 00:39:01,890 In potem, če sem odprla nič teden opazite, da je skoraj identična. 842 00:39:01,890 --> 00:39:03,320 >> In to je nekako ključni takeaway. 843 00:39:03,320 --> 00:39:06,180 Opazili, kako je to odveč. 844 00:39:06,180 --> 00:39:10,710 Te datoteke komaj spremeniti, vendar sem potegnil enega od teh kopiraj / prilepi delovna mesta 845 00:39:10,710 --> 00:39:13,420 kjer sem eno file-- predvidoma V tednu zero-- kopirali 846 00:39:13,420 --> 00:39:16,320 ko en teden prišel okoli, in tweaked nekaj vrednosti. 847 00:39:16,320 --> 00:39:18,590 Morali bi verjetno lahko kaj več kot to. 848 00:39:18,590 --> 00:39:21,800 >> Torej, pojdimo nazaj do MVC in šel v različici enega. 849 00:39:21,800 --> 00:39:24,810 In opazil, da imam nekaj datotek, ker tisto, kar 850 00:39:24,810 --> 00:39:29,870 je bila skupna za vse datoteke samo Trenutek ago-- če grem nazaj v različici 0, 851 00:39:29,870 --> 00:39:32,600 pojdimo nazaj v indeksu, in samo postulate-- 852 00:39:32,600 --> 00:39:36,090 Nekoč sem se znebiti comments-- kaj dela to stran 853 00:39:36,090 --> 00:39:40,072 je verjetno v vsakem od mojih datotek? 854 00:39:40,072 --> 00:39:40,780 Samo klic. 855 00:39:40,780 --> 00:39:44,620 Katere vrstice so podvojene verjetno po vseh teh straneh? 856 00:39:44,620 --> 00:39:45,120 Ja? 857 00:39:45,120 --> 00:39:46,110 >> ŠTUDENT: [neslišno]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. Malan: 1 do 9. 859 00:39:47,660 --> 00:39:48,720 Ja, absolutno. 860 00:39:48,720 --> 00:39:52,080 1 do 9, razen morda 8 spreminja malo, ker CS50 861 00:39:52,080 --> 00:39:54,650 postane predavanja ali nič teden ali kaj podobnega. 862 00:39:54,650 --> 00:39:55,970 Toda skoraj identična. 863 00:39:55,970 --> 00:39:58,657 Torej, vse to je le nekako kopirali in prilepili. 864 00:39:58,657 --> 00:40:00,490 In tam je par druge linije lahko mislim 865 00:40:00,490 --> 00:40:05,000 za to so verjetno enaki vseh datotek. 866 00:40:05,000 --> 00:40:06,315 >> ŠTUDENT: 12 in 13. 867 00:40:06,315 --> 00:40:07,190 DAVID J. Malan: Ja. 868 00:40:07,190 --> 00:40:11,220 Seveda, 12, 13, in 14 verjetno, samo zato, ker je zanimive stvari 869 00:40:11,220 --> 00:40:15,460 se dogaja na progah 11 in 10, tako da se zdi. 870 00:40:15,460 --> 00:40:18,350 Tako da je pogled na različico 1, ki si prizadeva za izboljšanje na tem. 871 00:40:18,350 --> 00:40:24,020 V različici 1 tega MVC example-- bomo razložiti, kaj MVC sredstva v moment-- 872 00:40:24,020 --> 00:40:27,420 če grem v indeksu, je nekako izgleda malo zmedeno zdaj. 873 00:40:27,420 --> 00:40:28,880 To ni tako preprosto, kot prej. 874 00:40:28,880 --> 00:40:30,906 >> Ampak ko začneš preberi skrbno, je 875 00:40:30,906 --> 00:40:32,530 precej preprosta, kaj počne. 876 00:40:32,530 --> 00:40:34,397 Očitno Linija 1 in vrstica 8 se nadomesti 877 00:40:34,397 --> 00:40:37,230 vse stvari, ki ste jo pravkar identified-- čeprav samo za dober ukrep, 878 00:40:37,230 --> 00:40:41,900 Tam sem pustil ULS samo v primeru nekaterih dni niso imeli seznam stvari. 879 00:40:41,900 --> 00:40:47,860 In tako zahtevajo, je nekako kot funt vključujejo C. It kopira in prilepi 880 00:40:47,860 --> 00:40:50,470 vsebina učinkovito tukaj v tej datoteki. 881 00:40:50,470 --> 00:40:53,650 >> Torej, v header.php, saj vas lahko sklepamo iz njegovega imena, 882 00:40:53,650 --> 00:40:55,330 se bo glava strani. 883 00:40:55,330 --> 00:40:57,110 To je nekako osiroteli tukaj. 884 00:40:57,110 --> 00:41:01,820 To je le vrh do njega, vendar ni več vsebina spodaj. 885 00:41:01,820 --> 00:41:05,070 >> In če gledam na nogi medtem, ki je bila druga datoteka mentioned-- 886 00:41:05,070 --> 00:41:08,830 ta je še manj zanimiva, ampak spet, to je skupna vsem. 887 00:41:08,830 --> 00:41:10,250 Torej je to nogo. 888 00:41:10,250 --> 00:41:11,300 To je glava. 889 00:41:11,300 --> 00:41:13,950 To je datoteka, ki je spreminjajo, zakaj ne 890 00:41:13,950 --> 00:41:18,140 poskusite dejavnik ven izenačevanje pri teh dveh črt? 891 00:41:18,140 --> 00:41:20,090 >> Vendar pa lahko to čiščenje up malo naprej. 892 00:41:20,090 --> 00:41:23,260 Bom, da gredo naprej in odpirajo različico dve kjer 893 00:41:23,260 --> 00:41:27,106 bomo videli, da obstaja nova datoteka, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Bomo videli, kaj je to v trenutku. 895 00:41:28,610 --> 00:41:30,930 Pojdimo v indeks, kot je vstopna točka kot prej. 896 00:41:30,930 --> 00:41:35,230 >> In zdaj sem opazil, ki zahteva helpers.php, ne glave ali noge. 897 00:41:35,230 --> 00:41:41,720 Vendar je pomočniki vrsta všeč helpers.c in helpers.h od PSET 2 898 00:41:41,720 --> 00:41:46,150 ali PSET 3 dolgo nazaj, ko ste dejansko ni iskati in najti za to PSET, 899 00:41:46,150 --> 00:41:50,950 in ste imeli vse vaše kode za sortiranje in iskanje v ločeni datoteki. 900 00:41:50,950 --> 00:41:52,510 To je tisto, kar se dogaja tukaj. 901 00:41:52,510 --> 00:41:54,390 >> In zdaj vrstica 3 izgleda malo drugačen. 902 00:41:54,390 --> 00:41:55,920 In to je samo ena vrstica. 903 00:41:55,920 --> 00:41:57,950 Da bi to še bolj Jasno, sem lahko samo 904 00:41:57,950 --> 00:42:01,820 ne, da je to slogovno skladen vse ostalo smo naredili. 905 00:42:01,820 --> 00:42:04,130 Ampak to ni res spreminjanje funkcionalnosti. 906 00:42:04,130 --> 00:42:05,880 To je samo ena vrstica prave kode. 907 00:42:05,880 --> 00:42:09,010 >> Očitno je, da je funkcija nekje imenuje postanejo glavo, 908 00:42:09,010 --> 00:42:11,420 in to je, če se stvari dobili precej močna. 909 00:42:11,420 --> 00:42:17,040 Obvestilo, da je notranjost njene oklepajih je tisto, kar drugi kos sintakse? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Verjetno je malo težko reči, vendar Opazili there's-- bom dal nekaj belega 912 00:42:23,350 --> 00:42:24,300 prostor. 913 00:42:24,300 --> 00:42:25,530 Tam je oglati oklepaj. 914 00:42:25,530 --> 00:42:29,700 >> In oglati oklepaj smo videli malo pred v okviru Povezovalne matrike, 915 00:42:29,700 --> 00:42:31,580 ki so, spet, tako kot hash tabel. 916 00:42:31,580 --> 00:42:36,230 In če mislite, da je sedaj na C, Vrstni red argumentov v funkciji 917 00:42:36,230 --> 00:42:37,570 mora biti vedno enaka. 918 00:42:37,570 --> 00:42:41,146 Moraš vedeti, kaj je naročite is-- X, Y, Z ali Z, Y, x-- 919 00:42:41,146 --> 00:42:44,020 in jih morate vedno zagotoviti v istem vrstnem redu ali pa jih poiščete 920 00:42:44,020 --> 00:42:45,100 če ste pozabili. 921 00:42:45,100 --> 00:42:51,140 >> Vendar se zdi, da je pameten način prestati poljubno vrednost ključa 922 00:42:51,140 --> 00:42:55,840 parov, pri čemer je naziv ime za argument v tem primeru 923 00:42:55,840 --> 00:42:58,334 in CS50 je njegova vrednost. 924 00:42:58,334 --> 00:43:00,250 In dejstvo, da imam ti oglati oklepaj 925 00:43:00,250 --> 00:43:02,560 tu pomeni, da sem lahko prenese tudi v nekaj 926 00:43:02,560 --> 00:43:07,550 kot teden je 1 ali 0 ali 2 ali 3. 927 00:43:07,550 --> 00:43:10,550 Tako smo parameterizirajo ta funkcija tako 928 00:43:10,550 --> 00:43:15,180 da lahko traja tudi več vhodov, ampak za zdaj je samo ena. 929 00:43:15,180 --> 00:43:20,060 >> Če bi zdaj šel v helpers.php, opazili, kaj počne. 930 00:43:20,060 --> 00:43:22,030 To je malo nove funkcionalnosti, 931 00:43:22,030 --> 00:43:24,190 vendar za zdaj vzemite na veri, da je to 932 00:43:24,190 --> 00:43:26,570 sintakso, s katero ste definiramo funkcijo v PHP. 933 00:43:26,570 --> 00:43:27,840 Dobesedno pravijo funkcijo. 934 00:43:27,840 --> 00:43:30,090 Ne podate vrnitev tip, in da je v skladu 935 00:43:30,090 --> 00:43:33,880 z variabilno Podatek prej kjer ne boste res močno tip. 936 00:43:33,880 --> 00:43:35,650 >> To samo določa da, ki ga privzeto, to 937 00:43:35,650 --> 00:43:37,460 traja asociativni niz kot argument. 938 00:43:37,460 --> 00:43:38,210 In veste kaj? 939 00:43:38,210 --> 00:43:41,450 Če uporabnik ne gredo drug V prevzame privzeto vrednost. 940 00:43:41,450 --> 00:43:44,680 >> To je značilnost, C nima za nas, kar je lepo, ker zdaj 941 00:43:44,680 --> 00:43:46,430 podatkov, tudi če vas Ne dati ničesar, 942 00:43:46,430 --> 00:43:49,300 se bo Niz ampak prazna ena. 943 00:43:49,300 --> 00:43:51,860 In kot praha, ekstrakta Samo naredi nekaj funky 944 00:43:51,860 --> 00:43:56,380 kjer je potrebno vse tipke iz tega asociativno paleto, vse stvari 945 00:43:56,380 --> 00:43:59,950 lahko bi dal v oglatih oklepajih, in ustvarja spremenljivke iz njih 946 00:43:59,950 --> 00:44:06,270 tako da bomo lahko končno imeli dostop z njimi v footet.php in header.php. 947 00:44:06,270 --> 00:44:08,950 To je nekoliko abstrakten, zato naj to opozarjajo. 948 00:44:08,950 --> 00:44:12,990 >> V index.php, opazili, da sem poteka v ključnem vrednosti par naslova 949 00:44:12,990 --> 00:44:14,850 z vrednostjo CS50. 950 00:44:14,850 --> 00:44:18,660 Če bom zdaj poglej helpers.php, Obvestilo, da RenderHeader 951 00:44:18,660 --> 00:44:23,870 izvlečke, da so podatki, ki sem kratki v, in nato zahteva header.php. 952 00:44:23,870 --> 00:44:27,970 Kaj sem naredil, je nekakšen revež je Izvajanje zdaj od naštetega. 953 00:44:27,970 --> 00:44:31,720 >> Če sem odprla header.php, Obvestilo, da sem imel več težko 954 00:44:31,720 --> 00:44:34,890 kodiran besedo CS50 v tej glavi datoteke. 955 00:44:34,890 --> 00:44:39,310 Sem dal to res atrociously poimenovana funkcija, HTML posebnih znakov, 956 00:44:39,310 --> 00:44:40,170 tam. 957 00:44:40,170 --> 00:44:41,640 Ampak obvestilo, kaj sem naredil. 958 00:44:41,640 --> 00:44:44,240 Imam odprto HTML. 959 00:44:44,240 --> 00:44:47,420 Nato sem imel odprto glavo in odprt naslov. 960 00:44:47,420 --> 00:44:52,380 >> In nato znotraj naslov je odprta in Zapri oznake, imam malo PHP kodo. 961 00:44:52,380 --> 00:44:56,670 In to je lepo, vendar sintakse, ki pomeni le odmeva ven. 962 00:44:56,670 --> 00:44:59,840 To dobesedno pomeni this-- odmeva following-- 963 00:44:59,840 --> 00:45:01,910 ampak to je bolj seksi pisati. 964 00:45:01,910 --> 00:45:05,000 Odmeva iz naslova ki je bila sprejeta leta. 965 00:45:05,000 --> 00:45:07,560 >> Ampak kaj misliš HTML Poseben znak je vse o, 966 00:45:07,560 --> 00:45:10,590 še posebej, če imate nekateri pred HTML izkušnje? 967 00:45:10,590 --> 00:45:14,050 Katere znake lahko nevaren prehod v na stran 968 00:45:14,050 --> 00:45:17,980 kam ste dinamično generiranje spletna stran s kodo, kot je ta? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Naj grem v to datoteko, različica dva, in videli, če mi ne more voditi tega. 971 00:45:24,650 --> 00:45:26,210 >> Različica dva je to. 972 00:45:26,210 --> 00:45:28,510 In opazili vse je v redu, dobro deluje. 973 00:45:28,510 --> 00:45:35,280 Ampak, da sem šel v index.php in I določeno, da je naslov moje strani 974 00:45:35,280 --> 00:45:36,630 ni CS50. 975 00:45:36,630 --> 00:45:44,930 To je pozoren odprt oklepaj script Zdravo svet, blizu single quote, 976 00:45:44,930 --> 00:45:49,740 blizu oklepaj, podpičje, odprti oklepaj, poševnica script. 977 00:45:49,740 --> 00:45:51,897 >> Scenarij, saj bomo nazadnje videli, je tag 978 00:45:51,897 --> 00:45:54,480 ki jo lahko uporabite za uporabo drugega programski jezik imenovan 979 00:45:54,480 --> 00:45:56,330 JavaScript znotraj spletne strani. 980 00:45:56,330 --> 00:45:57,960 In zdaj opazili logiko tukaj. 981 00:45:57,960 --> 00:45:59,840 Tukaj je ključ imenovan naslov. 982 00:45:59,840 --> 00:46:02,690 Tukaj je, da je noro dolgo vrednosti zdaj. 983 00:46:02,690 --> 00:46:07,840 >> Ampak, če grem na pomočnikov celostransko objavo ali bolje, stran glave, 984 00:46:07,840 --> 00:46:11,310 Kličem te funkcije na ta naslov prvega. 985 00:46:11,310 --> 00:46:15,250 Torej, če sem zdaj osveži stran, sem glej to, kar je videti smešno, 986 00:46:15,250 --> 00:46:16,110 vendar je varno. 987 00:46:16,110 --> 00:46:17,310 Samo videti neumno. 988 00:46:17,310 --> 00:46:20,320 >> Namesto tega pa si zamislimo Imel sem to pozabil. 989 00:46:20,320 --> 00:46:24,660 In zapomni si moje besede, neniceln številka od vas ne bom pozabil, da to storijo 990 00:46:24,660 --> 00:46:27,790 in boste dobili nekaj marljivi študent ali prijatelj prihaja 991 00:46:27,790 --> 00:46:31,540 z vami na sejmu CS50 ali anonimno ponoči drezal okoli na vaši spletni strani 992 00:46:31,540 --> 00:46:35,300 in v bistvu vbrizgavanje kodo nevede, da vas na svojo spletno stran 993 00:46:35,300 --> 00:46:35,800 nekako. 994 00:46:35,800 --> 00:46:39,000 >> Ker če sem preprosto pljunil iz naslova tu in naziv 995 00:46:39,000 --> 00:46:44,330 there-- tudi, če je naslov dobesedno izgleda takole in PHP 996 00:46:44,330 --> 00:46:47,660 kot jezik, ki se lahko pljunil iz drugih jezikov besedila, 997 00:46:47,660 --> 00:46:50,650 To je dobesedno dogaja nadomestiti s to oznako, 998 00:46:50,650 --> 00:46:53,010 Seveda, kaj sem dal na drugem mestu. 999 00:46:53,010 --> 00:46:57,640 >> Torej, če sem zdaj šel tu in osvežite po odvijete tiste varnostne mehanizme, 1000 00:46:57,640 --> 00:46:59,982 Zdaj imam zdravo svet tukaj. 1001 00:46:59,982 --> 00:47:02,690 Zdaj pa to še ni vse, da je velik od ukvarjajo, vendar bi lahko storili kaj 1002 00:47:02,690 --> 00:47:05,119 malo bolj zlonamerna tukaj, kot da je 1003 00:47:05,119 --> 00:47:08,410 drugi tags-- kot bomo videli, ko bomo porabili več časa, kot je lokacija JavaScript-- 1004 00:47:08,410 --> 00:47:14,910 dot href dobi, citiram, konec citata, HTTP business.com, ampak ravno nasprotno od tega 1005 00:47:14,910 --> 00:47:15,950 od drugega dneva. 1006 00:47:15,950 --> 00:47:20,120 In zdaj lahko sproži spletu stran, da bi dejansko šel takoj 1007 00:47:20,120 --> 00:47:21,190 na tej spletni strani tukaj. 1008 00:47:21,190 --> 00:47:23,000 >> In dejansko, ne želim celo iti business.com 1009 00:47:23,000 --> 00:47:24,749 ker nočem vedeti, kaj to je. 1010 00:47:24,749 --> 00:47:28,710 Ampak tudi to bo sprožilo kodo ki se vbrizga v to stran. 1011 00:47:28,710 --> 00:47:32,680 Torej to je samo povedati, da čeprav smo uvedbo super zgodaj nekateri 1012 00:47:32,680 --> 00:47:36,800 teh bolj kompleksnih struktur, to je vse proti koncu leta pazite, 1013 00:47:36,800 --> 00:47:39,320 da je tvoja koda ne izkoriščati. 1014 00:47:39,320 --> 00:47:40,960 >> Torej, zdaj tretja različica tukaj. 1015 00:47:40,960 --> 00:47:42,470 To je pridobivanje malo Ljubitelj. 1016 00:47:42,470 --> 00:47:44,875 Nisem res like-- anal stran od mene 1017 00:47:44,875 --> 00:47:47,750 je že malo moti Dejstvo, da sem imel funkcijo imenovano 1018 00:47:47,750 --> 00:47:51,940 RenderHeader in RenderFooter da so bili skoraj enaki. 1019 00:47:51,940 --> 00:47:55,400 Zato je prišlo do mene, zakaj ne I parameterize te funkcije 1020 00:47:55,400 --> 00:47:59,180 v samo enem imenovano render, so ga vzeli drugi argument 1021 00:47:59,180 --> 00:48:04,420 kot je ime šablone, končna da render-- bodisi glavo ali nogo? 1022 00:48:04,420 --> 00:48:07,160 In potem po izbiri, če želim prenesti na nekaterih ključnih parov vrednosti 1023 00:48:07,160 --> 00:48:10,580 kot jaz za naziv za header, ne pa za nogo, 1024 00:48:10,580 --> 00:48:11,800 Jaz bi to naredil. 1025 00:48:11,800 --> 00:48:16,510 >> In zdaj, če sem šel v helpers.php, to je malo bolj zapletena. 1026 00:48:16,510 --> 00:48:19,670 In bom val moje roke na podrobnosti, ampak to je samo ena funkcija. 1027 00:48:19,670 --> 00:48:21,890 Torej, to je korak k boljšemu načrtovanju. 1028 00:48:21,890 --> 00:48:23,360 >> Bomo lahko to še en korak naprej. 1029 00:48:23,360 --> 00:48:28,890 Če grem v mojo četrtino različica tega opazil zdaj 1030 00:48:28,890 --> 00:48:31,320 da delam nekaj še nekako skrivnosten. 1031 00:48:31,320 --> 00:48:33,230 In vem, da je to Veliko absorbirati naenkrat, 1032 00:48:33,230 --> 00:48:35,080 vendar smo le nekako čiščenja stvari. 1033 00:48:35,080 --> 00:48:38,550 Zdaj sem dajanje moje pomočnice datoteke v mapo, imenovano 1034 00:48:38,550 --> 00:48:41,190 includes-- samo arbitrarno ime, v katerem želim postaviti stvari 1035 00:48:41,190 --> 00:48:44,300 da želim include-- in nato Preostanek je to isto. 1036 00:48:44,300 --> 00:48:47,140 >> Ampak če pogledam zdaj v gedit, Obvestilo, da sem prišel znebite 1037 00:48:47,140 --> 00:48:51,940 od vseh teh drugih datotek in sem jih premikati, na primer, v tukaj. 1038 00:48:51,940 --> 00:48:55,110 Nato pa v predlogah, To sem tudi tukaj. 1039 00:48:55,110 --> 00:48:59,292 In tako je vse to zdaj proti korak uporabe veliko boljše načrtovanje vzorec. 1040 00:48:59,292 --> 00:49:01,000 In smo zelo hitro dogaja, da se odmakne 1041 00:49:01,000 --> 00:49:03,870 od PHP privzeto funkcionalnost, ki smo ga začeli tu z, 1042 00:49:03,870 --> 00:49:07,655 kjer si pomešati PHP, in vaše HTML, CSS in vaše, 1043 00:49:07,655 --> 00:49:09,780 in si ga izpljunite in greste o vaši poti. 1044 00:49:09,780 --> 00:49:11,404 To se ne bo zelo vzdrževati. 1045 00:49:11,404 --> 00:49:14,481 Tako kot v C, smo začeli uporabljati več datotek in več funkcij 1046 00:49:14,481 --> 00:49:15,730 in faktoring stvari s tem. 1047 00:49:15,730 --> 00:49:16,688 Bomo naredili isto tukaj. 1048 00:49:16,688 --> 00:49:19,970 In v resnici, v peti in končno Različica tukaj, sem še eno stvar. 1049 00:49:19,970 --> 00:49:23,710 Lahko uporabite tudi dot dot, ki spet je le starševski imenik. 1050 00:49:23,710 --> 00:49:28,260 Biti še več varnosti pri zavesti, ker če gledam na poslušanje 1051 00:49:28,260 --> 00:49:32,450 tukaj za peto in končna različica, obvestila da imam en imenik tukaj imenovano 1052 00:49:32,450 --> 00:49:35,180 javnosti, nato pa na isti ravni, tako rekoč, 1053 00:49:35,180 --> 00:49:38,490 Imam vključuje in predloge in potem, da besedilna datoteka readme. 1054 00:49:38,490 --> 00:49:41,130 >> In razlog, da sem strukturiran je všeč this-- in toliko spletu 1055 00:49:41,130 --> 00:49:44,330 gostitelji, še posebej tistih 5 $ tisti mesec ali $ 10 mesecev, tisti, 1056 00:49:44,330 --> 00:49:47,170 če ste kdaj imeli eden od teh services-- kaj tako mnogi od njih 1057 00:49:47,170 --> 00:49:50,690 Oni samo pričakujejo, da boš pustila vse vaših datotek v enem imeniku, 1058 00:49:50,690 --> 00:49:53,640 kot smo že z To je zelo prvi primer. 1059 00:49:53,640 --> 00:49:56,740 >> Toda takoj, ko začnete graditi več sofisticirane spletne strani, ki samo shranjevanje 1060 00:49:56,740 --> 00:50:00,480 Podatki, ki jih skrbi in vas datoteke mar, dejansko organizira stvari 1061 00:50:00,480 --> 00:50:05,060 pravilno in z več varnosti zavest v mislih, lahko 1062 00:50:05,060 --> 00:50:07,927 začnemo braniti proti vsem prijateljem 1063 00:50:07,927 --> 00:50:10,135 da imate bodisi v ali zunaj tega razreda, ki, 1064 00:50:10,135 --> 00:50:12,510 takoj, ko ste začeli delati programi sami na spletu, 1065 00:50:12,510 --> 00:50:15,140 se bo za začetek obiranja na vas in na njih. 1066 00:50:15,140 --> 00:50:17,420 >> In tako bomo pogledali navsezadnje na to zasnovo. 1067 00:50:17,420 --> 00:50:20,010 To je samo slika ki prikazuje naslednje. 1068 00:50:20,010 --> 00:50:22,897 Bomo dal vse naše programiranje logike v eno ali več datotek, 1069 00:50:22,897 --> 00:50:25,230 in bomo šele začetek kliče te krmilnike. 1070 00:50:25,230 --> 00:50:28,022 Tam, kjer možgane naše spletne strani, v resnici so. 1071 00:50:28,022 --> 00:50:29,730 Potem bomo imajo poglede in stališča 1072 00:50:29,730 --> 00:50:32,480 so tako enostavno, kot samo ločeno files-- imenovane predloge, pogosto. 1073 00:50:32,480 --> 00:50:34,410 So samo še estetika moji strani, 1074 00:50:34,410 --> 00:50:37,020 kaj hočem stran pogledati like-- barve in postavitve 1075 00:50:37,020 --> 00:50:38,870 in položaji vseh spremenljivkah. 1076 00:50:38,870 --> 00:50:41,120 >> In potem bolj zanimivo da bomo na koncu prišli do 1077 00:50:41,120 --> 00:50:45,420 je vzorec, ki se bo samo beseda, slap, na drugih tehnologijah 1078 00:50:45,420 --> 00:50:47,771 da uveljavijo slika, kot dejanskih podatkovnih baz, 1079 00:50:47,771 --> 00:50:49,520 tako da, če želite za shranjevanje podatkov, 1080 00:50:49,520 --> 00:50:52,140 ne boste samo pošljite e-pošto na vaš Proctor ali zase, 1081 00:50:52,140 --> 00:50:57,350 ga dejansko shranite v zbirko podatkov uporablja drug jezik, znan kot SQL. 1082 00:50:57,350 --> 00:51:00,450 In tako bomo oditi danes tukaj in pick up s tem v sredo 1083 00:51:00,450 --> 00:51:02,990 in uvesti nato podatkovnih baz. 1084 00:51:02,990 --> 00:51:06,940 >> [Predvajanje glasbe] 1085 00:51:06,940 --> 00:54:24,555