1 00:00:00,000 --> 00:00:03,920 >> [Zenelejátszó] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. MALAN: Rendben. 4 00:00:13,800 --> 00:00:15,640 Ez CS50. 5 00:00:15,640 --> 00:00:17,620 Ez a kezdete hét nyolc. 6 00:00:17,620 --> 00:00:22,440 És lehet felidézni, hogy mi maradt ki utoljára néztem egy új nyelvet 7 00:00:22,440 --> 00:00:23,240 összesen. 8 00:00:23,240 --> 00:00:25,905 Sőt, az egyik, hogy elég könnyű és ez nem is 9 00:00:25,905 --> 00:00:26,940 egy programozási nyelv. 10 00:00:26,940 --> 00:00:31,100 Ez egy leíró nyelv, amely lehetővé teszi számunkra, valójában strukturálják, és weboldalakat. 11 00:00:31,100 --> 00:00:33,350 És ha valami más együtt this-- 12 00:00:33,350 --> 00:00:35,670 vagy hamarosan lesz, ha Ön még nem tette meg. 13 00:00:35,670 --> 00:00:38,530 Fogunk használni Cascading Style Sheets, CSS vagy, ami 14 00:00:38,530 --> 00:00:40,971 egy másik típusa a nyelv A tulajdonságok és értékek 15 00:00:40,971 --> 00:00:43,220 hogy fog tegyük dolgok, mint változtatni a színét 16 00:00:43,220 --> 00:00:46,010 és a változás a helyzet és ilyen jellegű csíp. 17 00:00:46,010 --> 00:00:49,940 De ma és tovább, elkezdünk összpontosítani erősebb nyelven, 18 00:00:49,940 --> 00:00:52,810 tényleges programozási nyelvek, mint a PHP. 19 00:00:52,810 --> 00:00:54,880 >> Így PHP már jó ideje. 20 00:00:54,880 --> 00:00:56,810 És látni fogod, hogy célja az volt, elsősorban 21 00:00:56,810 --> 00:01:00,280 korán tényleges használja webfejlesztés 22 00:01:00,280 --> 00:01:02,360 és valóban termelő weboldalakat. 23 00:01:02,360 --> 00:01:04,849 Szóval, milyen funkciók nem egy nyelvet 24 00:01:04,849 --> 00:01:10,040 szüksége van ahhoz, hogy a web oldalak dinamikusan vele? 25 00:01:10,040 --> 00:01:14,760 >> Más szóval, ha azt szeretnénk, hogy létrehoz tartalom dynamically-- mint a Facebook 26 00:01:14,760 --> 00:01:19,480 Hírfolyam, amely folyamatosan változik, vagy azonnali üzeneteket, hogy felbukkan időről 27 00:01:19,480 --> 00:01:21,872 hogy time-- mint mi a kulcsfontosságú darab funkcionalitás 28 00:01:21,872 --> 00:01:24,580 szüksége van egy programozási nyelv amely segítségével dinamikusan 29 00:01:24,580 --> 00:01:28,070 nyomtasson új információkat a képernyőn? 30 00:01:28,070 --> 00:01:28,685 >> STUDENT: kód. 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 Elvisszük azt. 34 00:01:31,995 --> 00:01:35,310 Egy kicsit pontosabb. 35 00:01:35,310 --> 00:01:37,639 Úgy értem, amit tehetünk ez C, őszintén szólva. 36 00:01:37,639 --> 00:01:38,930 Lenne a fájdalom a nyak. 37 00:01:38,930 --> 00:01:41,045 De-- az elkötelezettség? 38 00:01:41,045 --> 00:01:41,895 >> Diák: Igen. 39 00:01:41,895 --> 00:01:42,677 Változók, talán? 40 00:01:42,677 --> 00:01:43,760 DAVID J. MALAN: változók. 41 00:01:43,760 --> 00:01:44,160 OK, biztos. 42 00:01:44,160 --> 00:01:45,740 Változók minden bizonnyal segíteni minket. 43 00:01:45,740 --> 00:01:47,020 És még valami egyszerűbb. 44 00:01:47,020 --> 00:01:50,640 Akkor használjuk a legelső program az első napon 45 00:01:50,640 --> 00:01:55,686 amikor valójában azt mondta: "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: nyomtatás, ugye? 48 00:01:57,778 --> 00:02:01,050 Print vagy a printf világ a C. Szóval ebben az időben, 49 00:02:01,050 --> 00:02:03,362 már volt nálunk rendelkezésére language-- C, 50 00:02:03,362 --> 00:02:05,570 A particular-- és még Scratch, hogy az ügyben, hogy a 51 00:02:05,570 --> 00:02:07,400 generálhat karakterláncok. 52 00:02:07,400 --> 00:02:11,090 >> Nos, ha a HTML, ahogy azt a múlt héten, csak egy csomó karakterláncok 53 00:02:11,090 --> 00:02:14,692 bár nyitott és zárt konzolok konzolok és valamilyen rím 54 00:02:14,692 --> 00:02:16,650 és oka, hogy, nos akkor tudnánk igazán 55 00:02:16,650 --> 00:02:20,440 kezdeni termelő weboldalak sem kézzel beírja őket a gedit 56 00:02:20,440 --> 00:02:23,870 vagy a Microsoft Word, az adott matter-- csak azt kell egy szövegszerkesztővel. 57 00:02:23,870 --> 00:02:26,830 >> Vagy írhatnánk kódot, a javaslat 58 00:02:26,830 --> 00:02:30,435 korábban, ami hadd dinamikusan generálni HTML, 59 00:02:30,435 --> 00:02:32,560 és ez az, amit mi megyünk kezdeni ezzel a PHP 60 00:02:32,560 --> 00:02:34,900 és végül még egy nyelv nevű JavaScript, 61 00:02:34,900 --> 00:02:37,910 az használja a nyelvet, hogy létrehoz egy másik. 62 00:02:37,910 --> 00:02:40,720 És valóban, ez az, amit a Facebook és sok-sok más oldalak 63 00:02:40,720 --> 00:02:44,530 tenni, hogy valóban dinamikusan megjeleníti az új információt. 64 00:02:44,530 --> 00:02:47,117 >> Szóval kezdődik a this-- rejtélyes látszó vonal, hanem egy 65 00:02:47,117 --> 00:02:48,450 ez valóban elég erős. 66 00:02:48,450 --> 00:02:51,210 Eddig mi már a C, amely egy összeállított nyelvet. 67 00:02:51,210 --> 00:02:55,050 És csak egy gyors recap-- összeállított nyelv van, mi jellemző? 68 00:02:55,050 --> 00:02:59,050 Ön nyilván kell fordítani , de mit is jelent ez? 69 00:02:59,050 --> 00:03:00,505 Igen? 70 00:03:00,505 --> 00:03:02,940 >> Diák: Meg kell összeszerelt gépi kódra. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. MALAN: OK. 72 00:03:03,060 --> 00:03:04,530 Meg kell összeszerelni gépi kódra. 73 00:03:04,530 --> 00:03:07,340 Szóval vegye be a forráskódot, ami egyfajta angol-szerű. 74 00:03:07,340 --> 00:03:09,270 Átalakítani, hogy a valami alacsonyabb szintű, 75 00:03:09,270 --> 00:03:11,590 amely végül az úgynevezett objektum code-- 0 és 1-a. 76 00:03:11,590 --> 00:03:14,830 És ezek a 0 és 1-es azt a CPU, mint azok, amelyek az Intel, 77 00:03:14,830 --> 00:03:16,110 valóban megértsék. 78 00:03:16,110 --> 00:03:19,690 >> Most, a PHP és Python és Ruby és JavaScript és csokor más 79 00:03:19,690 --> 00:03:23,190 nyelveket nem össze nyelv de értelmezett nyelvekhez, 80 00:03:23,190 --> 00:03:26,630 ami azt jelenti, hogy csak írja ki, majd Ön nem kapcsolja őket 0 és 1-es. 81 00:03:26,630 --> 00:03:30,790 Te inkább csak ad majd, mint input valaki más programja, 82 00:03:30,790 --> 00:03:32,080 hívott tolmács. 83 00:03:32,080 --> 00:03:34,460 És, hogy a személy programot úgy tervezték, 84 00:03:34,460 --> 00:03:38,280 hogy megértsük, mi minden minden jel Python vagy PHP 85 00:03:38,280 --> 00:03:42,650 vagy Ruby vagy akárhány Más nyelveken jelent. 86 00:03:42,650 --> 00:03:44,760 >> És minden, amire szükségünk van valami ilyesmi. 87 00:03:44,760 --> 00:03:46,350 Tehát valójában fogok megy át a készülék 88 00:03:46,350 --> 00:03:48,100 itt, csak bármely régi ablak, és vagyunk 89 00:03:48,100 --> 00:03:52,580 menni előre, és nyitott nevű fájlt, mondjuk, helló. 90 00:03:52,580 --> 00:03:55,780 Most korábban, talán mentett ezt még a fájl kiterjesztését, 91 00:03:55,780 --> 00:03:57,910 de fogok csinálni valami még egyszerűbb itt. 92 00:03:57,910 --> 00:04:02,450 Én megyek előre, és indítsa ezt a fájlt ezzel a talányos szintaxis. 93 00:04:02,450 --> 00:04:06,310 Szóval "felhasználó, bin, env, környezetvédelmi, php. " 94 00:04:06,310 --> 00:04:10,670 >> Ez egyszerűen egy sor kód, ami Elmondod az operációs rendszer, 95 00:04:10,670 --> 00:04:13,730 keressük meg a helyi környezet bármi is legyen az, 96 00:04:13,730 --> 00:04:18,149 bárhol PHP ez-- a interpreter-- és megy előre, és használja azt tolmács 97 00:04:18,149 --> 00:04:20,589 értelmezni az alábbi kódot. 98 00:04:20,589 --> 00:04:22,760 Nos, ez a fajta egy csúnya tulajdonsága PHP. 99 00:04:22,760 --> 00:04:24,980 De ezen a nyelven, bármely idő írsz PHP kódot, 100 00:04:24,980 --> 00:04:29,200 meg kell, hogy egy ilyen csúnya PHP címkék határoló elejére 101 00:04:29,200 --> 00:04:32,220 a code-- 00:04:37,430 >> De itt lent, én most tenni valamit nagyon egyszerű, mint a printf helló vessző 103 00:04:37,430 --> 00:04:40,922 világ backslash n bezár idézet, közeli zárójel. 104 00:04:40,922 --> 00:04:42,630 És akkor csak a jó intézkedés, megyek 105 00:04:42,630 --> 00:04:45,380 hogy menjen előre, és szoros a php tag itt 106 00:04:45,380 --> 00:04:47,390 úgy néz ki, hogy minden szépen szép nyomtatott. 107 00:04:47,390 --> 00:04:50,780 >> És amint én kattintson a Mentés gombra, gedit valójában elég okos 108 00:04:50,780 --> 00:04:54,620 hogy nézd meg, hogy már az első sorban, és észre, ó, te írsz PHP kódot. 109 00:04:54,620 --> 00:04:56,710 Hadd szintaxis kiemelés azt a színek 110 00:04:56,710 --> 00:04:58,690 itt úgy, hogy áll egy kicsit többet. 111 00:04:58,690 --> 00:05:01,300 De most megyek le a terminál ablak. 112 00:05:01,300 --> 00:05:02,340 Majd nagyítás. 113 00:05:02,340 --> 00:05:06,860 >> Ezt a programot az úgynevezett "hello", így fogok tenni pont perjel hello, 114 00:05:06,860 --> 00:05:07,990 de engedély megtagadva. 115 00:05:07,990 --> 00:05:08,490 És bash. 116 00:05:08,490 --> 00:05:10,610 Igazából hallottam, hogy a dolog, amit egy pár héttel ezelőtt 117 00:05:10,610 --> 00:05:13,140 keretében Shellshock, azok a bogarak. 118 00:05:13,140 --> 00:05:16,240 >> De Engedély megtagadva láttunk előtt, talán más összefüggésben. 119 00:05:16,240 --> 00:05:19,060 Tudja valaki felidézni, hogy lehet, hogy valami fix 120 00:05:19,060 --> 00:05:22,100 ahol engedély megtagadva, mint ez? 121 00:05:22,100 --> 00:05:23,490 Mi az a parancs, legalább? 122 00:05:23,490 --> 00:05:24,159 >> STUDENT: Chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. MALAN: Igen, chmod, A váltással egy fájlt. 124 00:05:26,700 --> 00:05:30,171 És kapsz annál is inkább használt ez a következő héten a következő probléma 125 00:05:30,171 --> 00:05:30,670 beállítva. 126 00:05:30,670 --> 00:05:33,211 De most, én meg fog változni A mód, hogy nem olvasható, 127 00:05:33,211 --> 00:05:36,650 de hogy mindenki végrehajthatóságát kiváltságokat, a képesség 128 00:05:36,650 --> 00:05:37,710 futtatni ezt a fájlt. 129 00:05:37,710 --> 00:05:40,360 És fogok rendelni hogy a fájl helló. 130 00:05:40,360 --> 00:05:45,150 >> Ha én most nem pont perjel helló be, akkor látni, sőt, én a program, hello world. 131 00:05:45,150 --> 00:05:48,760 És milyen lépéseket tettem világosan Átugrani összesen? 132 00:05:48,760 --> 00:05:49,520 Fordítása. 133 00:05:49,520 --> 00:05:51,680 Szóval csak futott a program egészen egyszerűen. 134 00:05:51,680 --> 00:05:55,690 >> És kiderül, meg tudod csinálni a sok szintaxis emlékeztető C. 135 00:05:55,690 --> 00:06:03,400 Hadd menjen a mai kódot, amelyet tettem az én vhost könyvtárba 136 00:06:03,400 --> 00:06:05,250 itt, az igazi okok mi jön vissza. 137 00:06:05,250 --> 00:06:09,350 És fogok menni, mondjuk feltételek 1. 138 00:06:09,350 --> 00:06:12,450 >> És látni fogod itt, az első és Mindenekelőtt egy csomó hozzászólás. 139 00:06:12,450 --> 00:06:15,240 De ez valójában újbóli létrehozása PHP 140 00:06:15,240 --> 00:06:18,960 program tettük hét az egyik az úgynevezett feltételek 1.c 141 00:06:18,960 --> 00:06:20,690 ahol a célra életében ez a program 142 00:06:20,690 --> 00:06:22,950 látszólag kérni a felhasználó egy egész szám 143 00:06:22,950 --> 00:06:25,270 és majd némi bolyhos elemzés rajta, ahol 144 00:06:25,270 --> 00:06:29,510 azt mondod, ha ez pozitív, vagy negatív vagy nulla. 145 00:06:29,510 --> 00:06:34,220 És, hogy ezt csak azért, mert fel, kivéve talán egy kis részlet, 146 00:06:34,220 --> 00:06:37,150 ez megkülönböztethetetlen eddig a C. 147 00:06:37,150 --> 00:06:39,930 >> Mi az az egy jellegzetes hogy itt talán kiugrik 148 00:06:39,930 --> 00:06:41,410 rád, mint egy kicsit más? 149 00:06:41,410 --> 00:06:42,160 Talán két dolgot. 150 00:06:42,160 --> 00:06:42,660 Igen? 151 00:06:42,660 --> 00:06:44,070 >> Diák: dollár jel n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. MALAN: Igen. 153 00:06:44,944 --> 00:06:46,210 Így dollár jel n jelen van. 154 00:06:46,210 --> 00:06:48,120 És a dollár jeleket, mint látni fogjuk, mennek 155 00:06:48,120 --> 00:06:51,460 hogy egy fix elejére minden változót a PHP. 156 00:06:51,460 --> 00:06:54,250 Ez mind jó és bad-- jó hogy ez a fajta nyilvánvaló, mi a 157 00:06:54,250 --> 00:06:56,797 a változó, rossz, hogy ez az még egy dolog, hogy írja. 158 00:06:56,797 --> 00:06:58,630 És van egy másik dolog, amit még nem egészen 159 00:06:58,630 --> 00:07:00,876 látott, legalábbis ez a helyesírás. igen? 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 nem láttunk, önmagában, a C, még akkor is létezik valami 163 00:07:06,550 --> 00:07:09,530 Hasonló, de már használt getstring, és ez a párja. 164 00:07:09,530 --> 00:07:12,950 Szóval, ha megyek ebbe könyvtár, amely történetesen, 165 00:07:12,950 --> 00:07:18,030 ahogy leírom egy kicsit az én vhost könyvtár és a forrás A könyvtár, 166 00:07:18,030 --> 00:07:22,730 és megyek előre, és nem pont perjel conditions-- whoops-- pont perjel 167 00:07:22,730 --> 00:07:26,710 feltételek 1., majd meglátod, újra, ugyanaz issue-- engedély megtagadva. 168 00:07:26,710 --> 00:07:33,610 >> Hadd nagyítás, és nem chmod a plusz x feltételeiről, pont perjel feltételek. 169 00:07:33,610 --> 00:07:35,222 Szeretnék egy egész, kérem, 50. 170 00:07:35,222 --> 00:07:36,930 És mi volna játszani ezt a játék egész nap. 171 00:07:36,930 --> 00:07:39,140 Meg fog viselkedni pontosan mint ahogy az első héten. 172 00:07:39,140 --> 00:07:42,860 >> OK, így nem minden más, kivéve Nem csak, hogy enyhe kis szintaxis, 173 00:07:42,860 --> 00:07:45,490 de a tetején, megint volt ez a vonal, amely 174 00:07:45,490 --> 00:07:49,760 engedélyezve, hogy hozzon létre valamit, ami úgy néz ki, mint egy C program neve hello, 175 00:07:49,760 --> 00:07:51,150 nevezett feltételek 1. 176 00:07:51,150 --> 00:07:54,520 De ez nem 0-és is Én végrehajtó közvetlenül. 177 00:07:54,520 --> 00:07:57,620 Ez helyette futtatása tolmács, akinek a neve 178 00:07:57,620 --> 00:07:59,440 történetesen azonos a nyelvet. 179 00:07:59,440 --> 00:08:04,970 A program neve a PHP, és a kód vonal alatt az egyik, hogy telt bele. 180 00:08:04,970 --> 00:08:07,740 >> Tehetünk még egy meglehetősen egyszerű Például emlékeztető valami 181 00:08:07,740 --> 00:08:09,240 mi hete. 182 00:08:09,240 --> 00:08:12,020 Ismét, ez egy fajta tetszőleges kódrészletet 183 00:08:12,020 --> 00:08:14,000 hogy látszólag nem mit, ha elindul? 184 00:08:14,000 --> 00:08:15,625 Mi ez a nyomdába, feltehetően? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Így kezdetben on line 16, ez akartam mondani x ma 2, valószínűleg. 187 00:08:28,250 --> 00:08:30,920 % D ugyanaz, mint $ i A printf. 188 00:08:30,920 --> 00:08:33,460 Tehát akkor ez kocka, pont, pont, pont, a 17. sorban. 189 00:08:33,460 --> 00:08:36,299 Aztán sorban jelenik meg 18 hívni egy függvény Cubed. 190 00:08:36,299 --> 00:08:37,600 És hol van Cubed meghatározása? 191 00:08:37,600 --> 00:08:40,319 >> Nos, úgy néz ki, mint a sorban a 25, így ez még nem minden, hogy a különböző. 192 00:08:40,319 --> 00:08:42,610 Van néhány megjegyzést a fenti , de a legtöbb esetben, 193 00:08:42,610 --> 00:08:45,370 ez egy meglehetősen egyszerű számhordozás vagy átalakítás 194 00:08:45,370 --> 00:08:48,470 A C programot a PHP verzió. 195 00:08:48,470 --> 00:08:52,670 De ma már egy pár különbségek talán kellene ugrani. 196 00:08:52,670 --> 00:08:56,100 Mi mást is különbözik, hogyan Lehet írni ugyanezt a programot a C? 197 00:08:56,100 --> 00:08:57,900 >> Diák: [hallható]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. MALAN: Van nem prototípus up tetején. 199 00:09:00,070 --> 00:09:03,210 Így PHP-- és őszintén szólva, a Sok modern languages-- 200 00:09:03,210 --> 00:09:06,920 sokkal okosabbak, és több hasznos mint a C fordító, hogy 201 00:09:06,920 --> 00:09:09,740 lehet, hogy a funkció itt, Ön nem tud egy függvény idelent 202 00:09:09,740 --> 00:09:12,740 és a tolmács megy ugye az olvasás mellett 203 00:09:12,740 --> 00:09:16,010 az egész fájlt, mielőtt úgy dönt, hogy néhány funkció nem létezik. 204 00:09:16,010 --> 00:09:17,970 Szóval szép javulás évvel később. 205 00:09:17,970 --> 00:09:22,126 De van még valami, más eltérő vagy hiányzik itt. 206 00:09:22,126 --> 00:09:22,626 Igen? 207 00:09:22,626 --> 00:09:25,084 >> Diák: [hallható]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. MALAN: Nem kell állapítsa meg, hogy milyen típusú változók, 209 00:09:27,750 --> 00:09:31,780 így majd meglátjuk, hogy nemsokára Különböző típusú PHP 210 00:09:31,780 --> 00:09:34,970 de nem kell adnod, ami szintén jó és rossz. 211 00:09:34,970 --> 00:09:36,623 És van még egy dolog hiányzik. 212 00:09:36,623 --> 00:09:37,430 >> Diák: Nincs könyvtárak. 213 00:09:37,430 --> 00:09:38,630 >> David J. MALAN: Nincs könyvtárak. 214 00:09:38,630 --> 00:09:39,350 OK, ez szép. 215 00:09:39,350 --> 00:09:40,540 Mi sokkal többet ki a dobozból. 216 00:09:40,540 --> 00:09:43,373 Tehát valójában sokkal több dolgok, mint gondoltam volt más. 217 00:09:43,373 --> 00:09:44,350 Mit szólnál módon vissza? 218 00:09:44,350 --> 00:09:46,032 Mi ez? 219 00:09:46,032 --> 00:09:46,740 Mondja még egyszer? 220 00:09:46,740 --> 00:09:47,960 >> STUDENT: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. MALAN: No mutatók. 222 00:09:49,270 --> 00:09:51,280 OK, legalábbis ebben a példában, nem. 223 00:09:51,280 --> 00:09:52,070 Ez igazságos. 224 00:09:52,070 --> 00:09:55,090 Tehát nem mutatók PHP valójában általában. 225 00:09:55,090 --> 00:09:58,730 Vannak úgynevezett referenciák, de nem fogunk túl sok időt töltenek ott. 226 00:09:58,730 --> 00:09:59,520 És mi még? 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 Szóval ez volt a nagy ügy Arra gondoltam. 230 00:10:02,768 --> 00:10:04,660 Figyeld meg, hogy nincs fő belépési pont. 231 00:10:04,660 --> 00:10:06,525 Egyszerűen írjuk be a kódot. 232 00:10:06,525 --> 00:10:08,400 És ez tulajdonképpen lesz előnyös 233 00:10:08,400 --> 00:10:10,560 amikor átmenet egy pillanatra, hogy valóban használ 234 00:10:10,560 --> 00:10:13,980 ez ugyanazon a nyelven web-alapú programozás, amelyhez 235 00:10:13,980 --> 00:10:16,580 Nem akarom, hogy csak egyetlen belépési pont. 236 00:10:16,580 --> 00:10:19,980 Lehet, szeretnénk, hogy egy csomó URL-ek, egy csomó különböző fájlok 237 00:10:19,980 --> 00:10:22,930 minden vevő a felhasználói és végterméket állít elő. 238 00:10:22,930 --> 00:10:27,130 >> De itt van a nagyon szomorú Például, hogy megígértem utoljára, 239 00:10:27,130 --> 00:10:30,130 vagyis ebben a mappában itt, helyesírási hibák. 240 00:10:30,130 --> 00:10:33,680 Tehát ebben a fájlban helyesírás, amit Nem túl sok időt töltenek a van 241 00:10:33,680 --> 00:10:37,870 lényegében egy porting--, P-O-R-T-vel. Ez csak az adott szó, ha, mondjuk, 242 00:10:37,870 --> 00:10:40,800 átalakítani egy nyelvet a másik kézzel általában. 243 00:10:40,800 --> 00:10:45,680 >> Ez a portolása PC változata helyesírás származó PSET 5. 244 00:10:45,680 --> 00:10:48,856 És lényegében megpróbálta átalakítani azt soronként minél jobban tudok. 245 00:10:48,856 --> 00:10:51,730 Tehát, ha úgy tetszik ez a fajta dolog, valójában ér egy bizonyos ponton 246 00:10:51,730 --> 00:10:54,229 húzza mindkettőt fel egymás oldalsó és látta, hogy mi ugyanaz 247 00:10:54,229 --> 00:10:55,230 és mi más. 248 00:10:55,230 --> 00:10:57,510 De ők átkozottul hasonlóak. 249 00:10:57,510 --> 00:11:00,110 Ha emlékszel, mi helyesírás még nézett ki, mint, 250 00:11:00,110 --> 00:11:02,110 még akkor is ha nem meg kell változtatni ezt a fájlt, 251 00:11:02,110 --> 00:11:04,860 ez elég hasonló szerkezetileg csak egy pár 252 00:11:04,860 --> 00:11:06,200 A változtatások itt-ott. 253 00:11:06,200 --> 00:11:10,140 >> Tehát ez csak azt jelenti, hogy ez elég egyszerű átalakítani helyesírás 254 00:11:10,140 --> 00:11:12,000 C-ről a PHP. 255 00:11:12,000 --> 00:11:15,390 De a szótárban, ott van valami még vonzóbb. 256 00:11:15,390 --> 00:11:19,270 Hadd menjek előre, és hozzon létre saját dictionary.php fájlt. 257 00:11:19,270 --> 00:11:24,010 Így kissé különbözik, hogy fogjuk nevezni .php helyett .c. 258 00:11:24,010 --> 00:11:26,980 Mivel ez egy PHP fájl, I do-- kissé annoyingly-- van 259 00:11:26,980 --> 00:11:30,132 kezdeni a fájlt a php tag, mint ezt. 260 00:11:30,132 --> 00:11:32,340 És én megyek előre és határozza meg a néhány funkciót. 261 00:11:32,340 --> 00:11:35,770 Nevezett funkció ellenőrzés, amely fog tartani egy szót, mint korábban. 262 00:11:35,770 --> 00:11:37,520 De ez az érvelés megy, hogy a dollár 263 00:11:37,520 --> 00:11:39,840 aláírni, mert mi, megint, a PHP. 264 00:11:39,840 --> 00:11:42,350 Egy másik funkció dictionary.c volt terhelés 265 00:11:42,350 --> 00:11:47,120 és ez volt a neve a szótár, úgyhogy kap, hogy a funkció kész. 266 00:11:47,120 --> 00:11:50,920 >> Egy másik a dictionary.c volt mi? 267 00:11:50,920 --> 00:11:54,580 Mérete volt az egyik legszebb is, a legalábbis ha tartani néhány változó körül. 268 00:11:54,580 --> 00:11:57,830 így méret csak vissza kell térnie a változó. 269 00:11:57,830 --> 00:11:59,090 És ott volt kirak. 270 00:11:59,090 --> 00:12:02,830 >> Így volt ez a négy funkciók probléma készlet 5 271 00:12:02,830 --> 00:12:06,770 hogy a megvalósításához szükséges Néhány adat szerkezet vagy szerkezetek. 272 00:12:06,770 --> 00:12:10,170 Szóval megígérte, hogy PHP, kijelenthetjük 273 00:12:10,170 --> 00:12:14,490 egy hash tábla, például, minden könnyebben. 274 00:12:14,490 --> 00:12:17,377 Sőt, ha én szeretnék egy hash tábla, Én csak megyek, mint hogy 275 00:12:17,377 --> 00:12:18,460 és ott van az én hash tábla. 276 00:12:18,460 --> 00:12:21,555 És ez a hang, szomorú, hogy mi maradt ki az elmúlt időben. 277 00:12:21,555 --> 00:12:23,930 És tudod mit, ha akartam a változó méretű, jól, 278 00:12:23,930 --> 00:12:25,867 ez még nem minden hogy eltér a C, 279 00:12:25,867 --> 00:12:27,450 de én megyek előre, és csinálni. 280 00:12:27,450 --> 00:12:28,630 És észre nincs adat típusát. 281 00:12:28,630 --> 00:12:31,180 És én megyek vissza később, és valóban hozzá néhány megjegyzést itt. 282 00:12:31,180 --> 00:12:32,480 De mi a teher? 283 00:12:32,480 --> 00:12:35,780 >> Ha a dollár jel szótár a neve a fájl 284 00:12:35,780 --> 00:12:39,600 és én tényleg szeretnék betölteni szavakat a táblázat most, 285 00:12:39,600 --> 00:12:42,360 Én valójában nem valami meglehetősen egyszerű. 286 00:12:42,360 --> 00:12:44,880 One-- és ez minorly annoying-- PHP 287 00:12:44,880 --> 00:12:47,710 meg kell határozni belül egy függvény, ha 288 00:12:47,710 --> 00:12:51,060 szeretnénk elérni egyes globális változó, ami kívül definiált. 289 00:12:51,060 --> 00:12:53,530 >> De ez nem különösebben érdekes most. 290 00:12:53,530 --> 00:12:57,920 Mi ennél is érdekesebb, ez az egyes konstrukció, amit a fent utoljára. 291 00:12:57,920 --> 00:13:01,880 És kiderül, hogy a PHP rendelkezik egy olyan funkcióval nevű fájlt, amelynek célja az életben 292 00:13:01,880 --> 00:13:05,550 hogy nyissa meg a fájlt, és olvasni annak minden sort egy tömbbe 293 00:13:05,550 --> 00:13:06,840 és adja vissza őket. 294 00:13:06,840 --> 00:13:12,170 >> Ami azt tudom csinálni szótár így hogy most már ténylegesen, amikor hívom fájl 295 00:13:12,170 --> 00:13:15,472 ez lesz, hogy kézzel vissza tömb szavak a fájlból. 296 00:13:15,472 --> 00:13:16,430 Ez nem annyira jó. 297 00:13:16,430 --> 00:13:20,130 Ez még mindig lesz egy vonal A szavak, valami lineáris. 298 00:13:20,130 --> 00:13:23,880 De lehet menni előre, és navigálhat mint minden ilyen szavak használata 299 00:13:23,880 --> 00:13:25,710 hogy szintaxis láttuk röviden utoljára. 300 00:13:25,710 --> 00:13:27,940 És látni fogod, hogy több a közelgő PSET. 301 00:13:27,940 --> 00:13:32,070 >> De most van egy hurok iterációjával az egyes szó a szótárban. 302 00:13:32,070 --> 00:13:36,100 És minden iterációban felidézni vagyok amelyben az aktuális szót "szót." 303 00:13:36,100 --> 00:13:39,790 És ez fog vinni hogy egy szót a szótár 304 00:13:39,790 --> 00:13:43,530 lesz szó találgatás "igazi". 305 00:13:43,530 --> 00:13:44,740 Ez az én insert funkció. 306 00:13:44,740 --> 00:13:46,661 Ez az én terhelés funkció az én szótár. 307 00:13:46,661 --> 00:13:49,410 Most egy kicsit cheat, mert tudod, mi van valójában 308 00:13:49,410 --> 00:13:52,920 fordított perjel n a végén a szavak hogy talán érdemes megszabadulni, 309 00:13:52,920 --> 00:13:56,380 de ez nem probléma, mert a PHP a nevezett funkció chop ami szó 310 00:13:56,380 --> 00:13:58,480 karaj le egy karakter a legvégén. 311 00:13:58,480 --> 00:13:59,400 Tehát nem probléma. 312 00:13:59,400 --> 00:14:02,199 Mentünk előre, és valóban rövidített, hogy csak ezt. 313 00:14:02,199 --> 00:14:05,240 És most talán érdemes nyomon követni méret, úgyhogy legalább do this-- 314 00:14:05,240 --> 00:14:05,835 méret ++. 315 00:14:05,835 --> 00:14:07,339 Én meg tudom csinálni, mint korábban. 316 00:14:07,339 --> 00:14:10,380 És akkor ez valószínűleg fog pont jó, azért, hogy a vissza igaz. 317 00:14:10,380 --> 00:14:10,930 Kész. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [Nevetés] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. MALAN: OK. 321 00:14:14,420 --> 00:14:16,628 Fogjuk csinálni újra a következő PSET is. 322 00:14:16,628 --> 00:14:18,730 Szóval mi a méret? 323 00:14:18,730 --> 00:14:22,080 Nos, ez remélhetőleg hamarosan ahogy az elvárható utoljára, 324 00:14:22,080 --> 00:14:24,460 bár meg kell csinálni ez a hülye globális dolog. 325 00:14:24,460 --> 00:14:26,610 Ez csak egy tárgy a a nyelv design. 326 00:14:26,610 --> 00:14:28,450 >> De nézd meg egy kicsit érdekes. 327 00:14:28,450 --> 00:14:31,420 Tehát, ha én átadott dollár jelentkezzen szó, először 328 00:14:31,420 --> 00:14:34,060 szeretné, hogy hozzáférjenek a hogy globális változót táblázat. 329 00:14:34,060 --> 00:14:36,700 És most, ha azt akarom, hogy ellenőrizheti, hogy egy szó van, 330 00:14:36,700 --> 00:14:44,350 Tudom csak mondani, ha igaz az, hogy a következő van beállítva a táblázatban, 331 00:14:44,350 --> 00:14:49,957 akkor megy előre és vissza true; más, return false. 332 00:14:49,957 --> 00:14:51,180 Kész. 333 00:14:51,180 --> 00:14:52,440 A másik fele PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> Rendben, így megint én vagyok vágás néhány sarkok. 335 00:14:54,540 --> 00:14:56,831 A tisztesség, talán érdemes eltölteni néhány másodperc 336 00:14:56,831 --> 00:14:58,300 ezen a végrehajtás. 337 00:14:58,300 --> 00:15:01,860 És talán nem kell gúnyolni a órát teszel a PSET annyira. 338 00:15:01,860 --> 00:15:04,045 Tehát strtolower egy függvény. 339 00:15:04,045 --> 00:15:06,670 Valami hasonló egzisztencialista C-ben, legalábbis a karakterek, 340 00:15:06,670 --> 00:15:08,560 de a PHP van egy egész sor verzió. 341 00:15:08,560 --> 00:15:11,226 >> Ez lesz az erő minden kisbetűs, amit néhányan közületek 342 00:15:11,226 --> 00:15:14,944 tette volna, hogy milyen canonicalize te üzembe a szótárban. 343 00:15:14,944 --> 00:15:16,360 És most akkor ezt a C is. 344 00:15:16,360 --> 00:15:17,780 Ennek semmi köze a PHP. 345 00:15:17,780 --> 00:15:20,260 >> De minden alkalommal, amikor van Logikai állapot, 346 00:15:20,260 --> 00:15:22,680 mint valami on-line 10 van, amely csak 347 00:15:22,680 --> 00:15:27,145 fogja értékelni, a valós vagy hamis, és az, ha más jól 348 00:15:27,145 --> 00:15:33,620 visszatér igaz vagy hamis, tudtam egyszerűen valóban ez szexisebb 349 00:15:33,620 --> 00:15:38,360 és csak nem valami ilyesmi. 350 00:15:38,360 --> 00:15:40,500 Szóval, hogy van az én ellenőrzés funkció. 351 00:15:40,500 --> 00:15:42,560 Jobb, ha a logikai vissza igaz vagy hamis, 352 00:15:42,560 --> 00:15:44,630 nézzük csak vissza azonnal. 353 00:15:44,630 --> 00:15:47,340 >> És van néhány más trükk Tudtam, hogy itt-ott. 354 00:15:47,340 --> 00:15:51,380 Load-- kirak, mellesleg, ez kész. 355 00:15:51,380 --> 00:15:52,850 Semmi köze van. 356 00:15:52,850 --> 00:15:55,840 Mivel az összes memória PHP és sok más nyelven 357 00:15:55,840 --> 00:15:57,570 valójában kezeli az Ön számára. 358 00:15:57,570 --> 00:16:00,330 Így mivel a C, mint amit tanult fájdalmasan, 359 00:16:00,330 --> 00:16:04,700 bármit malloc vagy calloc vagy realloc, akkor szabad magát. 360 00:16:04,700 --> 00:16:08,770 Bármi, amit fopen, meg kell fclose, ily módon a forrásokat végül felszabadult 361 00:16:08,770 --> 00:16:11,690 és eszközök, mint a Valgrind nem észre, és nem panaszkodnak, 362 00:16:11,690 --> 00:16:13,570 ami egy jó dolog fut rajtuk. 363 00:16:13,570 --> 00:16:16,190 >> De biztosan, ott kell néhány fogás, ugye? 364 00:16:16,190 --> 00:16:19,400 Ellenkező esetben, a fajta hiábavaló egy csomó hét. 365 00:16:19,400 --> 00:16:23,270 Szóval van-e több okból Ezért egyfajta ezt röppálya, 366 00:16:23,270 --> 00:16:24,440 de van egy trade-off. 367 00:16:24,440 --> 00:16:25,820 Igaz, ez volt a tematikus. 368 00:16:25,820 --> 00:16:29,690 >> Tehát mi talán a trade-off itt mozgó, C-ről a PHP? 369 00:16:29,690 --> 00:16:33,250 Olyan, mint minden győzelem eddig nem egy kis csúnyaság itt vagy ott. 370 00:16:33,250 --> 00:16:34,040 Igen. 371 00:16:34,040 --> 00:16:34,700 Mi ez? 372 00:16:34,700 --> 00:16:36,064 >> Diák: [hallható] memóriát. 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 Nos, az a sebesség volt elég gyors. 376 00:16:40,720 --> 00:16:42,020 Jobb? 377 00:16:42,020 --> 00:16:44,320 De gyorsaság a program? 378 00:16:44,320 --> 00:16:45,580 OK, így ez egy korrekt pontot. 379 00:16:45,580 --> 00:16:50,930 >> Annak érdekében, hogy meg fog történni, azt előre cued fel mind a két próbálkozás megoldás, az egyik 380 00:16:50,930 --> 00:16:53,510 Volt a táblán egy try-alapú megoldás, 381 00:16:53,510 --> 00:16:55,510 és én, hogy ebben a könyvtárban van. 382 00:16:55,510 --> 00:16:58,510 Szóval egy pillanat, tudok menni előre, és futtatásához a King James Biblia, 383 00:16:58,510 --> 00:16:59,657 Enter használatával. 384 00:16:59,657 --> 00:17:01,990 És ez remélhetőleg helyes végrehajtás a végén, 385 00:17:01,990 --> 00:17:05,109 ad nekem időt, összesen 0,38 másodperc, hogy a 386 00:17:05,109 --> 00:17:07,270 egy kissé önkényes példa. 387 00:17:07,270 --> 00:17:09,270 >> És ha most megy ebbe második terminál ablak 388 00:17:09,270 --> 00:17:14,569 itt, ahol először kinyitotta gedit, legyen menjek a mai code-- amely ismét 389 00:17:14,569 --> 00:17:19,650 van ebben a könyvtárban here-- és hadd menjen előre, és fuss helyesírás. 390 00:17:19,650 --> 00:17:23,470 Szóval, csak hogy tisztázzuk, ez a PHP verzió. 391 00:17:23,470 --> 00:17:25,170 Én csak mutatja a tetején van. 392 00:17:25,170 --> 00:17:32,020 >> Tehát, ha én a helyesírás tilde CS50 PSET 5 szövegek, King James, írja. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 Ez még mindig gyorsabb, mint írás el a C, de a teljes idő 395 00:17:43,050 --> 00:17:47,650 az, közlemény, 0,93, míg a C-alapú végrehajtás 0,38. 396 00:17:47,650 --> 00:17:49,110 Szóval ez egy nem triviális különbség. 397 00:17:49,110 --> 00:17:51,100 >> És ez csak egy fájlt. 398 00:17:51,100 --> 00:17:53,480 Ha úgy döntesz, hogy fut a két programok, szemben a nagy tábla 399 00:17:53,480 --> 00:17:56,510 és van egy csomó bemenet tesztelt, ez biztosan összeadódnak. 400 00:17:56,510 --> 00:18:00,310 És ha lenne még nagyobb adathalmazok, ez is, akkor add fel az összes még. 401 00:18:00,310 --> 00:18:04,820 Szóval igen, fizet néhány ár A sebesség valóban ez a helyzet. 402 00:18:04,820 --> 00:18:05,470 Mi más? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Igen? 405 00:18:08,860 --> 00:18:10,340 >> Diák: összege RAM használat. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. MALAN: összege RAM használat. 407 00:18:11,756 --> 00:18:15,380 Szóval nem ad egy második gondoltam, amikor írom ezt a PHP 408 00:18:15,380 --> 00:18:17,300 változat, hogy mennyire memória voltam használ. 409 00:18:17,300 --> 00:18:22,080 Én teljesen elhalasztását, hogy a PHP magát, és aki azt írta, hogy a program. 410 00:18:22,080 --> 00:18:24,500 És hogy lehet rendben van, de ha én tényleg nagyon 411 00:18:24,500 --> 00:18:28,420 törődik szorította annyi teljesítmény az én program vagy az én website 412 00:18:28,420 --> 00:18:31,150 vagy ki bármilyen eszköz Építek, talán 413 00:18:31,150 --> 00:18:33,310 PHP, sőt, nem a megfelelő nyelvet. 414 00:18:33,310 --> 00:18:36,330 >> És valójában, ezért, az Például, sok webes servers-- 415 00:18:36,330 --> 00:18:38,980 a tényleges programok szolgálják fel web content-- 416 00:18:38,980 --> 00:18:41,810 nem PHP-ben íródott vagy Python vagy Ruby. 417 00:18:41,810 --> 00:18:44,630 Vannak írva, mint akkor most csinálni Pset 6, 418 00:18:44,630 --> 00:18:48,120 C így nyomja minden kis teljesítmény belőle 419 00:18:48,120 --> 00:18:50,780 és tényleg gyakorolja finomszemcsés felett mi 420 00:18:50,780 --> 00:18:52,980 alatt folyik a motorháztető, és nem csak úgy, hogy 421 00:18:52,980 --> 00:18:54,890 természetesnek néhány magasabb szintű adatok szerkezetét. 422 00:18:54,890 --> 00:18:58,071 >> Fontolja meg, miután az összes, aki PHP végrehajtott 423 00:18:58,071 --> 00:19:00,070 hogy fogalma a hash table-- valójában inkább 424 00:19:00,070 --> 00:19:04,260 megfelelően nevezik asszociatív array-- nem ő van valami ötlete, hogy milyen 425 00:19:04,260 --> 00:19:07,090 A bemenetek akkor lesz üzembe helyezése a szerkezet? 426 00:19:07,090 --> 00:19:08,260 Tehát nyilvánvalóan nem, ugye? 427 00:19:08,260 --> 00:19:10,340 Ez egy általános eszköz Az eszköztár, ami 428 00:19:10,340 --> 00:19:13,430 feltéve, hogy bárki, aki szeretne használni, és így biztosan 429 00:19:13,430 --> 00:19:17,680 nem lehet optimalizálni végül pontosan mit szeretne csinálni. 430 00:19:17,680 --> 00:19:21,180 >> Így a kereskedelem-fejlesztési időt talán offs-- különböznek, teljesítmény eltérhetnek, 431 00:19:21,180 --> 00:19:23,120 összetettsége vagy memóriahasználat eltérő lehet. 432 00:19:23,120 --> 00:19:24,820 És mit talál egyre inkább az, hogy van 433 00:19:24,820 --> 00:19:26,570 különbözni fog eszközök a kereskedelem. 434 00:19:26,570 --> 00:19:31,160 És valóban egy szuper többsége emberek utolsó projekteket ebben az osztályban, 435 00:19:31,160 --> 00:19:34,360 akár hiszed, akár nem, a C nem megy hogy a megfelelő nyelvet használja. 436 00:19:34,360 --> 00:19:37,880 >> És valójában, az egyik az elvitelre Végső soron minden osztály, mint ez 437 00:19:37,880 --> 00:19:40,510 az, hogy neked gondolkodás, nos, mit húzza le 438 00:19:40,510 --> 00:19:42,710 a polcon, ha azt szeretné, megoldani néhány problémát. 439 00:19:42,710 --> 00:19:46,720 És valóban, akkor át a hídon még inkább nézzük több nyelven 440 00:19:46,720 --> 00:19:47,920 még túl ma. 441 00:19:47,920 --> 00:19:50,530 >> Szóval átmenet most talán egy ismerős kontextusban 442 00:19:50,530 --> 00:19:52,480 az egy nyelv, mint a PHP. 443 00:19:52,480 --> 00:19:56,720 Ez némileg közös használatra A parancssorba írt szkriptek 444 00:19:56,720 --> 00:19:59,050 mint én, de sokkal, sokkal gyakoribb. 445 00:19:59,050 --> 00:20:02,350 És úgy tervezték, hogy kell használni fájlok formájában, amely rendszerint 446 00:20:02,350 --> 00:20:05,060 A .php-- de ez nem prerequisite-- 447 00:20:05,060 --> 00:20:07,990 hogy maguk létre webes tartalmat. 448 00:20:07,990 --> 00:20:11,310 >> Szóval hadd menjen előre, és nyissa meg a néhány példák készítettem előre. 449 00:20:11,310 --> 00:20:15,100 És ezek valójában egyfajta valódi történet, hogy az egyik első dolog, 450 00:20:15,100 --> 00:20:18,200 Amit valaha is tettem magamnak befejezése után CS50 és talán, azt hiszem, 451 00:20:18,200 --> 00:20:21,350 CS51 évvel ezelőtt az én szobatársam és én segítettek 452 00:20:21,350 --> 00:20:24,320 futtatni a gólya intramuralis sport program, amely abban az időben, 453 00:20:24,320 --> 00:20:28,610 még újonc, regisztráció különböző sport kitöltésével egy darab papírt, 454 00:20:28,610 --> 00:20:31,800 ahogy nevezték, séta át az udvaron, hogy Wigglesworth, 455 00:20:31,800 --> 00:20:34,030 és vidd módszerrel bizonyos Proctor ajtaja csepp. 456 00:20:34,030 --> 00:20:37,210 És akkor ő megy át őket, és aztán valóban írjon nekünk kézzel 457 00:20:37,210 --> 00:20:39,140 hogy regisztráltak sportolni. 458 00:20:39,140 --> 00:20:41,166 >> Olyan tisztán, lehetőséget javítására. 459 00:20:41,166 --> 00:20:44,040 Ezek a napok, akkor is kiderül, hogy csak Google Forms, de vissza a nap, 460 00:20:44,040 --> 00:20:46,914 kellett érinteni for-- ezt nem volt még, hogy a hosszú ago-- elérni 461 00:20:46,914 --> 00:20:49,410 a programozási nyelv, amit nem a PHP. 462 00:20:49,410 --> 00:20:51,200 Abban az időben, ez volt úgynevezett Perl, 463 00:20:51,200 --> 00:20:52,890 amely már kiment a divatból ettől. 464 00:20:52,890 --> 00:20:54,160 De az ötlet ugyanaz. 465 00:20:54,160 --> 00:20:58,940 >> És lényegében leültem, hogy megpróbálja a kikötőbe megy Perl verziók PHP, 466 00:20:58,940 --> 00:21:03,710 de teljes nyilatkozat, nem ad gondoltam, hogy az esztétika csak még. 467 00:21:03,710 --> 00:21:04,960 Tehát itt van egy weboldal. 468 00:21:04,960 --> 00:21:05,670 Ez a fájl. 469 00:21:05,670 --> 00:21:09,470 Ha nagyítás, a látszólag úgynevezett froshim0.php 470 00:21:09,470 --> 00:21:12,060 csak azért, mert ez az első Például ebben a sorozatban. 471 00:21:12,060 --> 00:21:15,970 És észre, hogy van, amit úgy tűnik, hogy egy nagyon csúnya HTML űrlap, 472 00:21:15,970 --> 00:21:18,680 de az űrlap érdekes mert lehetővé teszi 473 00:21:18,680 --> 00:21:21,910 nekem, hogy felhasználói a böngészőben. 474 00:21:21,910 --> 00:21:27,730 >> Most, amikor utoljára volt a formában, Kinek mi benyújtja a lekérdezési paraméter, 475 00:21:27,730 --> 00:21:30,450 a sor paramétert nevezték? 476 00:21:30,450 --> 00:21:31,330 Szóval a Google, ugye? 477 00:21:31,330 --> 00:21:34,090 Teljesen punted az elképzelést, csinál semmit azzal bemenet. 478 00:21:34,090 --> 00:21:36,160 >> De ma, kezdjük nyomtat. 479 00:21:36,160 --> 00:21:39,420 És a viselkedés fogok látni Itt kezdetben elég triviális. 480 00:21:39,420 --> 00:21:42,980 David, megnézem ki a nemek Itt mondjuk Matthews itt. 481 00:21:42,980 --> 00:21:43,800 Nem leszek kapitány. 482 00:21:43,800 --> 00:21:45,410 Megyek kattintson Register. 483 00:21:45,410 --> 00:21:50,720 És észre, hogy az URL-cím változott regisztrálni, 0.php, 484 00:21:50,720 --> 00:21:52,310 és akkor ott van ez a csúnya szöveget. 485 00:21:52,310 --> 00:21:54,460 Nem adtam gondoltam, hogy formázását e. 486 00:21:54,460 --> 00:21:59,900 >> De mi az érdekes, hogy a három értékeket látszólag telt el. 487 00:21:59,900 --> 00:22:02,960 Ez a PHP fajta egyenértékű printf-- 488 00:22:02,960 --> 00:22:06,330 majd meglátjuk, mi ez tényleg hívják Egy bit-- hogy csak kinyomtatja 489 00:22:06,330 --> 00:22:08,300 amit át bele. 490 00:22:08,300 --> 00:22:11,414 Tehát ez azt sugallja, hogy ez a forma volt legalább három területen rá, 491 00:22:11,414 --> 00:22:12,580 és láttál írja őket. 492 00:22:12,580 --> 00:22:15,739 Az egyik volt a neve, egy pedig nem, egy volt kollégium. 493 00:22:15,739 --> 00:22:18,780 És kapitány sem kap küldött a szerver, mert nem ellenőrizte azt. 494 00:22:18,780 --> 00:22:22,150 >> Tehát ez azt látszólag, ha be dolgokat az interneten, 495 00:22:22,150 --> 00:22:26,830 akkor nemcsak az URL néha change-- néha nem. 496 00:22:26,830 --> 00:22:30,330 Tény, hogy a fájl neve megváltozott, de mi hiányzik a URL 497 00:22:30,330 --> 00:22:32,861 hogy nem látni utoljára a Google. 498 00:22:32,861 --> 00:22:33,360 Igen? 499 00:22:33,360 --> 00:22:34,380 >> Diák: Nem query string 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. MALAN: Nincs query string. 501 00:22:35,220 --> 00:22:37,270 Nincs kérdőjel valami. 502 00:22:37,270 --> 00:22:40,050 Nincs kérdőjel q egyenlő macska, ahogy a múltkor. 503 00:22:40,050 --> 00:22:42,170 És biztosan nem kérdőjel neve megegyezik 504 00:22:42,170 --> 00:22:46,310 David vagy kollégiumi egyenlő Matthews, igen, hol az, hogy minden megy? 505 00:22:46,310 --> 00:22:51,290 >> Nos, hadd menjek vissza a gedit itt és nyissa fel az első ilyen fájlok 506 00:22:51,290 --> 00:22:57,020 én vhost, helyi gazda, az állami könyvtár itt és bemegy froshim0. 507 00:22:57,020 --> 00:23:02,060 Így kiderül, hogy szinte minden oldal csak HTML. 508 00:23:02,060 --> 00:23:05,410 És ez lehet ismeretlen az Ön számára, de hamarosan lesz olyan a PSET 6 509 00:23:05,410 --> 00:23:07,370 és PSET a 7. és a 8. PSET. 510 00:23:07,370 --> 00:23:09,160 De ez csak egy HTML oldalt. 511 00:23:09,160 --> 00:23:12,400 >> És érdekes dolgokat úgy tűnik, hogy itt van. 512 00:23:12,400 --> 00:23:16,290 A form tag, akinek action attribútum értéke 0 regiszter. 513 00:23:16,290 --> 00:23:18,890 Ezért, amikor benyújtani ez, ez megy, hogy a fájl. 514 00:23:18,890 --> 00:23:20,620 De a módszer különböző today-- post. 515 00:23:20,620 --> 00:23:23,120 Így kiderül, ott van legalább két módszer az interneten használt 516 00:23:23,120 --> 00:23:24,911 hogy adjon tájékoztatást tól böngésző szerverre. 517 00:23:24,911 --> 00:23:25,980 Get mondja az URL. 518 00:23:25,980 --> 00:23:27,950 Hozzászólás mondja másutt. 519 00:23:27,950 --> 00:23:30,570 És mikor és miért lehet, hogy te valóban szeretne egy weboldal 520 00:23:30,570 --> 00:23:34,110 használni, akkor helyette hozzászólás Az kap, csak ösztönösen? 521 00:23:34,110 --> 00:23:37,080 Bármely weboldal. 522 00:23:37,080 --> 00:23:42,010 Milyen adatokat kell átadni csak a következtetés most postán szemben 523 00:23:42,010 --> 00:23:45,184 kap, ha láttuk a két különbség? 524 00:23:45,184 --> 00:23:46,350 Diák: [hallható] biztonságos. 525 00:23:46,350 --> 00:23:47,790 DAVID J. MALAN: Ha azt szeretné, valami, hogy biztonságos legyen. 526 00:23:47,790 --> 00:23:50,360 Szóval lehet, írja be a jelszót egy weboldal, a hitelkártya 527 00:23:50,360 --> 00:23:53,030 egy weboldal lenne fajta ilyen szuboptimális 528 00:23:53,030 --> 00:23:56,220 ha a böngésző tesz, hogy a értékét belsejében az URL. 529 00:23:56,220 --> 00:23:57,680 Miért? 530 00:23:57,680 --> 00:24:00,059 Látod azt, ami nem Úgy tűnik, hogy egy ilyen nagy dolog, 531 00:24:00,059 --> 00:24:03,350 de esély akkor elég gyakran séta távol a számítógép vagy a számítógép használat 532 00:24:03,350 --> 00:24:05,310 laborok, és így valaki más, vagy akár a szobatárs 533 00:24:05,310 --> 00:24:08,220 könnyen járni, és látni hogy személyes adatokat. 534 00:24:08,220 --> 00:24:10,220 Ha küld egy e-mailt az interneten keresztül, akkor valószínűleg 535 00:24:10,220 --> 00:24:12,350 Nem akarom, hogy az adatok befejezés fel az URL-ben is. 536 00:24:12,350 --> 00:24:15,266 És így van tetszőleges számú oka Ezért érdemes tedd ide. 537 00:24:15,266 --> 00:24:18,610 És photos-- jobb, én még csak nem is egészen elképzelni, hogyan venne egy grafikus, 538 00:24:18,610 --> 00:24:21,480 mint a JPEG, és tedd be egy URL-t. 539 00:24:21,480 --> 00:24:22,330 Meg tudja csinálni. 540 00:24:22,330 --> 00:24:25,840 Van módja kódoló, de ez csak nem egyszerű így. 541 00:24:25,840 --> 00:24:29,030 >> Jelentkezzen még 0 valójában nagyon underwhelming. 542 00:24:29,030 --> 00:24:31,610 Minden szó szerint azt mondja, ez az. 543 00:24:31,610 --> 00:24:35,910 Ez kiírja belsejében néhány HTML címkék a következőket. 544 00:24:35,910 --> 00:24:38,640 Van egy PHP címke itt beágyazva a pre tag. 545 00:24:38,640 --> 00:24:42,300 "Pre" csak azt jelenti, előre formázott szöveget, mono elhelyezkedő, mint egy írógép. 546 00:24:42,300 --> 00:24:44,836 >> Printr a nyomtatási rekurzív függvény. 547 00:24:44,836 --> 00:24:46,710 És akkor itt van ez a Érdekes dolog itt. 548 00:24:46,710 --> 00:24:48,835 És vissza fog jönni erre mert ott mások, 549 00:24:48,835 --> 00:24:51,140 de dollár jel aláhúzás utáni tűnik 550 00:24:51,140 --> 00:24:56,110 a változót a PHP, ahol bármit elküldte a böngésző szerver 551 00:24:56,110 --> 00:24:58,040 lesz tárolva az Ön számára. 552 00:24:58,040 --> 00:25:00,930 És majd meglátjuk, hogyan lehet eljutni hogy az információ hamarosan. 553 00:25:00,930 --> 00:25:04,000 >> De először menjünk vissza Egy kissé eltérő példa. 554 00:25:04,000 --> 00:25:09,050 Megy register-- vagy inkább, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 amely úgy néz ki, egy kicsit más. 556 00:25:10,470 --> 00:25:12,670 Vettem egy kicsit erőfeszítés formázás, 557 00:25:12,670 --> 00:25:14,370 annak ellenére, hogy még mindig elég ronda. 558 00:25:14,370 --> 00:25:16,990 De én megyek előre és írja be a "David" most. 559 00:25:16,990 --> 00:25:17,850 Férfi. 560 00:25:17,850 --> 00:25:19,360 Majd jelölje ki a "kapitány", ebben az időben. 561 00:25:19,360 --> 00:25:20,660 Megteszünk Matthews. 562 00:25:20,660 --> 00:25:22,430 És regisztrálja. 563 00:25:22,430 --> 00:25:24,110 >> És ezúttal azt mondja, hm, nem igazán. 564 00:25:24,110 --> 00:25:26,180 Rendben, mi a regisztrációhoz 1? 565 00:25:26,180 --> 00:25:30,509 Hadd menjek nyitott nyilvántartásba 1 és-- hm. 566 00:25:30,509 --> 00:25:32,300 Rendben, ez érdekes, és ez a 567 00:25:32,300 --> 00:25:34,880 egy lépcsőfok most felé több érdekes program. 568 00:25:34,880 --> 00:25:38,970 >> Figyeljük meg a tetején ez a fájl a PHP tag, valamint néhány megjegyzést. 569 00:25:38,970 --> 00:25:42,590 És ezek, mert most, a figyelemelterelés úgyhogy csak megszabadulni ezeket az észrevételeket 570 00:25:42,590 --> 00:25:47,070 mint ők a C és azt állítom, ezzel kódrészletet egy megjegyzést 571 00:25:47,070 --> 00:25:49,280 hogy ez a kód érvényesítése benyújtására. 572 00:25:49,280 --> 00:25:51,690 >> Nos, kiderült, hogy változók, mint a dollár jel 573 00:25:51,690 --> 00:25:53,739 aláhúzás poszton az úgynevezett super globals. 574 00:25:53,739 --> 00:25:55,530 Olyanok, mint ezek speciális globális változók 575 00:25:55,530 --> 00:25:58,840 hogy csak omni-jelenleg elérhető a programon belül. 576 00:25:58,840 --> 00:26:03,870 És akkor a szögletes zárójel jelölés az index beléjük nem számokkal 577 00:26:03,870 --> 00:26:07,460 mint 0, 1, 2, 3, de a tényleges szavak. 578 00:26:07,460 --> 00:26:12,100 >> Szóval lehet gondolni dollár jel aláhúzás posztot egyfajta hash tábla 579 00:26:12,100 --> 00:26:15,920 hogy akkor adja át a kulcsot, a keresési szó-a szögletes zárójelek között, 580 00:26:15,920 --> 00:26:19,370 és ez megy, hogy vissza a értéket, amit a felhasználó valójában biztosított. 581 00:26:19,370 --> 00:26:21,210 PHP függvény hívott, hogy csak üres 582 00:26:21,210 --> 00:26:23,720 azt mondja, igen, vagy nem, ez változó üres-e vagy sem. 583 00:26:23,720 --> 00:26:27,250 Van a kettős bárok, ami csak azt jelenti, vagy, mint C. 584 00:26:27,250 --> 00:26:31,740 >> Tehát valójában ez a 4. sorban csak mondván, ha a felhasználó nem ad nevet 585 00:26:31,740 --> 00:26:36,540 vagy nem ad a nemi vagy nem hogy a kollégiumi, megy előre, és átirányítja őt 586 00:26:36,540 --> 00:26:38,184 vagy őt át ezen a vonalon van. 587 00:26:38,184 --> 00:26:40,600 Szóval ez egy kicsit rejtélyes, de ez csak azt jelenti, szó szerint 588 00:26:40,600 --> 00:26:43,330 vissza erre a helyre, így a felhasználó Punts 589 00:26:43,330 --> 00:26:45,420 vissza oda, ő jött. 590 00:26:45,420 --> 00:26:47,880 De ez egy kicsit nem elegáns az, hogy én kemény kódolt azt. 591 00:26:47,880 --> 00:26:52,150 >> De mi van, ha ez a feltétel, ha kiértékelése nem igaz? 592 00:26:52,150 --> 00:26:55,790 Mi van, ha a felhasználó nem ad nekem a a nevét és a kollégiumi és a nemek? 593 00:26:55,790 --> 00:26:58,540 Hogy ha a feltétel nem fogja értékelni a valódi, 594 00:26:58,540 --> 00:27:00,650 így nem sújtotta a kijárat 7. sorban. 595 00:27:00,650 --> 00:27:01,680 És mi történik? 596 00:27:01,680 --> 00:27:03,880 És ez az, ami érdekes PHP. 597 00:27:03,880 --> 00:27:07,470 >> Akkor essen ki és PHP mód, hogy úgy mondjam. 598 00:27:07,470 --> 00:27:10,985 Ha azt szeretnénk, néhány kód futtatása, tudod megnyitni és bezárni a PHP tag 599 00:27:10,985 --> 00:27:13,010 és tedd kód ott, mint én tettem itt. 600 00:27:13,010 --> 00:27:16,810 Amint bezárja A PHP tag, a szerver 601 00:27:16,810 --> 00:27:19,407 csak fog kiköp bármit teszel oda. 602 00:27:19,407 --> 00:27:21,740 És valóban, ez része volt az eredeti design PHP, 603 00:27:21,740 --> 00:27:25,280 A jobb rosszabb volt, ez keveredése és jelölő kód 604 00:27:25,280 --> 00:27:25,920 nyelv. 605 00:27:25,920 --> 00:27:28,670 És látni fogjuk, hogy ez nagyon gyorsan hárul a rendetlenség. 606 00:27:28,670 --> 00:27:31,280 És mi a jobb annál ez végül, de csak 607 00:27:31,280 --> 00:27:35,620 észre a könnyedség, amellyel én valóban végre tudják hajtani némi logika. 608 00:27:35,620 --> 00:27:37,440 >> De még mindig egy kicsit underwhelming. 609 00:27:37,440 --> 00:27:41,210 Nyissuk fel verzió Két Frosh PM, amely 610 00:27:41,210 --> 00:27:44,270 látszólag úgy érvel, hogy register2.php. 611 00:27:44,270 --> 00:27:47,600 Tehát ez a fájl valóban megy hogy majdnem ugyanúgy néznek ki. 612 00:27:47,600 --> 00:27:50,780 Fogok menni Frosh PM 2. 613 00:27:50,780 --> 00:27:53,050 De Frosh PM 2 lássuk, mi történik. 614 00:27:53,050 --> 00:27:58,110 >> David, kattintson a rádió gombra, a hívják; Matthews, nem kapitány. 615 00:27:58,110 --> 00:27:59,230 Regisztráció. 616 00:27:59,230 --> 00:28:00,130 Ön regisztrált. 617 00:28:00,130 --> 00:28:00,700 Nem igazán. 618 00:28:00,700 --> 00:28:02,574 Ó, várj, csak nem hogy például, nem igaz? 619 00:28:02,574 --> 00:28:04,520 Rendben, állni. 620 00:28:04,520 --> 00:28:06,602 Majd ezt a három. 621 00:28:06,602 --> 00:28:08,560 Egyértelmű valami szól történni a Gmail. 622 00:28:08,560 --> 00:28:09,600 Majd oda. 623 00:28:09,600 --> 00:28:11,900 >> Így Frosh PM 3 úgy néz ki, mint ez. 624 00:28:11,900 --> 00:28:13,050 Nincs más. 625 00:28:13,050 --> 00:28:19,850 De amikor én David, férfi, Matthews, és nyilvántartásba, ez a harmadik és egyben utolsó változat 626 00:28:19,850 --> 00:28:22,230 követelések, egészen egyszerűen, akkor bejegyzett igazán. 627 00:28:22,230 --> 00:28:23,560 Ez a fajta lényegtelen. 628 00:28:23,560 --> 00:28:25,600 De azt állítják, hogy ennek harmadik és egyben utolsó változat 629 00:28:25,600 --> 00:28:30,610 Én most újra pontosan mi a szobatársam és én építettem a Frosh PM 630 00:28:30,610 --> 00:28:31,731 programot évvel ezelőtt. 631 00:28:31,731 --> 00:28:32,480 És ez volt egyszerű. 632 00:28:32,480 --> 00:28:34,330 Nem volt az adatbázis, nincs Excel táblázatkezelő. 633 00:28:34,330 --> 00:28:36,450 De ami még fontosabb, nem volt több papír 634 00:28:36,450 --> 00:28:42,520 mert mit tettünk ezzel a programmal az volt, hogy tulajdonképpen e-mailben a Proctor, aki 635 00:28:42,520 --> 00:28:44,530 korábban részesülő ezek a dolgok formanyomtatványokon keresztül. 636 00:28:44,530 --> 00:28:48,890 >> És úgy tűnik, mi már ezt programozva oly módon, hogy ha valaki regisztrál, 637 00:28:48,890 --> 00:28:52,470 John Harvard számlájára e-maileket a proctor-- vagy maga ebben az esetben, 638 00:28:52,470 --> 00:28:55,960 John Harvard-- a következő text-- "Ez a személy csak regisztrált." 639 00:28:55,960 --> 00:29:00,560 Név Dávid, kapitány üres; nem, a férfi; és a kollégiumi, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Szóval, mi történt ott? 641 00:29:01,560 --> 00:29:05,360 Nos, a kérdéses fájlt ide látszólag register3.php. 642 00:29:05,360 --> 00:29:09,080 És ha kinyitom ezt, látni fogod mind a hatalom kód, mint ez 643 00:29:09,080 --> 00:29:12,380 és, őszintén szólva, a bizonytalanság A rendszer, mint az e-mail. 644 00:29:12,380 --> 00:29:16,290 Én csak úgy tett, mintha ténylegesen John Harvard lesz a következő módon. 645 00:29:16,290 --> 00:29:20,920 >> Én a nyílt php címke felfelé top, amely csak azt mondja, itt van pár PHP kódot. 646 00:29:20,920 --> 00:29:23,155 Itt lent, kiderül, ott vannak könyvtárak PHP. 647 00:29:23,155 --> 00:29:26,410 Csak nem kell header fájlokat tartalmaz, mint sok. 648 00:29:26,410 --> 00:29:28,900 Kapsz még a konyhai mosogató, hogy úgy mondjam. 649 00:29:28,900 --> 00:29:31,820 >> De ezúttal a 4. sorban, én szeretnénk, hogy a különleges nevű könyvtárat 650 00:29:31,820 --> 00:29:36,087 PHP Mailer, ami az, amit telepíthető ingyen számos rendszer. 651 00:29:36,087 --> 00:29:37,920 Itt lent vagyok érvényesítése benyújtására csak 652 00:29:37,920 --> 00:29:40,540 ellenőrzésével azonban a felhasználó ad nekem egy nevet, a nem, és a kollégiumi. 653 00:29:40,540 --> 00:29:44,130 És ha igen, megy előre, és példányosítunk a levelező. 654 00:29:44,130 --> 00:29:47,020 >> Azt hiszem ez olyan kódsort, hogy csak oszt. 655 00:29:47,020 --> 00:29:48,950 Olyan ez, mint a malloc, de ez egy kicsit szexisebb 656 00:29:48,950 --> 00:29:51,790 a hogy mondod nem csak malloc és néhány általános szám. 657 00:29:51,790 --> 00:29:55,030 Azt mondod, hogy nekem egy ilyen, adj egy új egy ilyen. 658 00:29:55,030 --> 00:29:57,950 >> És ha már programozva Java vagy C ++ vagy más nyelven, 659 00:29:57,950 --> 00:29:59,130 lehet, hogy láttam ezt. 660 00:29:59,130 --> 00:30:01,840 De a rövid is, ha ismeretlen, ezt a sort 661 00:30:01,840 --> 00:30:05,410 megvilágításba helyezi dollár jel mail különleges struct nevű 662 00:30:05,410 --> 00:30:08,731 Egy tárgy, amely beépített e-mail funkciókat. 663 00:30:08,731 --> 00:30:10,355 És valóban, észre és hasonló szintaxis. 664 00:30:10,355 --> 00:30:11,900 >> Ez nem egy mutatót, per se. 665 00:30:11,900 --> 00:30:13,990 PHP csak ugyanazt a szintaxist. 666 00:30:13,990 --> 00:30:17,660 Ez a sor azt mondja használat SMTP-- Simple Mail Transfer 667 00:30:17,660 --> 00:30:20,900 Jegyzőkönyv, ami csak a használt protokoll levelet küldeni. 668 00:30:20,900 --> 00:30:24,240 Ez meghatározza használat Harvard SMTP szerver, ami 669 00:30:24,240 --> 00:30:25,830 valahol itt az egyetemen. 670 00:30:25,830 --> 00:30:28,480 >> Ez azt mondja, amit a TCP port szám beszélni, 671 00:30:28,480 --> 00:30:31,650 és én csak gondoltam, hogy ki googling vagy érdeklődjön a help desk. 672 00:30:31,650 --> 00:30:34,640 Aztán mivel Harvard használ néhány a rendszer biztonságát a levél server-- 673 00:30:34,640 --> 00:30:37,060 legalább titkosítani forgalom közted és azt, 674 00:30:37,060 --> 00:30:41,380 annak ellenére, hogy bárki küldhet a it-- Megyek be a TLS protokoll 675 00:30:41,380 --> 00:30:42,710 azért, hogy a biztonságos. 676 00:30:42,710 --> 00:30:44,730 >> De ez az, ahol a dolgok egy kicsit ijesztő. 677 00:30:44,730 --> 00:30:47,970 Tudok csak önkényesen azt mondják, hogy én vagyok jharvard, 678 00:30:47,970 --> 00:30:51,930 és én is csak önkényesen e-mail magam itt. 679 00:30:51,930 --> 00:30:55,650 És akkor én is meg egy témát ebben a sorban van. 680 00:30:55,650 --> 00:30:58,460 >> És ez csak úgy néz ki, csúnya, de csak egy csomó láncolata. 681 00:30:58,460 --> 00:31:04,480 Kiderült, hogy a PHP egy szuper hasznos szimbólum, mint néhány nyelv, a pont operátor, 682 00:31:04,480 --> 00:31:07,340 amely a szó szoros értelmében csak összefűzi húr után húr húr után, 683 00:31:07,340 --> 00:31:09,810 és akkor nem kell malloc vagy ábra ki a teljes hossza a húr. 684 00:31:09,810 --> 00:31:10,820 Csak csináld. 685 00:31:10,820 --> 00:31:15,220 És valóban, mert én összefűzése az összes ezeket a dolgokat ezekkel a pontokkal, 686 00:31:15,220 --> 00:31:18,330 ezért az e-mail I küldött nézett ki, mint annak idején. 687 00:31:18,330 --> 00:31:20,610 >> És akkor végül itt, küldök mailt. 688 00:31:20,610 --> 00:31:22,580 Szóval, ha ez hamis, Én csak meg fog halni, 689 00:31:22,580 --> 00:31:25,680 ami egy olyan funkció, hogy csak nyomtat A képernyő néhány hibaüzenet. 690 00:31:25,680 --> 00:31:29,170 De ez, sőt, amelyben a küldési funkció. 691 00:31:29,170 --> 00:31:31,780 Egyébként, ha az összes ez nem sikerül, ez irányítja vissza ide. 692 00:31:31,780 --> 00:31:34,050 >> És miért látom, hogy Vagyok regisztrált tényleg? 693 00:31:34,050 --> 00:31:36,110 Nos, ez történt itt. 694 00:31:36,110 --> 00:31:38,170 Szóval, hogy ezt fel egy pár oka. 695 00:31:38,170 --> 00:31:41,542 >> Az egyik, ez pontosan hogyan, ha építeni Néhány weboldal a végleges projekt 696 00:31:41,542 --> 00:31:44,000 vagy a valós világban, ez hogyan küld emlékeztető e-mailt 697 00:31:44,000 --> 00:31:45,924 az ügyfelek vagy az előfizetők. 698 00:31:45,924 --> 00:31:47,590 Így küld jelszó emlékeztetőt. 699 00:31:47,590 --> 00:31:50,760 Így küld üzenetet az emberek hogy van egy új Facebook 700 00:31:50,760 --> 00:31:52,990 üzenet függőben lévő, vagy valami ilyesmi. 701 00:31:52,990 --> 00:31:55,010 >> De azt is beszél, hogy az a tény, hogy ez lehetett 702 00:31:55,010 --> 00:31:58,160 már nagyon jól Davin vagy bárki más. 703 00:31:58,160 --> 00:32:00,567 És azt mondom, ez a fajta mosolyogva, mert én vagyok 704 00:32:00,567 --> 00:32:03,400 egészen biztos benne, mi megy keresztül több elmétek ezen a ponton. 705 00:32:03,400 --> 00:32:11,910 De ez egy ilyen csinálni, mint én azt mondják, nem én fajta dolog, 706 00:32:11,910 --> 00:32:14,480 mert triviális kovácsolni e-maileket, mint ez. 707 00:32:14,480 --> 00:32:16,480 De lehet, hogy látott vagy olvasd el a Crimson, 708 00:32:16,480 --> 00:32:18,271 A késő ez is elég triviális az emberek 709 00:32:18,271 --> 00:32:20,050 nyomon követni őket vissza néhány eredetű. 710 00:32:20,050 --> 00:32:23,790 És kérjen nekem egy kis időt, talán A CS50 ebéd, hogyan először 711 00:32:23,790 --> 00:32:27,080 megismerkedtem nagyon szorosan szinte a ed fórumon sok éve 712 00:32:27,080 --> 00:32:30,890 ezelőtt, amikor felfedezték hogy az internet működött. 713 00:32:30,890 --> 00:32:36,940 Tehát bármilyen case-- kissé után az ed fórumon tette. 714 00:32:36,940 --> 00:32:42,300 >> Így minden esetben, van egy csomó szuper globals, 715 00:32:42,300 --> 00:32:45,960 is, mert itt nevezik, amelyek közül az egyik mi saw-- dollár jel aláhúzás post. 716 00:32:45,960 --> 00:32:49,530 Van egy párja nevű kap, ott, ahol a cucc egy URL 717 00:32:49,530 --> 00:32:50,690 végül megy. 718 00:32:50,690 --> 00:32:54,051 És van egy csomó más, too-- ülés és a szerver és a cookie-t. 719 00:32:54,051 --> 00:32:55,800 Majd gyere vissza a cookie máskor, 720 00:32:55,800 --> 00:33:01,340 de ülés elég jó mert jobb now-- ig now-- 721 00:33:01,340 --> 00:33:06,350 mindent, amit tettél egy webböngésző egyfajta hontalan, hogy úgy mondjam. 722 00:33:06,350 --> 00:33:10,060 Én kattintson körül, hozzáférés fájlokat a szerver, valami 723 00:33:10,060 --> 00:33:13,500 történik a képernyőn, de akkor a kapcsolat bezáródik. 724 00:33:13,500 --> 00:33:17,450 Az Internet Explorer, vagy a Firefox ikon nem forog 725 00:33:17,450 --> 00:33:20,340 és csak mi hogy a web oldalon található. 726 00:33:20,340 --> 00:33:23,530 >> Tehát HTTP hontalan abban amint azt teszi a kapcsolatot, 727 00:33:23,530 --> 00:33:25,050 kap néhány adat, ennyi. 728 00:33:25,050 --> 00:33:29,940 Nincs több kapcsolat, ellentétben a Skype, ellentétben FaceTime, ellentétben GChat, amely 729 00:33:29,940 --> 00:33:32,180 tart fenn állandó kapcsolatot a szerverrel. 730 00:33:32,180 --> 00:33:34,650 A web alapvetően le, bár mi 731 00:33:34,650 --> 00:33:36,630 hogy nemsokára mennyire tudjuk szimulálni a dolgokat 732 00:33:36,630 --> 00:33:39,300 mint a Facebook chat és a GChat, amely fenntartja a illusion-- 733 00:33:39,300 --> 00:33:41,680 vagy ténylegesen fenntartani állandó kapcsolat használata 734 00:33:41,680 --> 00:33:43,270 még a modern technológia. 735 00:33:43,270 --> 00:33:49,000 >> De ha elmegyek, mondjuk, counter.php, Ez egy egyszerű példa, 736 00:33:49,000 --> 00:33:52,700 amint látni fogjuk, hogy jelenleg úgy gondolja, Meglátogattam a hely nulla idő. 737 00:33:52,700 --> 00:33:56,790 De ha csak az oldal újratöltődik, valahogy tudja, hogy volt itt. 738 00:33:56,790 --> 00:33:58,840 Ha reload újra, tudja, hogy volt itt. 739 00:33:58,840 --> 00:34:01,100 És újra és újra és újra és újra. 740 00:34:01,100 --> 00:34:03,610 >> Szóval van valami plusz plussing folyik, hanem közlemény 741 00:34:03,610 --> 00:34:07,090 A kis dolog forog valaha oly röviden felfelé, majd a felső bontja, 742 00:34:07,090 --> 00:34:11,179 tehát nem olyan, mint van egy állandó kapcsolat a készülék. 743 00:34:11,179 --> 00:34:16,929 Nos, ha én megyek be counter.php, észre, milyen egyszerű ez. 744 00:34:16,929 --> 00:34:19,080 Először hívják ezt a különleges funkció, amit hamarosan 745 00:34:19,080 --> 00:34:21,513 elkezdi biztosra nevezett ülés kezdete. 746 00:34:21,513 --> 00:34:22,179 Indítsa el a munkamenet. 747 00:34:22,179 --> 00:34:25,095 >> És egy ülés ezentúl csak lesz egy vödör, mint a bevásárlás 748 00:34:25,095 --> 00:34:28,120 kocsi, ahol nem tud értékeket és egyfajta bizalom, mint a programozó 749 00:34:28,120 --> 00:34:31,590 hogy ők lesznek itt, amikor a felhasználó jön back-- a második 750 00:34:31,590 --> 00:34:35,670 később, egy óra múlva, még egy évvel később, ameddig ő nem világos 751 00:34:35,670 --> 00:34:37,602 a cookie-kat, mivel mi végül látni. 752 00:34:37,602 --> 00:34:39,310 És most én csak azt egy, ha a feltétel itt. 753 00:34:39,310 --> 00:34:44,679 Tehát, ha a következő kulcsfontosságú, nevű számláló, van meg benne 754 00:34:44,679 --> 00:34:49,210 ennek a szuper global-- ezt hash tábla, ha will-- hívott ülés, 755 00:34:49,210 --> 00:34:53,350 akkor megy előre, és megragad a értéket az session-- think 756 00:34:53,350 --> 00:34:55,250 Az ezt a bevásárlás cart-- és tárolja 757 00:34:55,250 --> 00:34:57,680 egy ideiglenes változó nevű számláló. 758 00:34:57,680 --> 00:35:02,240 >> Ellenkező esetben, ha ez az érték a számláló nincs beállítva az úgynevezett shopping cart, 759 00:35:02,240 --> 00:35:04,430 csak inicializálás 0. 760 00:35:04,430 --> 00:35:09,830 Végül ide, menj és tedd vissza a bevásárlókocsit vagy az ülés 761 00:35:09,830 --> 00:35:13,000 a számláló értéke 1. 762 00:35:13,000 --> 00:35:16,730 Így kiderül, hogy ez a speciális konténer here-- 763 00:35:16,730 --> 00:35:20,355 amely, ismét, az egyik ilyen kapcsolódó tömbök, egy tömböt, hogy tudod index 764 00:35:20,355 --> 00:35:25,010 a szavak helyett numbers-- ellenére is fennáll a felhasználó megy el. 765 00:35:25,010 --> 00:35:26,510 Ismét megyek vissza az oldalt. 766 00:35:26,510 --> 00:35:28,400 Ez egy perc múlva. 767 00:35:28,400 --> 00:35:31,300 De emlékszik, hogy én már volt itt 19-szer előtt. 768 00:35:31,300 --> 00:35:32,740 Ez az én 20. látogatást. 769 00:35:32,740 --> 00:35:36,560 >> És ez lesz a kulcs végrehajtása minden olyan webhelyet, amely emlékszik 770 00:35:36,560 --> 00:35:40,640 hogy te vagy bejelentkezve, hogy tegye valami szó a kosárban 771 00:35:40,640 --> 00:35:43,902 vásárolni, vagy, hogy van néhány üzenetek száma folyamatban. 772 00:35:43,902 --> 00:35:45,610 Bármikor szeretne emlékszem információ, 773 00:35:45,610 --> 00:35:48,130 látni fogjuk, hogy a PHP-t, mint a több más nyelven, 774 00:35:48,130 --> 00:35:53,640 nyújt számunkra ez az illúzió az állami még akkor is, mint látni fogod a PSET a 6., 775 00:35:53,640 --> 00:35:57,642 mint te HTTP kérések az ügyfél és a szerver, ez az. 776 00:35:57,642 --> 00:35:59,850 Ha kap vissza, hogy válasz, nincs semmi több 777 00:35:59,850 --> 00:36:01,790 jön vissza a szerver alapértelmezés szerint. 778 00:36:01,790 --> 00:36:03,820 De majd meglátjuk, hogy megkerüli ezt. 779 00:36:03,820 --> 00:36:07,430 >> Nos, próbáljuk meg tiszta ez egy kicsit. 780 00:36:07,430 --> 00:36:09,470 Láttuk néhány más példák is. 781 00:36:09,470 --> 00:36:12,250 Ja, és mint egy félre, mert akik ismerik vagy ismeretlen, 782 00:36:12,250 --> 00:36:14,230 az oka, hogy a Frosh PM példa ment 783 00:36:14,230 --> 00:36:18,060 Az esztétikai igazán csúnya slightly-- is, 784 00:36:18,060 --> 00:36:23,160 még ugly-- enyhén kevésbé csúnya bár még mindig csúnya 785 00:36:23,160 --> 00:36:25,230 azért van, mert ha megnézzük A forráskód itt, 786 00:36:25,230 --> 00:36:28,240 kiderül, hogy én ezt legtetején a fájl. 787 00:36:28,240 --> 00:36:32,570 >> Kiderült, hogy a bootstrap egy a sok szabadon elérhető könyvtárak odakinn 788 00:36:32,570 --> 00:36:37,140 hogy léteznek nem programozási nyelvek mindig, de a CSS vagy JavaScript 789 00:36:37,140 --> 00:36:39,190 vagy HTML vagy akárhány nyelven. 790 00:36:39,190 --> 00:36:42,160 >> És ezek az emberek here-- eredetileg jött ki 791 00:36:42,160 --> 00:36:44,730 A Twitter-- csak azt egy csomó stílus. 792 00:36:44,730 --> 00:36:47,360 Ez egy hatalmas fájlt hogy itt valaki írta, 793 00:36:47,360 --> 00:36:51,020 vagy valaki azt írta, hogy idővel meghatározza színek és formázása 794 00:36:51,020 --> 00:36:53,740 és miegymás, így én is fajta kölcsön a szintaxis 795 00:36:53,740 --> 00:36:56,157 és nem kell kitalálni, hogyan helyezkedjenek el az űrlapot. 796 00:36:56,157 --> 00:36:57,990 Ez is minified annak érdekében, hogy a számítógép 797 00:36:57,990 --> 00:37:00,560 értem, de nem szükségszerűen egy ember. 798 00:37:00,560 --> 00:37:03,050 Szóval, miért a stilizáció ott megváltozott. 799 00:37:03,050 --> 00:37:05,450 >> De nézzük most, hogy jobban a tervezés, 800 00:37:05,450 --> 00:37:07,490 mert ha maradunk le ez az út túl hosszú, 801 00:37:07,490 --> 00:37:11,290 a kód fog kap rendetlen és Messier. 802 00:37:11,290 --> 00:37:13,040 Szóval összpontosítani ezeket a példákat itt. 803 00:37:13,040 --> 00:37:15,090 Az utolsó ma. 804 00:37:15,090 --> 00:37:18,720 >> Tehát itt van egy szuper egyszerű 1.0-s verzióját CS50 honlapján. 805 00:37:18,720 --> 00:37:21,250 Csak linkeket is előadások és tanmenet, 806 00:37:21,250 --> 00:37:25,490 és ez a, hogy a rendezetlen lista tag-- az UL tag, amit utoljára használt. 807 00:37:25,490 --> 00:37:28,800 És ha sőt, ha nyit Oldal forrásának megtekintése, 808 00:37:28,800 --> 00:37:31,710 fogod látni, hogy ez nagyon, nagyon egyszerű HTML. 809 00:37:31,710 --> 00:37:35,460 És valójában, annak ellenére, hogy ez a PHP fájlok a motorháztető alatt, 810 00:37:35,460 --> 00:37:38,620 ez még mindig csak a köpködés ki csak HTML most. 811 00:37:38,620 --> 00:37:41,312 >> Tehát, ha rákattintok Előadások, látjuk ezt történik. 812 00:37:41,312 --> 00:37:43,020 És ha rákattintok a héten nulla, látjuk ezt. 813 00:37:43,020 --> 00:37:44,920 És ha rákattintok Szerda, látjuk ezt. 814 00:37:44,920 --> 00:37:47,900 És ez nyilvánvalóan az volt a PDF A diák aznap. 815 00:37:47,900 --> 00:37:52,020 Minden tettem a kapcsolat egy horgony tag erre az URL itt. 816 00:37:52,020 --> 00:37:55,400 >> Tehát ez csak azt mondani, ez egy nagyon egyszerű változata CS50 honlapján. 817 00:37:55,400 --> 00:37:56,790 Lássuk, hogyan is hajtják végre. 818 00:37:56,790 --> 00:38:01,240 Ha bemegy a könyvtárba mvc0, fogunk látni néhány kép. 819 00:38:01,240 --> 00:38:03,250 Az egyik egy README, így ha néhány ilyen túl gyors, 820 00:38:03,250 --> 00:38:05,166 ha csak piszkálni körül kényelmesebb később. 821 00:38:05,166 --> 00:38:07,930 És közlemény itt egy index.php fájlt. 822 00:38:07,930 --> 00:38:09,960 Kiderült, hogy ha te magad, az ember, 823 00:38:09,960 --> 00:38:14,460 nem adja meg a végleges nevét a URL, web szerver általában 824 00:38:14,460 --> 00:38:17,010 következtetésre jut néhány alapértelmezett név az Ön számára. 825 00:38:17,010 --> 00:38:20,060 Az index pont valami általában az alapértelmezett. 826 00:38:20,060 --> 00:38:23,010 >> Szóval ezért egy perce amikor meglátogattam ezt az URL itt, 827 00:38:23,010 --> 00:38:26,750 nincs fájl nevét, a fájl nem hosszabbítás, nincs idő az URL. 828 00:38:26,750 --> 00:38:29,710 Csak tudta valahogy varázslatosan keresni index.php. 829 00:38:29,710 --> 00:38:30,870 Ez csak egy ilyen egyezmény. 830 00:38:30,870 --> 00:38:32,360 Nevezhetnénk semmit. 831 00:38:32,360 --> 00:38:35,110 >> Tehát, ha most bemegy index.php, látni fogod 832 00:38:35,110 --> 00:38:37,100 hogy indeed-- nézzük megszabadulni a hozzászólások 833 00:38:37,100 --> 00:38:39,500 itt, mert ott tényleg semmi érdekes it-- 834 00:38:39,500 --> 00:38:41,579 ez csak a kemény kódolt HTML. 835 00:38:41,579 --> 00:38:43,370 Szóval ez konzisztens, bár az én követelés 836 00:38:43,370 --> 00:38:45,230 hogy akkor szétzúz HTML és PHP. 837 00:38:45,230 --> 00:38:48,060 Nincs tényleges programozási logika itt. 838 00:38:48,060 --> 00:38:51,030 >> És a többi fájl elég sok ugyanolyan érdektelen. 839 00:38:51,030 --> 00:38:56,240 Ez csak kódolva egy hét itt az első héten és a hét egy m w, 840 00:38:56,240 --> 00:38:57,510 A hétfő és szerda. 841 00:38:57,510 --> 00:39:01,890 És aztán, ha én nyit hét nulla, észre, hogy szinte azonos. 842 00:39:01,890 --> 00:39:03,320 >> És ez a fajta kulcs elvihető. 843 00:39:03,320 --> 00:39:06,180 Figyeljük meg, hogy mennyire felesleges ez. 844 00:39:06,180 --> 00:39:10,710 Ezek a fájlok alig változik, és mégis én húzta az egyik ilyen copy / paste feladatok 845 00:39:10,710 --> 00:39:13,420 ahol vettem egy file-- feltehetően A hét zero-- másoltad 846 00:39:13,420 --> 00:39:16,320 amikor egy hét körül jött, és csípett néhány értéket. 847 00:39:16,320 --> 00:39:18,590 Meg kéne tudni hogy jobban, mint ezt. 848 00:39:18,590 --> 00:39:21,800 >> Szóval menjünk vissza az MVC és bemegy egy verzió. 849 00:39:21,800 --> 00:39:24,810 És észre Van egy néhány kép, mert amit 850 00:39:24,810 --> 00:39:29,870 gyakori volt az összes ezeket a fájlokat csak egy pillanat ago-- ha megyek vissza 0-s verzió, 851 00:39:29,870 --> 00:39:32,600 menjünk vissza a mutató, és csak postulate-- 852 00:39:32,600 --> 00:39:36,090 ha már megszabadulni a comments-- mely része az oldal 853 00:39:36,090 --> 00:39:40,072 feltehetőleg minden egy fájlt? 854 00:39:40,072 --> 00:39:40,780 Csak hívja ki. 855 00:39:40,780 --> 00:39:44,620 Mely vonalak ismétlődnek Valószínűleg az összes ezeket az oldalakat? 856 00:39:44,620 --> 00:39:45,120 Igen? 857 00:39:45,120 --> 00:39:46,110 >> Diák: [hallható]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. MALAN: 1-től 9. 859 00:39:47,660 --> 00:39:48,720 Igen, teljesen. 860 00:39:48,720 --> 00:39:52,080 1-től 9, kivéve talán 8 változik egy kicsit, mert CS50 861 00:39:52,080 --> 00:39:54,650 válik előadások vagy hét nulla vagy valami. 862 00:39:54,650 --> 00:39:55,970 De szinte azonos. 863 00:39:55,970 --> 00:39:58,657 Szóval ez az egész csak fajta a vágólapra másolni. 864 00:39:58,657 --> 00:40:00,490 És van egy pár más vonalakon tudok képzelni 865 00:40:00,490 --> 00:40:05,000 Az, hogy a valószínűleg azonos át az összes fájlt. 866 00:40:05,000 --> 00:40:06,315 >> Diák: 12. és 13.. 867 00:40:06,315 --> 00:40:07,190 DAVID J. MALAN: Igen. 868 00:40:07,190 --> 00:40:11,220 Biztos, 12., 13., 14. és valószínűleg, csak azért, mert érdekes dolgokat 869 00:40:11,220 --> 00:40:15,460 történik vonalakon 11 és a 10., tehát úgy tűnik. 870 00:40:15,460 --> 00:40:18,350 Tehát nézzük meg 1-es verzióját, amely igyekszik javítani ezen. 871 00:40:18,350 --> 00:40:24,020 Az 1-es verzió E MVC example-- fogunk elmagyarázni, hogy mit MVC úton a moment-- 872 00:40:24,020 --> 00:40:27,420 ha bemegyek index, ez a fajta úgy néz ki, egy kicsit zavaros most. 873 00:40:27,420 --> 00:40:28,880 Ez nem olyan egyszerű, mint korábban. 874 00:40:28,880 --> 00:40:30,906 >> De ha egyszer elkezd olvasd el figyelmesen, ez 875 00:40:30,906 --> 00:40:32,530 elég egyértelmű, mit csinál. 876 00:40:32,530 --> 00:40:34,397 Úgy látszik, az 1. vonalra és 8. sor váltotta 877 00:40:34,397 --> 00:40:37,230 az összes cuccot csak identified-- bár csak a jó intézkedés, 878 00:40:37,230 --> 00:40:41,900 Otthagytam a ULS ott csak abban az esetben bizonyos nap nem volt egy listát a dolgokat. 879 00:40:41,900 --> 00:40:47,860 És így szükségessé olyan, mint font többek között a C. példányban és paszták 880 00:40:47,860 --> 00:40:50,470 A tartalom hatékonyan Itt ebbe a fájlba. 881 00:40:50,470 --> 00:40:53,650 >> Így header.php, ahogy Lehet következtetni a neve, 882 00:40:53,650 --> 00:40:55,330 lesz az az oldal fejlécében. 883 00:40:55,330 --> 00:40:57,110 Ez a fajta árva itt. 884 00:40:57,110 --> 00:41:01,820 Ez csak a felső, de nincs még tartalomról. 885 00:41:01,820 --> 00:41:05,070 >> És ha megnézi footer közben, amely a másik fájlban mentioned-- 886 00:41:05,070 --> 00:41:08,830 ez még kevésbé érdekes, de a lényeg, hogy a közös, hogy mindent. 887 00:41:08,830 --> 00:41:10,250 Szóval ez a lábléc. 888 00:41:10,250 --> 00:41:11,300 Ez a fejléc. 889 00:41:11,300 --> 00:41:13,950 Ez a fájl, ami változik, így miért ne 890 00:41:13,950 --> 00:41:18,140 próbáld ki, hogy figyelembe az egységesítés A következő két sort ide? 891 00:41:18,140 --> 00:41:20,090 >> De ez lehet tiszta egy kicsit tovább. 892 00:41:20,090 --> 00:41:23,260 Én megyek előre, és nyit két változat, ahol 893 00:41:23,260 --> 00:41:27,106 látni fogjuk, hogy van egy új fájlt, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Meglátjuk, hogy mi van abban a pillanatban. 895 00:41:28,610 --> 00:41:30,930 Menjünk index, mint a belépési pont, mint korábban. 896 00:41:30,930 --> 00:41:35,230 >> És most én észre igénylő helpers.php, nem fejléc vagy a lábléc. 897 00:41:35,230 --> 00:41:41,720 De segítők olyan, mint helpers.c és helpers.h származó PSET 2 898 00:41:41,720 --> 00:41:46,150 vagy PSET 3 régen, amikor valóban nem megkeressem e PSET, 899 00:41:46,150 --> 00:41:50,950 és ha kellett az összes kód válogatás és keres egy külön fájlban. 900 00:41:50,950 --> 00:41:52,510 Ez az, mi folyik itt. 901 00:41:52,510 --> 00:41:54,390 >> És most úgy néz ki, 3 sor egy kicsit más. 902 00:41:54,390 --> 00:41:55,920 És ez csak egy sort. 903 00:41:55,920 --> 00:41:57,950 Ahhoz, hogy ez még inkább tiszta, tudtam csak 904 00:41:57,950 --> 00:42:01,820 nem, hogy ez stilárisan egységes minden mást csináltunk. 905 00:42:01,820 --> 00:42:04,130 De ez nem igazán változik a funkcionalitás. 906 00:42:04,130 --> 00:42:05,880 Ez csak egy sor igazi kódot. 907 00:42:05,880 --> 00:42:09,010 >> Úgy tűnik, van egy függvény valahol úgynevezett render fejléc, 908 00:42:09,010 --> 00:42:11,420 és ez az, ahol a dolgok kap elég erős. 909 00:42:11,420 --> 00:42:17,040 Figyeljük meg, hogy a belső zárójelek amit más darab szintaxis? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 Ez talán egy kicsit nehéz megmondani, de észre there's-- Teszek néhány fehér 912 00:42:23,350 --> 00:42:24,300 hely. 913 00:42:24,300 --> 00:42:25,530 Van szögletes zárójelbe. 914 00:42:25,530 --> 00:42:29,700 >> És szögletes zárójelek láttunk egy kicsit ezelőtt keretében asszociatív tömbök, 915 00:42:29,700 --> 00:42:31,580 amelyek ismét, mint hash táblák. 916 00:42:31,580 --> 00:42:36,230 És, ha úgy gondolja, hogy most a C, a sorrendben érvek egy függvény 917 00:42:36,230 --> 00:42:37,570 meg mindig ugyanaz. 918 00:42:37,570 --> 00:42:41,146 Meg kell emlékezni, amit a rendelni ez-- x, y, z vagy z, y, X- 919 00:42:41,146 --> 00:42:44,020 és van, hogy mindig az őket ugyanabban a sorrendben, vagy nézd őket 920 00:42:44,020 --> 00:42:45,100 Ha elfelejtette. 921 00:42:45,100 --> 00:42:51,140 >> De ez úgy tűnik, hogy egy ügyes módja elhaladó tetszőleges kulcs értéke 922 00:42:51,140 --> 00:42:55,840 párok amelynek címe a neve Az érv ebben az esetben 923 00:42:55,840 --> 00:42:58,334 és CS50 az értékét. 924 00:42:58,334 --> 00:43:00,250 És az a tény, hogy én ezeket szögletes zárójelek 925 00:43:00,250 --> 00:43:02,560 itt azt jelenti, hogy én is is át valami 926 00:43:02,560 --> 00:43:07,550 mint egy hét értéke 1 vagy 0 vagy 2 vagy 3. 927 00:43:07,550 --> 00:43:10,550 Így már paraméterezhető ez a funkció oly módon, 928 00:43:10,550 --> 00:43:15,180 hogy az megtehesse a többszörös bemenet, de most már csak az egyetlen. 929 00:43:15,180 --> 00:43:20,060 >> Ha most bemegy helpers.php, észre, mit csinál. 930 00:43:20,060 --> 00:43:22,030 Ez egy kicsit Az új funkciók, 931 00:43:22,030 --> 00:43:24,190 de most csak úgy A hit, hogy ez 932 00:43:24,190 --> 00:43:26,570 a szintaxis, amellyel határozza meg a függvény a PHP. 933 00:43:26,570 --> 00:43:27,840 Azt mondják, a szó szoros értelmében a funkciót. 934 00:43:27,840 --> 00:43:30,090 Nem adja meg a visszatérés típusú, és ez konzisztens 935 00:43:30,090 --> 00:43:33,880 a változó korábban már részletesen ahol nem igazán erősen írja. 936 00:43:33,880 --> 00:43:35,650 >> Ez csak meghatározza meg, hogy alapértelmezés szerint ez 937 00:43:35,650 --> 00:43:37,460 vesz egy asszociatív tömb érvként. 938 00:43:37,460 --> 00:43:38,210 És tudod mit? 939 00:43:38,210 --> 00:43:41,450 Ha a felhasználó nem adja át egy az, feltételezik az alapértelmezett érték. 940 00:43:41,450 --> 00:43:44,680 >> Ez egy olyan funkció, hogy a C nem számunkra, ami szép és jó, mert most 941 00:43:44,680 --> 00:43:46,430 adatokat, akkor is, ha nem adnak meg semmit, 942 00:43:46,430 --> 00:43:49,300 lesz egy tömbben, de egy üres. 943 00:43:49,300 --> 00:43:51,860 És mint félre, kivonat csak nem valami funky 944 00:43:51,860 --> 00:43:56,380 ahol azon az összes funkció ebből asszociatív tömb, az összes dolog, 945 00:43:56,380 --> 00:43:59,950 akkor szögletes zárójelbe tettük, és megteremti változó ki őket 946 00:43:59,950 --> 00:44:06,270 hogy mi lehet végül férhetnek nekik footet.php és header.php. 947 00:44:06,270 --> 00:44:08,950 Ez egy kicsit elvont, úgyhogy hadd mutassak ezt ki. 948 00:44:08,950 --> 00:44:12,990 >> Az index.php, észre, hogy én vagyok halad egy kulcs-érték párt cím 949 00:44:12,990 --> 00:44:14,850 amelynek értéke CS50. 950 00:44:14,850 --> 00:44:18,660 Ha most nézd helpers.php, észre, hogy RenderHeader 951 00:44:18,660 --> 00:44:23,870 a kitermelése, hogy az adatok, hogy én vagyok halad be, majd szükség header.php. 952 00:44:23,870 --> 00:44:27,970 Mit tettem egyfajta szegény ember végrehajtása jelenleg az alábbiak. 953 00:44:27,970 --> 00:44:31,720 >> Ha én nyit header.php, észre, hogy én már nem nehéz 954 00:44:31,720 --> 00:44:34,890 kódolt szó CS50 ebben header fájlban. 955 00:44:34,890 --> 00:44:39,310 Tettem ezt kétségkívül atrociously nevű függvény, HTML speciális karakterek, 956 00:44:39,310 --> 00:44:40,170 ott. 957 00:44:40,170 --> 00:44:41,640 De figyeld meg, mit tettem. 958 00:44:41,640 --> 00:44:44,240 Megvan nyitva HTML. 959 00:44:44,240 --> 00:44:47,420 Aztán nyílt fej és nyitott címet. 960 00:44:47,420 --> 00:44:52,380 >> És akkor belül a cím nyitott és szoros címkék, van egy kis PHP kód. 961 00:44:52,380 --> 00:44:56,670 És ez a szép, de a szintaxis, ami csak azt jelenti, echo ki. 962 00:44:56,670 --> 00:44:59,840 Ez szó szerint azt jelenti this-- echo following-- 963 00:44:59,840 --> 00:45:01,910 de ez szexisebb írni. 964 00:45:01,910 --> 00:45:05,000 Echo ki a címet hogy a már átadott. 965 00:45:05,000 --> 00:45:07,560 >> De mit gondol HTML speciális karakter van szó, 966 00:45:07,560 --> 00:45:10,590 különösen akkor, ha néhány korábbi HTML tapasztalata? 967 00:45:10,590 --> 00:45:14,050 Mi karakterek is veszélyes átadni egy oldalra 968 00:45:14,050 --> 00:45:17,980 hová dinamikusan generál A weboldal kódú, mint ez? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Hadd menjen a fájlt, változat két, és nézd meg, nem tudom ezt indukálja. 971 00:45:24,650 --> 00:45:26,210 >> Verzió két ez. 972 00:45:26,210 --> 00:45:28,510 És észre mindent rendben van, jól működik. 973 00:45:28,510 --> 00:45:35,280 De tegyük fel megyek bele index.php és Én meg, hogy a cím az oldalam 974 00:45:35,280 --> 00:45:36,630 nem CS50. 975 00:45:36,630 --> 00:45:44,930 Ez nyílt konzol script éber hello, világ, közel egy idézet, 976 00:45:44,930 --> 00:45:49,740 szoros zárójel, pontosvessző, nyitott zárójel, perjel script. 977 00:45:49,740 --> 00:45:51,897 >> Script, mivel mi végül látni, a címke 978 00:45:51,897 --> 00:45:54,480 amelyek segítségével használni a másik programozási nyelv úgynevezett 979 00:45:54,480 --> 00:45:56,330 JavaScript belsejében egy weboldal. 980 00:45:56,330 --> 00:45:57,960 És most észre a logika itt. 981 00:45:57,960 --> 00:45:59,840 Itt van egy kulcs nevű címet. 982 00:45:59,840 --> 00:46:02,690 Itt van ez az őrült hosszú érték most. 983 00:46:02,690 --> 00:46:07,840 >> De ha elmegyek a segítők lap- vagy inkább, a fedőlap, 984 00:46:07,840 --> 00:46:11,310 Hívom ezt a funkciót az, hogy a cím az első. 985 00:46:11,310 --> 00:46:15,250 Tehát, ha most újra az oldalt, én látja ezt, ami úgy néz ki, nevetséges, 986 00:46:15,250 --> 00:46:16,110 de ez biztos. 987 00:46:16,110 --> 00:46:17,310 Csak úgy néz ki hülye. 988 00:46:17,310 --> 00:46:20,320 >> De tegyük fel, ahelyett, Elfelejtettem ezt. 989 00:46:20,320 --> 00:46:24,660 És jelölje meg a szavaimat, egy nem nulla szám Az akkor felejtsd el, hogy ezt 990 00:46:24,660 --> 00:46:27,790 és kapsz néhány szorgalmas diák vagy barát jön 991 00:46:27,790 --> 00:46:31,540 neked a CS50 vásár vagy névtelenül éjjel dugta körül a honlapon 992 00:46:31,540 --> 00:46:35,300 és lényegében az injekciós kód tudtán kívül van a webhelyen 993 00:46:35,300 --> 00:46:35,800 valahogy. 994 00:46:35,800 --> 00:46:39,000 >> Mert ha én csak köpni ki címet itt és címe 995 00:46:39,000 --> 00:46:44,330 there-- jól, ha a cím szó szerint úgy néz ki, mint ez, és a PHP 996 00:46:44,330 --> 00:46:47,660 mint a nyelv, amely köpni ki más nyelveken szöveg, 997 00:46:47,660 --> 00:46:50,650 ez szó szerint megy cserélni ezt címke, 998 00:46:50,650 --> 00:46:53,010 persze, amit tettem máshol. 999 00:46:53,010 --> 00:46:57,640 >> Tehát, ha most megy itt reload után visszavonják azokat a biztonsági mechanizmusokat, 1000 00:46:57,640 --> 00:46:59,982 most már helló világ itt. 1001 00:46:59,982 --> 00:47:02,690 Most, hogy már nem olyan nagy a foglalkozik, de lehet tenni valamit 1002 00:47:02,690 --> 00:47:05,119 egy kicsit rosszindulatú itt, mint ott 1003 00:47:05,119 --> 00:47:08,410 egyéb tags-- mint látni fogjuk, ha költünk több időt JavaScript-- hasonló helyen 1004 00:47:08,410 --> 00:47:14,910 dot href kap, idézet, idézet vége, HTTP business.com, de az ellenkezőjét, hogy 1005 00:47:14,910 --> 00:47:15,950 a minap. 1006 00:47:15,950 --> 00:47:20,120 És most lehet indukálni a web oldal, hogy ténylegesen megy azonnal 1007 00:47:20,120 --> 00:47:21,190 az ezen a weboldalon itt. 1008 00:47:21,190 --> 00:47:23,000 >> És valóban, nem akarom még menni business.com 1009 00:47:23,000 --> 00:47:24,749 mert nem akarom tudni, hogy mi az. 1010 00:47:24,749 --> 00:47:28,710 De ez is indít kód befecskendezését ezen az oldalon. 1011 00:47:28,710 --> 00:47:32,680 Tehát ez csak azt jelenti, hogy annak ellenére, mi bevezetése szuper korán bizonyos 1012 00:47:32,680 --> 00:47:36,800 Ezeknek a bonyolultabb szerkezetekhez, ez mind egy cél felé annak biztosítása, 1013 00:47:36,800 --> 00:47:39,320 hogy a kód nem használható ki. 1014 00:47:39,320 --> 00:47:40,960 >> Tehát most egy harmadik verziót itt. 1015 00:47:40,960 --> 00:47:42,470 Ez kezd egy kicsit cifrább. 1016 00:47:42,470 --> 00:47:44,875 Én nem igazán like-- Az anális oldalam 1017 00:47:44,875 --> 00:47:47,750 már-már kissé bosszús a tény, hogy én a nevezett funkció 1018 00:47:47,750 --> 00:47:51,940 RenderHeader és RenderFooter amely szinte azonos volt. 1019 00:47:51,940 --> 00:47:55,400 Így jutott eszembe, hogy miért nem Én paraméterezni ezeket a funkciókat 1020 00:47:55,400 --> 00:47:59,180 a csak egy úgynevezett render, már azt, hogy egy másik érv 1021 00:47:59,180 --> 00:48:04,420 mint a sablon nevét, a végső hogy render-- akár fejléc és lábléc? 1022 00:48:04,420 --> 00:48:07,160 És akkor adott esetben, ha azt akarom, át bizonyos kulcs érték párok 1023 00:48:07,160 --> 00:48:10,580 mint én a címet a header de nem a lábléc, 1024 00:48:10,580 --> 00:48:11,800 Tudtam csinálni. 1025 00:48:11,800 --> 00:48:16,510 >> És most, ha bemegyek helpers.php, ez egy kicsit bonyolultabb. 1026 00:48:16,510 --> 00:48:19,670 És én hullám kezem a részletek, de ez csak egy funkció. 1027 00:48:19,670 --> 00:48:21,890 Szóval ez egy lépés a jobb design. 1028 00:48:21,890 --> 00:48:23,360 >> Mi ezt egy lépéssel tovább. 1029 00:48:23,360 --> 00:48:28,890 Ha bemegy a negyedik változata ez, észre most 1030 00:48:28,890 --> 00:48:31,320 hogy csinálok valamit még több fajta rejtélyes. 1031 00:48:31,320 --> 00:48:33,230 És tudom, hogy ez a tétel felvenni egyszerre, 1032 00:48:33,230 --> 00:48:35,080 de mi csak kedves tisztítási dolgokat. 1033 00:48:35,080 --> 00:48:38,550 Most leteszem a segítők fájlt egy mappába nevű 1034 00:48:38,550 --> 00:48:41,190 includes-- csak egy önkényes nevét, ahol szeretnék, hogy a cucc 1035 00:48:41,190 --> 00:48:44,300 hogy szeretnék foglalják magukba, majd a többi ezt ugyanaz. 1036 00:48:44,300 --> 00:48:47,140 >> De ha nézek most gedit, észre, hogy kaptam megszabadulni 1037 00:48:47,140 --> 00:48:51,940 Az összes többi ilyen fájlokat, és én már át őket, például, a itt. 1038 00:48:51,940 --> 00:48:55,110 És akkor a sablonok, Én ezt is itt. 1039 00:48:55,110 --> 00:48:59,292 És ez az egész most felé egy lépést Az egy sokkal jobb tervezési minta. 1040 00:48:59,292 --> 00:49:01,000 És mi nagyon gyorsan fog elmozdulni 1041 00:49:01,000 --> 00:49:03,870 PHP alapértelmezett funkcionalitás, amely kezdtünk itt, 1042 00:49:03,870 --> 00:49:07,655 ahol csak szétzúz PHP, és a HTML és a CSS, 1043 00:49:07,655 --> 00:49:09,780 és csak köpje ki és megy a az utat. 1044 00:49:09,780 --> 00:49:11,404 Ez nem lesz nagyon karbantartható. 1045 00:49:11,404 --> 00:49:14,481 Csakúgy, mint a C, elkezdtük használni több fájlt, és több funkciót 1046 00:49:14,481 --> 00:49:15,730 és faktoring dolgok, hogy ki. 1047 00:49:15,730 --> 00:49:16,688 Majd ugyanezt itt. 1048 00:49:16,688 --> 00:49:19,970 És valójában, az ötödik és egyben utolsó verzió itt, én egy másik dolog. 1049 00:49:19,970 --> 00:49:23,710 Akár azt is használja dot dot, amely, megint, csak a szülő könyvtár. 1050 00:49:23,710 --> 00:49:28,260 Ahhoz, hogy még nagyobb biztonságot tudatos, mert ha megnézem a hallgató 1051 00:49:28,260 --> 00:49:32,450 itt az ötödik és egyben utolsó változat, értesítés hogy én egy könyvtárban van az úgynevezett 1052 00:49:32,450 --> 00:49:35,180 nyilvános, majd a ugyanazon a szinten, hogy úgy mondjam, 1053 00:49:35,180 --> 00:49:38,490 Van magában és sablonok majd, hogy a szöveges fájl readme. 1054 00:49:38,490 --> 00:49:41,130 >> És az ok, amit felépített érzés this-- és így sok web 1055 00:49:41,130 --> 00:49:44,330 házigazdák, különösen 5 $ hónap is, vagy $ 10 hónapos is, 1056 00:49:44,330 --> 00:49:47,170 Ha valaha is volt egy ilyen services--, amit oly sokan közülük nem 1057 00:49:47,170 --> 00:49:50,690 ők csak várják, hogy minden lerakó a fájlokat egy könyvtárba, 1058 00:49:50,690 --> 00:49:53,640 mint mi már az ez már az első példa. 1059 00:49:53,640 --> 00:49:56,740 >> De amint elkezd épület több kifinomult webhelyeket, csak tárolja 1060 00:49:56,740 --> 00:50:00,480 adatok törődsz és fájlok érdekel, valójában a dolgok szervezése 1061 00:50:00,480 --> 00:50:05,060 helyesen és nagyobb biztonságot tudat szem előtt tartva lehet 1062 00:50:05,060 --> 00:50:07,927 kezdjük, hogy megvédje ellen a barátok 1063 00:50:07,927 --> 00:50:10,135 hogy akkor sem vagy kívül ebbe az osztályba, aki 1064 00:50:10,135 --> 00:50:12,510 amint elkezd gyártás programok magad az interneten, 1065 00:50:12,510 --> 00:50:15,140 fognak kezdeni szedés rád és rájuk. 1066 00:50:15,140 --> 00:50:17,420 >> És így azt fogjuk megnézni végül is ez a kialakítás. 1067 00:50:17,420 --> 00:50:20,010 Ez csak egy kép hogy ábrázolja a következőket. 1068 00:50:20,010 --> 00:50:22,897 Megyünk, hogy minden a mi programozási logika egy vagy több fájlt, 1069 00:50:22,897 --> 00:50:25,230 és megyünk csak elkezd hívja azokat vezérlők. 1070 00:50:25,230 --> 00:50:28,022 Ez az, ahol az agy a Honlapunkon valójában. 1071 00:50:28,022 --> 00:50:29,730 Aztán megyünk kilátás, és nézetek 1072 00:50:29,730 --> 00:50:32,480 olyan egyszerű, mint csak külön files-- úgynevezett sablonok, gyakran. 1073 00:50:32,480 --> 00:50:34,410 Ők csak a esztétika oldalam, 1074 00:50:34,410 --> 00:50:37,020 mit akarok az oldalt nézni like-- a színek és az elrendezés 1075 00:50:37,020 --> 00:50:38,870 és az álláspontok az összes változó. 1076 00:50:38,870 --> 00:50:41,120 >> És akkor még érdekesebb hogy mi lesz végül eljut 1077 00:50:41,120 --> 00:50:45,420 az a modell, ami lesz, csak A szó, amit pofon más technológiák 1078 00:50:45,420 --> 00:50:47,771 hogy mi hozza a kép, mint a tényleges adatbázisok, 1079 00:50:47,771 --> 00:50:49,520 úgy, hogy ha akar segítségével menti az adatokat, 1080 00:50:49,520 --> 00:50:52,140 nem csak küldj egy e-mailt a Proctor vagy magadnak, 1081 00:50:52,140 --> 00:50:57,350 valóban tárolja egy adatbázisban egy másik nyelv úgynevezett SQL. 1082 00:50:57,350 --> 00:51:00,450 És mi hagyjuk itt ma és vedd fel ezt a szerdán 1083 00:51:00,450 --> 00:51:02,990 és vezessen adatbázisok majd. 1084 00:51:02,990 --> 00:51:06,940 >> [Zenelejátszó] 1085 00:51:06,940 --> 00:54:24,555