1 00:00:00,000 --> 00:00:03,920 >> [Glazbom] 2 00:00:03,920 --> 00:00:11,760 3 00:00:11,760 --> 00:00:13,800 >> DAVID J. Malan: U redu. 4 00:00:13,800 --> 00:00:15,640 Ovo je CS50. 5 00:00:15,640 --> 00:00:17,620 To je početak tjedna osam. 6 00:00:17,620 --> 00:00:22,440 A možda podsjetiti da smo stali Posljednji put gleda na novom jeziku 7 00:00:22,440 --> 00:00:23,240 uopce. 8 00:00:23,240 --> 00:00:25,905 U stvari, to je jedan prilično lagan i to nije ni 9 00:00:25,905 --> 00:00:26,940 programski jezik. 10 00:00:26,940 --> 00:00:31,100 To je jezik za označavanje koji nam omogućuje zapravo strukturirati i napraviti web stranice. 11 00:00:31,100 --> 00:00:33,350 A kad vam nešto drugo u kombinaciji s this-- 12 00:00:33,350 --> 00:00:35,670 ili će uskoro, ukoliko to već niste učinili. 13 00:00:35,670 --> 00:00:38,530 Idemo koristiti kaskadno Style Sheets ili CSS, koje 14 00:00:38,530 --> 00:00:40,971 je još jedna vrsta jezika sa svojstvima i vrijednostima 15 00:00:40,971 --> 00:00:43,220 to će činimo Stvari kao što su promijenili boju 16 00:00:43,220 --> 00:00:46,010 i promijenite položaj i ove vrste ugađanje. 17 00:00:46,010 --> 00:00:49,940 No, danas i dalje, počinjemo usredotočiti na snažnije jezika, 18 00:00:49,940 --> 00:00:52,810 Stvarni programski jezici poput PHP. 19 00:00:52,810 --> 00:00:54,880 >> Dakle, PHP je oko za neko vrijeme. 20 00:00:54,880 --> 00:00:56,810 I kao što ćete vidjeti, to je dizajniran prvenstveno 21 00:00:56,810 --> 00:01:00,280 rano za stvarne koristiti za web razvoj 22 00:01:00,280 --> 00:01:02,360 i zapravo stvaraju web stranice. 23 00:01:02,360 --> 00:01:04,849 Pa što vrste značajke ne jezik 24 00:01:04,849 --> 00:01:10,040 potrebno kako bi weba Stranice dinamično s njom? 25 00:01:10,040 --> 00:01:14,760 >> Drugim riječima, ako želite generirati Sadržaj dynamically-- poput Facebook-a 26 00:01:14,760 --> 00:01:19,480 Tekuće, koji se stalno mijenja, ili instant poruke koje poskočiti iz vremena 27 00:01:19,480 --> 00:01:21,872 da time-- kao što je Ključni dio funkcionalnosti 28 00:01:21,872 --> 00:01:24,580 trebate u programskom jeziku da bi vam neka dinamički 29 00:01:24,580 --> 00:01:28,070 ispisati nove informacije na ekranu? 30 00:01:28,070 --> 00:01:28,685 >> UČENIK: Šifra. 31 00:01:28,685 --> 00:01:29,560 DAVID J. Malan: Šifra. 32 00:01:29,560 --> 00:01:30,440 U redu. 33 00:01:30,440 --> 00:01:31,995 Uzet ćemo to. 34 00:01:31,995 --> 00:01:35,310 Malo precizniji. 35 00:01:35,310 --> 00:01:37,639 Mislim, mogli bismo napraviti ovo sa C, iskreno. 36 00:01:37,639 --> 00:01:38,930 Bilo bi bol u vratu. 37 00:01:38,930 --> 00:01:41,045 But-- je to opredjeljenje? 38 00:01:41,045 --> 00:01:41,895 >> UČENIK: Da. 39 00:01:41,895 --> 00:01:42,677 Varijable, možda? 40 00:01:42,677 --> 00:01:43,760 DAVID J. Malan: varijable. 41 00:01:43,760 --> 00:01:44,160 U redu, sigurno. 42 00:01:44,160 --> 00:01:45,740 Varijable svakako može nam pomoći. 43 00:01:45,740 --> 00:01:47,020 Pa čak i nešto jednostavnije. 44 00:01:47,020 --> 00:01:50,640 Koristili smo se u prvi Program prvog dana 45 00:01:50,640 --> 00:01:55,686 kad smo zapravo rekao "Pozdrav svijetu". 46 00:01:55,686 --> 00:01:56,570 >> UČENIK: Print. 47 00:01:56,570 --> 00:01:57,778 >> DAVID J. Malan: Ispis, zar ne? 48 00:01:57,778 --> 00:02:01,050 Ispis ili printf u Svijet C. Dakle, sve ovo vrijeme, 49 00:02:01,050 --> 00:02:03,362 imali smo u našem zbrinjavanje language-- C, 50 00:02:03,362 --> 00:02:05,570 U particular-- pa čak i Blok za tu stvar da je 51 00:02:05,570 --> 00:02:07,400 može generirati nizove teksta. 52 00:02:07,400 --> 00:02:11,090 >> Pa, ako je HTML, kao što smo vidjeli prošlog tjedna, je Samo cijela hrpa nizova teksta 53 00:02:11,090 --> 00:02:14,692 iako s otvorenim zagradama i zatvorena zagrade i neka pjesmica 54 00:02:14,692 --> 00:02:16,650 a razlog za to, i onda smo mogli uistinu 55 00:02:16,650 --> 00:02:20,440 početak stvaranja web stranice bilo ručno ih upišete u gedit 56 00:02:20,440 --> 00:02:23,870 ili Microsoft Word, za to matter-- mi samo treba za uređivanje teksta. 57 00:02:23,870 --> 00:02:26,830 >> Ili bismo mogli pisati kod, na svoj prijedlog 58 00:02:26,830 --> 00:02:30,435 ranije, da će nas pustiti dinamički generirati HTML, 59 00:02:30,435 --> 00:02:32,560 i to je ono što ćemo početi raditi s PHP 60 00:02:32,560 --> 00:02:34,900 i na kraju čak i sa jezik zove JavaScript, 61 00:02:34,900 --> 00:02:37,910 je koristiti jedan jezik za generiranje drugi. 62 00:02:37,910 --> 00:02:40,720 I doista, to je ono što Facebook i mnoge, mnoge druge web stranice 63 00:02:40,720 --> 00:02:44,530 to zapravo dinamički prikaz novih informacija za vas. 64 00:02:44,530 --> 00:02:47,117 >> Tako ćemo početi s this-- a grobni izgleda linija, ali jedna 65 00:02:47,117 --> 00:02:48,450 To je zapravo prilično moćan. 66 00:02:48,450 --> 00:02:51,210 Do sada smo koristili C, koji je sastavio jezik. 67 00:02:51,210 --> 00:02:55,050 I samo brzo recap-- sastaviti jezik ima što karakteristiku? 68 00:02:55,050 --> 00:02:59,050 Vi očito treba sastaviti da, ali što to znači? 69 00:02:59,050 --> 00:03:00,505 Da? 70 00:03:00,505 --> 00:03:02,940 >> STUDENT: To mora biti sklopljeni u strojni kod. 71 00:03:02,940 --> 00:03:03,060 >> DAVID J. Malan: U redu. 72 00:03:03,060 --> 00:03:04,530 To treba biti sklopljen u strojni kod. 73 00:03:04,530 --> 00:03:07,340 Dakle, uzmite izvornog koda, koja je vrsta Engleski-slično. 74 00:03:07,340 --> 00:03:09,270 Možete pretvoriti da je nešto niža razina, 75 00:03:09,270 --> 00:03:11,590 koji se u konačnici zove Objekt code-- 0-a i 1-a. 76 00:03:11,590 --> 00:03:14,830 I to ti je 0 i 1 koji procesora, poput onih koje je Intel, 77 00:03:14,830 --> 00:03:16,110 zapravo razumijem. 78 00:03:16,110 --> 00:03:19,690 >> Sada, PHP i Python i Ruby i JavaScript i grozdovi drugi 79 00:03:19,690 --> 00:03:23,190 jezici nisu sastavljeni jezici, ali tumačiti jezika, 80 00:03:23,190 --> 00:03:26,630 što znači da ih samo upisati, a zatim ne ih pretvoriti u 0-a i 1-a. 81 00:03:26,630 --> 00:03:30,790 Umjesto toga samo pružiti zatim kao ulaz u programu tuđe, 82 00:03:30,790 --> 00:03:32,080 zove tumač. 83 00:03:32,080 --> 00:03:34,460 A ta osoba je Program je dizajniran 84 00:03:34,460 --> 00:03:38,280 razumjeti ono što svaki i svaki simbol u Pythonu ili PHP 85 00:03:38,280 --> 00:03:42,650 ili Ruby ili bilo koji broj drugim jezicima znači. 86 00:03:42,650 --> 00:03:44,760 >> I tako sve što je potrebno je nešto poput ovoga. 87 00:03:44,760 --> 00:03:46,350 Dakle, u stvari, ja ću prijeći na aparatu 88 00:03:46,350 --> 00:03:48,100 ovdje, samo u bilo Stari prozor, a mi smo 89 00:03:48,100 --> 00:03:52,580 ići naprijed i otvoriti file zove, kažu, zdravo. 90 00:03:52,580 --> 00:03:55,780 Sada već, možda bih spasio to čak s nastavkom datoteke, 91 00:03:55,780 --> 00:03:57,910 ali ja ću učiniti nešto još jednostavnije ovdje. 92 00:03:57,910 --> 00:04:02,450 Ja ću ići naprijed i početi Ova datoteka s ovim tajanstvenim sintakse. 93 00:04:02,450 --> 00:04:06,310 Dakle, "korisnik, bin, ENV, za okoliš, php. " 94 00:04:06,310 --> 00:04:10,670 >> To je jednostavno jedna linija koda koji je će reći moja operativni sustav, 95 00:04:10,670 --> 00:04:13,730 idu naći u vašem lokalnom okoliš što god da je, 96 00:04:13,730 --> 00:04:18,149 gdje god PHP is-- na interpreter-- i ići naprijed i koristiti taj tumača 97 00:04:18,149 --> 00:04:20,589 protumačiti sljedeći kod. 98 00:04:20,589 --> 00:04:22,760 Sada, to je vrsta ružna osobina PHP. 99 00:04:22,760 --> 00:04:24,980 No, u tom jeziku, bilo Vrijeme pišete PHP kod, 100 00:04:24,980 --> 00:04:29,200 morate imati jedan od ovih ružna PHP oznake označavanju početak 101 00:04:29,200 --> 00:04:32,220 Vaše code-- 00:04:37,430 >> No, u nastavku se ovdje, ja sada mogu učiniti nešto vrlo jednostavna, kao i printf Pozdrav zarezom 103 00:04:37,430 --> 00:04:40,922 Svijet backslash n blizu citat, u neposrednoj blizini zagradu. 104 00:04:40,922 --> 00:04:42,630 A onda samo za dobro mjera, idem 105 00:04:42,630 --> 00:04:45,380 ići naprijed i blizu moj php tag ovamo 106 00:04:45,380 --> 00:04:47,390 Tako da sve izgleda lijepo lijepo ispisati. 107 00:04:47,390 --> 00:04:50,780 >> I čim sam kliknite Spremi, gedit je dovoljno zapravo pametna 108 00:04:50,780 --> 00:04:54,620 gledati u tom prvom redu i shvatili, oh, pišete PHP koda. 109 00:04:54,620 --> 00:04:56,710 Neka mi sintakse vrhunac to s bojama 110 00:04:56,710 --> 00:04:58,690 Ovdje tako da stoji out malo više. 111 00:04:58,690 --> 00:05:01,300 Ali sada ću ići do mog prozora terminala. 112 00:05:01,300 --> 00:05:02,340 Ja ću povećavanje. 113 00:05:02,340 --> 00:05:06,860 >> Ovaj program je nazvan "Hello" pa ću napraviti točkica crta Pozdrav, 114 00:05:06,860 --> 00:05:07,990 ali dopuštenje uskraćeno. 115 00:05:07,990 --> 00:05:08,490 I bash. 116 00:05:08,490 --> 00:05:10,610 Mi zapravo čuo da je Prije stvar par tjedana 117 00:05:10,610 --> 00:05:13,140 U kontekstu kontuzija, jedan od onih bugova. 118 00:05:13,140 --> 00:05:16,240 >> No Permission denied smo vidjeli prije, možda u nekom drugom kontekstu. 119 00:05:16,240 --> 00:05:19,060 Se bilo tko sjetiti kako možda nešto popraviti 120 00:05:19,060 --> 00:05:22,100 gdje dopuštenje odbijen kao što je ovaj? 121 00:05:22,100 --> 00:05:23,490 Što je naredba, barem? 122 00:05:23,490 --> 00:05:24,159 >> UČENIK: Chmod. 123 00:05:24,159 --> 00:05:26,700 DAVID J. Malan: Da, chmod, za promjenu načina datoteke. 124 00:05:26,700 --> 00:05:30,171 A vi ćete dobiti sve više koristi za ovaj sljedeći tjedan s naknadnim problema 125 00:05:30,171 --> 00:05:30,670 set. 126 00:05:30,670 --> 00:05:33,211 Ali za sada, idem mijenjati Način da ne bude čitljiva, 127 00:05:33,211 --> 00:05:36,650 ali dati svima executeability privilegije, sposobnost 128 00:05:36,650 --> 00:05:37,710 pokrenuti ovu datoteku. 129 00:05:37,710 --> 00:05:40,360 A ja ću se dodijeliti da je do datoteke pozdravi. 130 00:05:40,360 --> 00:05:45,150 >> Ako ja sada napraviti dot udarac Pozdrav ući, te Vidite, u stvari, moj program, Pozdrav svijetu. 131 00:05:45,150 --> 00:05:48,760 A ono što sam učinio je korak Jasno preskočiti uopce? 132 00:05:48,760 --> 00:05:49,520 Izrada. 133 00:05:49,520 --> 00:05:51,680 Dakle, samo sam trčao ovaj program vrlo jednostavno. 134 00:05:51,680 --> 00:05:55,690 >> I ispada da možete to učiniti sa puno sintakse podsjeća C. 135 00:05:55,690 --> 00:06:03,400 Pusti me na današnjem koda, koji sam stavio u moj vhost imenik 136 00:06:03,400 --> 00:06:05,250 Ovdje, za prave razloge mi ćemo se vratiti. 137 00:06:05,250 --> 00:06:09,350 I ja ću ići u, recimo, uvjeti 1. 138 00:06:09,350 --> 00:06:12,450 >> I vidjet ćete ovdje, prvi i prije svega, cijela hrpa komentara. 139 00:06:12,450 --> 00:06:15,240 No, to je zapravo re-kreacija u PHP 140 00:06:15,240 --> 00:06:18,960 programa smo učinili u tjednu jedan se zove uvjeti 1.c 141 00:06:18,960 --> 00:06:20,690 gdje je svrha u Život ovog programa 142 00:06:20,690 --> 00:06:22,950 očito pitati Korisnik za cijeli broj 143 00:06:22,950 --> 00:06:25,270 a zatim napraviti neki fluffy Analiza na njega kod kojega 144 00:06:25,270 --> 00:06:29,510 što reći, ako je to pozitivno ili negativna ili jednaka nuli. 145 00:06:29,510 --> 00:06:34,220 I ja sam to dovesti do samo zato, osim možda jedan mali detalj, 146 00:06:34,220 --> 00:06:37,150 to je ne razlikuje tako daleko od C. 147 00:06:37,150 --> 00:06:39,930 >> Što je jedna od karakteristika da se ovdje možda iskoči 148 00:06:39,930 --> 00:06:41,410 na vas kao malo drugačiji? 149 00:06:41,410 --> 00:06:42,160 Možda dvije stvari. 150 00:06:42,160 --> 00:06:42,660 Da? 151 00:06:42,660 --> 00:06:44,070 >> UČENIK: Dolar znak n? 152 00:06:44,070 --> 00:06:44,944 >> DAVID J. Malan: Da. 153 00:06:44,944 --> 00:06:46,210 Dakle dolar znak nje je prisutan. 154 00:06:46,210 --> 00:06:48,120 I dolar znakovi, što vidjet ćemo, ide 155 00:06:48,120 --> 00:06:51,460 da se popraviti na početak bilo koje varijable u PHP-u. 156 00:06:51,460 --> 00:06:54,250 To je i dobro i bad-- dobro u da je to vrsta očito što je 157 00:06:54,250 --> 00:06:56,797 varijabla, loše u tome što je još jedna stvar za tip. 158 00:06:56,797 --> 00:06:58,630 A tu je još jedna što imamo ne baš 159 00:06:58,630 --> 00:07:00,876 vidi, barem po ovom pravopisu. Da? 160 00:07:00,876 --> 00:07:01,630 >> UČENIK: 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 vidjeli, samo po sebi, u C, iako postoji nešto 163 00:07:06,550 --> 00:07:09,530 Sličan, ali smo koristiti getstring, i to je njegov kolega. 164 00:07:09,530 --> 00:07:12,950 Dakle, ako idem u to katalog, koji se dogoditi da se, 165 00:07:12,950 --> 00:07:18,030 kao što ću objasniti malo u mom vhost imenik i moj izvor katalog, 166 00:07:18,030 --> 00:07:22,730 i ja ići naprijed i učiniti točkica crta conditions-- whoops-- dot slash 167 00:07:22,730 --> 00:07:26,710 Uvjeti 1, vidjet ćete, opet, Isto issue-- dopuštenje uskraćeno. 168 00:07:26,710 --> 00:07:33,610 >> Pa neka mi povećavanje i napraviti chmod plus x o uvjetima, dot uvjetima Slash. 169 00:07:33,610 --> 00:07:35,222 Htio bih cijeli broj, molim te, 50. 170 00:07:35,222 --> 00:07:36,930 A mogli smo igrati ovo Igra cijeli dan. 171 00:07:36,930 --> 00:07:39,140 To će se ponašati upravo kao što je učinio u tjednu jednom. 172 00:07:39,140 --> 00:07:42,860 >> U redu, tako nije sve što je drugačije, osim Ne samo da je blagi malo sintakse, 173 00:07:42,860 --> 00:07:45,490 ali na vrhu, opet sam imala tu liniju koja 174 00:07:45,490 --> 00:07:49,760 dopustio da stvoriti nešto što Izgleda poput programa C nazivom Pozdrav, 175 00:07:49,760 --> 00:07:51,150 nazivaju uvjeti 1. 176 00:07:51,150 --> 00:07:54,520 Ali to nije 0-a i one Ja sam izvršavanju izravno. 177 00:07:54,520 --> 00:07:57,620 Ona umjesto da je radi toga Tumač čije ime 178 00:07:57,620 --> 00:07:59,440 događa da se identična jezika. 179 00:07:59,440 --> 00:08:04,970 Program se zove PHP, i moj broj ispod linije jedan je prošao u nju. 180 00:08:04,970 --> 00:08:07,740 >> Mi možemo učiniti još prilično jednostavan Primjer podsjeća na nešto 181 00:08:07,740 --> 00:08:09,240 smo napravili prije nekoliko tjedana. 182 00:08:09,240 --> 00:08:12,020 Opet, ovo je vrsta proizvoljna komad koda 183 00:08:12,020 --> 00:08:14,000 koji očito ne ono kad ga pokrenuti? 184 00:08:14,000 --> 00:08:15,625 Što se to događa ispisati, valjda? 185 00:08:15,625 --> 00:08:23,540 186 00:08:23,540 --> 00:08:28,250 >> Dakle, u početku na liniji 16, to je će reći x je sada 2, vjerojatno. 187 00:08:28,250 --> 00:08:30,920 % D je ista kao i za printf $. 188 00:08:30,920 --> 00:08:33,460 Pa onda to rotacije, točka, dot, dot, u skladu 17. 189 00:08:33,460 --> 00:08:36,299 A onda se postroje 18 Pojavljuje pozvati funkciju kubu. 190 00:08:36,299 --> 00:08:37,600 A gdje je Cubed definira? 191 00:08:37,600 --> 00:08:40,319 >> Pa, to izgleda u redu 25, tako da nije sve što je drugačije. 192 00:08:40,319 --> 00:08:42,610 Imam neke komentare gore da, ali za najveći dio, 193 00:08:42,610 --> 00:08:45,370 to je prilično jednostavan portanje ili pretvorbe 194 00:08:45,370 --> 00:08:48,470 iz C programa na PHP verzije. 195 00:08:48,470 --> 00:08:52,670 No, tu su sada par razlike koje možda trebao iskočiti. 196 00:08:52,670 --> 00:08:56,100 Što je još drugačije o tome kako Možda napisati ovaj isti program u C? 197 00:08:56,100 --> 00:08:57,900 >> UČENIK: [nečujan]. 198 00:08:57,900 --> 00:09:00,070 >> DAVID J. Malan: Postoji nema prototipa do vrha. 199 00:09:00,070 --> 00:09:03,210 Tako PHP-- i iskreno, Puno moderne languages-- 200 00:09:03,210 --> 00:09:06,920 su puno pametnije i korisnije nego C sastavljače da vas 201 00:09:06,920 --> 00:09:09,740 Možete staviti funkciju ovdje, možete staviti funkciju ovdje, 202 00:09:09,740 --> 00:09:12,740 i tumač ide da vam učiniti uslugu čitanja 203 00:09:12,740 --> 00:09:16,010 Cijeli datoteku prije nego što odluči da neke funkcije ne postoji. 204 00:09:16,010 --> 00:09:17,970 Tako lijepo poboljšanja godina kasnije. 205 00:09:17,970 --> 00:09:22,126 No, tu je i nešto inače drugačije ili uopće ne postoji ovdje. 206 00:09:22,126 --> 00:09:22,626 Da? 207 00:09:22,626 --> 00:09:25,084 >> UČENIK: [nečujan]. 208 00:09:25,084 --> 00:09:27,750 DAVID J. Malan: Nemamo se proglasiti vrste varijabli, 209 00:09:27,750 --> 00:09:31,780 pa ćemo vidjeti prije dugo da postoje različite vrste u PHP, 210 00:09:31,780 --> 00:09:34,970 ali ne morate ih odrediti, koji je i dobro i loše. 211 00:09:34,970 --> 00:09:36,623 A tu je još jedna stvar koja nedostaje. 212 00:09:36,623 --> 00:09:37,430 >> UČENIK: Nema knjižnice. 213 00:09:37,430 --> 00:09:38,630 >> DAVID J. Malan: Nema knjižnice. 214 00:09:38,630 --> 00:09:39,350 U redu, tako da je lijepo. 215 00:09:39,350 --> 00:09:40,540 Mi smo dobili puno više izvan okvira. 216 00:09:40,540 --> 00:09:43,373 Dakle, tu je zapravo puno više stvari nego što sam mislio bili drugačiji. 217 00:09:43,373 --> 00:09:44,350 Što mislite o načinu na leđima? 218 00:09:44,350 --> 00:09:46,032 Što je to? 219 00:09:46,032 --> 00:09:46,740 Recimo to još jednom? 220 00:09:46,740 --> 00:09:47,960 >> UČENIK: Pointer. 221 00:09:47,960 --> 00:09:49,270 >> DAVID J. Malan: Nema naputke. 222 00:09:49,270 --> 00:09:51,280 Redu, barem u ovom primjeru, br. 223 00:09:51,280 --> 00:09:52,070 To je pošteno. 224 00:09:52,070 --> 00:09:55,090 Dakle, ne postoje smjernice u PHP-u zapravo uopće. 225 00:09:55,090 --> 00:09:58,730 Postoji nešto što se zove reference, ali nećemo potrošiti previše vremena tamo. 226 00:09:58,730 --> 00:09:59,520 A što drugo? 227 00:09:59,520 --> 00:10:00,185 >> UČENIK: Glavni. 228 00:10:00,185 --> 00:10:01,060 DAVID J. Malan: Glavni. 229 00:10:01,060 --> 00:10:02,768 Dakle, to je bio neki problem Mislio sam. 230 00:10:02,768 --> 00:10:04,660 Obavijest nema glavna ulazna točka. 231 00:10:04,660 --> 00:10:06,525 Vi jednostavno početi pisati svoj kod. 232 00:10:06,525 --> 00:10:08,400 A to je zapravo će biti povoljno 233 00:10:08,400 --> 00:10:10,560 kad smo prijelaz trenutak da se zapravo pomoću 234 00:10:10,560 --> 00:10:13,980 taj isti jezik za web-based programiranje, za koje smo 235 00:10:13,980 --> 00:10:16,580 ne žele imati samo jednu ulaznu točku. 236 00:10:16,580 --> 00:10:19,980 Mi možda želite imati hrpu URL-ova, hrpa različitih datoteka 237 00:10:19,980 --> 00:10:22,930 Sve uzimanje unos korisnika i proizvodnju izlaz. 238 00:10:22,930 --> 00:10:27,130 >> No, ovdje je vrlo obeshrabrujuće Primjer koji sam obećao prošli put, 239 00:10:27,130 --> 00:10:30,130 naime, u toj mapi Ovdje, pravopisne pogreške. 240 00:10:30,130 --> 00:10:33,680 Tako je u ovom datoteke Speller, koje smo neće trošiti previše vremena, postoji 241 00:10:33,680 --> 00:10:37,870 suštini porting-- P-O-R-T. To je samo riječ dao kad, recimo, 242 00:10:37,870 --> 00:10:40,800 pretvoriti iz jednog jezika u drugu ručno obično. 243 00:10:40,800 --> 00:10:45,680 >> To je portanje PC verzija Speller iz PSET 5. 244 00:10:45,680 --> 00:10:48,856 A ja u biti pokušao pretvoriti to redak po redak što je više mogu. 245 00:10:48,856 --> 00:10:51,730 Dakle, ako vam se sviđa takve stvari, to zapravo vrijedi u nekom trenutku 246 00:10:51,730 --> 00:10:54,229 ih vuče kako se rame uz strana i vidjeti što je ista 247 00:10:54,229 --> 00:10:55,230 i što je drugačije. 248 00:10:55,230 --> 00:10:57,510 No, oni su prilično prokleto slično. 249 00:10:57,510 --> 00:11:00,110 Ako se sjećate što bukvar čak izgledao, 250 00:11:00,110 --> 00:11:02,110 iako nisi morati promijeniti ovu sliku, 251 00:11:02,110 --> 00:11:04,860 to je prilično slično strukturno sa samo nekoliko 252 00:11:04,860 --> 00:11:06,200 promjena tu i tamo. 253 00:11:06,200 --> 00:11:10,140 >> Dakle, to je samo reći da je to prilično jednostavno pretvoriti Speller 254 00:11:10,140 --> 00:11:12,000 iz C u PHP. 255 00:11:12,000 --> 00:11:15,390 No, u rječniku, postoji nešto još uvjerljiviji. 256 00:11:15,390 --> 00:11:19,270 Dopustite mi ići naprijed i stvoriti moja dictionary.php datoteka. 257 00:11:19,270 --> 00:11:24,010 Tako je malo drugačiji u tome mi ćemo ga zovu .php umjesto .c. 258 00:11:24,010 --> 00:11:26,980 Budući da je ovo PHP file, sam do-- nešto annoyingly-- imaju 259 00:11:26,980 --> 00:11:30,132 pokrenuti datoteku s php tag kao što je to. 260 00:11:30,132 --> 00:11:32,340 I ja ću ići naprijed i definirati nekoliko funkcija. 261 00:11:32,340 --> 00:11:35,770 Funkcija zove ček, što je će uzeti u riječi kao prije. 262 00:11:35,770 --> 00:11:37,520 No, ovaj argument je će imati dolar 263 00:11:37,520 --> 00:11:39,840 potpisati, jer smo, opet, koristeći PHP. 264 00:11:39,840 --> 00:11:42,350 Druga funkcija od dictionary.c je opterećenje 265 00:11:42,350 --> 00:11:47,120 i to je u ime rječniku, tako da ću dobiti tu funkciju proradio. 266 00:11:47,120 --> 00:11:50,920 >> Još jedan u dictionary.c bilo što? 267 00:11:50,920 --> 00:11:54,580 Veličina je bio jedan od najljepših one, na barem ako je zadržao neku varijablu okolo. 268 00:11:54,580 --> 00:11:57,830 tako da veličina samo mora vratiti varijablu. 269 00:11:57,830 --> 00:11:59,090 A tu je iskrcati. 270 00:11:59,090 --> 00:12:02,830 >> Dakle, bilo je to četiri funkcije u problemu postaviti 5 271 00:12:02,830 --> 00:12:06,770 da li je potrebno provesti s nekih struktura podataka ili strukture. 272 00:12:06,770 --> 00:12:10,170 Tako sam obećao da će u PHP, možemo proglasiti 273 00:12:10,170 --> 00:12:14,490 hash stol, na primjer, sve to lakše. 274 00:12:14,490 --> 00:12:17,377 U stvari, ako želim hash tablicu, Samo ću otići kao što je to 275 00:12:17,377 --> 00:12:18,460 a tu je moj hash tablicu. 276 00:12:18,460 --> 00:12:21,555 I to je napomena, obeshrabrujuće, da smo stali na prošli put. 277 00:12:21,555 --> 00:12:23,930 I znate što, ako sam htio varijabla za veličinu, dobro, 278 00:12:23,930 --> 00:12:25,867 ovo nije sve koji se razlikuje od C, 279 00:12:25,867 --> 00:12:27,450 ali ja ću ići naprijed i učiniti. 280 00:12:27,450 --> 00:12:28,630 I primijetiti nikakvu vrstu podataka. 281 00:12:28,630 --> 00:12:31,180 A ja ću se vratiti kasnije Zapravo dodati neke komentare ovdje. 282 00:12:31,180 --> 00:12:32,480 Ali što je s opterećenjem? 283 00:12:32,480 --> 00:12:35,780 >> Ako dolar znak rječnik je ime moje datoteke 284 00:12:35,780 --> 00:12:39,600 a ja zapravo želim učitati riječi u ovoj tablici sada, 285 00:12:39,600 --> 00:12:42,360 Ja zapravo može učiniti nešto prilično jednostavan. 286 00:12:42,360 --> 00:12:44,880 One-- a to je minorly annoying-- u PHP, 287 00:12:44,880 --> 00:12:47,710 morate odrediti unutar od funkcije ako vas 288 00:12:47,710 --> 00:12:51,060 želite pristupiti nekim globalno varijabla koja je definirana vani. 289 00:12:51,060 --> 00:12:53,530 >> No, to nije osobito Zanimljivo upravo sada. 290 00:12:53,530 --> 00:12:57,920 Ono što je još zanimljivije je to za svaku konstrukt koji sam spomenuo prošli put. 291 00:12:57,920 --> 00:13:01,880 I ispada da PHP ima funkciju naziva datoteka čija je svrha u životu 292 00:13:01,880 --> 00:13:05,550 je otvoriti datoteku i pročitati u sve njezine linije u nizu 293 00:13:05,550 --> 00:13:06,840 i predati ih natrag. 294 00:13:06,840 --> 00:13:12,170 >> Koji je reći što mogu učiniti tako rječnika da je sada učinkovito kada sam nazvati datoteku, 295 00:13:12,170 --> 00:13:15,472 ovo će me predati natrag niz riječi iz datoteke. 296 00:13:15,472 --> 00:13:16,430 To nije sve što je dobro. 297 00:13:16,430 --> 00:13:20,130 Još uvijek će biti linija riječi, nešto linearno. 298 00:13:20,130 --> 00:13:23,880 Ali ja mogu ići naprijed i ponoviti preko svake od tih riječi pomoću 299 00:13:23,880 --> 00:13:25,710 da sintakse smo vidjeli ukratko prošli put. 300 00:13:25,710 --> 00:13:27,940 A vi ćete ga vidjeti više u narednom PSET. 301 00:13:27,940 --> 00:13:32,070 >> Ali sada imam petlje Ponavljanje preko svake riječi u rječniku. 302 00:13:32,070 --> 00:13:36,100 I na svakoj iteraciji, sjećam ja sam nazivajući trenutnu riječ "riječ." 303 00:13:36,100 --> 00:13:39,790 I sve to će potrajati do stavi riječi u rječnik je 304 00:13:39,790 --> 00:13:43,530 će biti riječi pogodak "istina". 305 00:13:43,530 --> 00:13:44,740 To je moj umetak funkcija. 306 00:13:44,740 --> 00:13:46,661 To je moja funkcija opterećenja za moju rječniku. 307 00:13:46,661 --> 00:13:49,410 Sada je malo varaju jer, znaš ono, tu je zapravo 308 00:13:49,410 --> 00:13:52,920 backslash nje je na kraju riječi da sam vjerojatno trebala riješiti, 309 00:13:52,920 --> 00:13:56,380 ali to nije problem jer PHP ima funkcija zove nasjeckati što doslovno 310 00:13:56,380 --> 00:13:58,480 kotleti off jedan znak na samom kraju. 311 00:13:58,480 --> 00:13:59,400 Dakle, nema problema. 312 00:13:59,400 --> 00:14:02,199 Mi smo otišli naprijed i zapravo skraćena da bi upravo to. 313 00:14:02,199 --> 00:14:05,240 I sada bi trebao vjerojatno pratiti veličine, tako-a neka barem ne this-- 314 00:14:05,240 --> 00:14:05,835 Veličina ++. 315 00:14:05,835 --> 00:14:07,339 Ja mogu učiniti što prije. 316 00:14:07,339 --> 00:14:10,380 A onda je to vjerojatno će raditi sasvim u redu, tako da je povratak istina. 317 00:14:10,380 --> 00:14:10,930 Gotovo. 318 00:14:10,930 --> 00:14:11,797 PSET 5. 319 00:14:11,797 --> 00:14:13,545 >> [Smijeh] 320 00:14:13,545 --> 00:14:14,420 >> DAVID J. Malan: U redu. 321 00:14:14,420 --> 00:14:16,628 Mi ćemo to učiniti opet sa sljedećim PSET, previše. 322 00:14:16,628 --> 00:14:18,730 Pa što je s veličinom? 323 00:14:18,730 --> 00:14:22,080 Pa, to je jedan nadajmo se radi o kao što se i očekuje posljednji put, 324 00:14:22,080 --> 00:14:24,460 iako moram učiniti ova glupa globalna stvar. 325 00:14:24,460 --> 00:14:26,610 To je samo artefakt iz Dizajn jezik-a. 326 00:14:26,610 --> 00:14:28,450 >> Ali ček malo više zanimljiv. 327 00:14:28,450 --> 00:14:31,420 Dakle, ako sam prošao na dolar prijavite riječ, sam prvi put 328 00:14:31,420 --> 00:14:34,060 Želite imati pristup da je globalna varijabla stol. 329 00:14:34,060 --> 00:14:36,700 A sad ako želim provjerite je li riječ postoji, 330 00:14:36,700 --> 00:14:44,350 Ja jednostavno mogu reći, ako je istina da Sljedeće je postavljen u tablici, 331 00:14:44,350 --> 00:14:49,957 onda ići naprijed i povratak istina; drugo, return false. 332 00:14:49,957 --> 00:14:51,180 Gotovo. 333 00:14:51,180 --> 00:14:52,440 Druga polovica PSET 5. 334 00:14:52,440 --> 00:14:54,540 >> U redu, pa opet, ja sam rezanje nekoliko uglova. 335 00:14:54,540 --> 00:14:56,831 U pravednosti, trebao sam vjerojatno provesti još nekoliko sekundi 336 00:14:56,831 --> 00:14:58,300 na ovoj provedbe. 337 00:14:58,300 --> 00:15:01,860 A ja vjerojatno ne bi trebao ismijavati sve sati ste stavili na PSET toliko. 338 00:15:01,860 --> 00:15:04,045 Dakle strtolower je funkcija. 339 00:15:04,045 --> 00:15:06,670 Nešto slično egzistencijalistički u C, barem znakova, 340 00:15:06,670 --> 00:15:08,560 ali PHP je dobio cijeli niz verziju. 341 00:15:08,560 --> 00:15:11,226 >> To će prisiliti sve u mala slova, a neke od vas 342 00:15:11,226 --> 00:15:14,944 Možda učinili canonicalize što što su stavljanjem u svom rječniku. 343 00:15:14,944 --> 00:15:16,360 A sada to možete učiniti u C, previše. 344 00:15:16,360 --> 00:15:17,780 To nema nikakve veze s PHP. 345 00:15:17,780 --> 00:15:20,260 >> Ali svaki put imate Boolean stanje, 346 00:15:20,260 --> 00:15:22,680 kao nešto na liniji 10 postoji, što je samo 347 00:15:22,680 --> 00:15:27,145 će ocijeniti da se istina ili lažna, a ako je vaš drugi očito 348 00:15:27,145 --> 00:15:33,620 se vraća true ili false, što sam mogao jednostavno stvarno ovo seksi 349 00:15:33,620 --> 00:15:38,360 i samo učiniti nešto poput ovoga. 350 00:15:38,360 --> 00:15:40,500 Tako da je moj ček funkcija. 351 00:15:40,500 --> 00:15:42,560 Dobro, ako Boolean vraća true ili false, 352 00:15:42,560 --> 00:15:44,630 neka je samo to vratiti odmah. 353 00:15:44,630 --> 00:15:47,340 >> A tu je još nekoliko ugađanje Mogao sam napraviti tu i tamo. 354 00:15:47,340 --> 00:15:51,380 Load-- prebacivanja, usput, što je učinio. 355 00:15:51,380 --> 00:15:52,850 Ništa raditi tamo. 356 00:15:52,850 --> 00:15:55,840 Budući da sve memorije u PHP i mnogi drugi jezici 357 00:15:55,840 --> 00:15:57,570 je zapravo uspio za vas. 358 00:15:57,570 --> 00:16:00,330 Dakle, budući da je u C, što je što ste naučili bolno, 359 00:16:00,330 --> 00:16:04,700 sve što malloc ili calloc ili realloc, morate se osloboditi. 360 00:16:04,700 --> 00:16:08,770 Sve što fopen, morate fclose, tako da se u konačnici resursi su oslobođeni 361 00:16:08,770 --> 00:16:11,690 te alate kao što su Valgrind ne primijetiti i ne žale, 362 00:16:11,690 --> 00:16:13,570 što je dobra stvar za rad na njima. 363 00:16:13,570 --> 00:16:16,190 >> No, sigurno, mora postojati biti neki ulov, zar ne? 364 00:16:16,190 --> 00:16:19,400 Inače, mi vrsta izgubiti cijela hrpa tjedana. 365 00:16:19,400 --> 00:16:23,270 Tako je bilo koji broj razloga Zato smo nekako iskoristiti ovu putanju, 366 00:16:23,270 --> 00:16:24,440 ali postoji trade-off. 367 00:16:24,440 --> 00:16:25,820 Dobro, ovo je bio tematski. 368 00:16:25,820 --> 00:16:29,690 >> Pa što bi moglo trade-off Ovdje se kreće, s C u PHP? 369 00:16:29,690 --> 00:16:33,250 Osjećaj sve pobijediti do sada, osim malo ružnoće ovdje ili ondje. 370 00:16:33,250 --> 00:16:34,040 Da. 371 00:16:34,040 --> 00:16:34,700 Što je to? 372 00:16:34,700 --> 00:16:36,064 >> UČENIK: [nečujan] memorije. 373 00:16:36,064 --> 00:16:36,980 DAVID J. Malan: Brzina. 374 00:16:36,980 --> 00:16:37,479 U redu. 375 00:16:37,479 --> 00:16:40,720 Pa, moja brzina je vrlo brzo. 376 00:16:40,720 --> 00:16:42,020 Pravo? 377 00:16:42,020 --> 00:16:44,320 No, brzina izvršenja programa? 378 00:16:44,320 --> 00:16:45,580 U redu, tako da je fer točka. 379 00:16:45,580 --> 00:16:50,930 >> Dakle, kao što bi se to dogodilo, ja unaprijed cued se i moje probati rješenje, jedan 380 00:16:50,930 --> 00:16:53,510 Imao sam na velikoj ploči je rješenje probati-based, 381 00:16:53,510 --> 00:16:55,510 i moram da je u ovom direktoriju ovdje. 382 00:16:55,510 --> 00:16:58,510 Tako sam u trenutku, mogu ići naprijed i pokrenuti ovo Biblije kralja Jamesa, 383 00:16:58,510 --> 00:16:59,657 udarajući Enter. 384 00:16:59,657 --> 00:17:01,990 A to je, nadamo se točno Provedba na kraju, 385 00:17:01,990 --> 00:17:05,109 daje mi vremena u ukupno od 0.38 sekundi za to 386 00:17:05,109 --> 00:17:07,270 jedan pomalo proizvoljna primjer. 387 00:17:07,270 --> 00:17:09,270 >> A ako ja sad ići u to drugi terminal prozor 388 00:17:09,270 --> 00:17:14,569 ovdje gdje sam prvi put otvorio gedit, neka da odem u današnjem code-- koji, opet, 389 00:17:14,569 --> 00:17:19,650 je u ovom direktoriju here-- i neka mi ići naprijed i pokrenuti Speller. 390 00:17:19,650 --> 00:17:23,470 Dakle, samo da bude jasno, ovo je PHP verzija. 391 00:17:23,470 --> 00:17:25,170 Ja sam samo pokazuje vrhu tome ovdje. 392 00:17:25,170 --> 00:17:32,020 >> Dakle, ako ja Speller od tilda CS50 PSET 5 tekstovi, kralj James, ući. 393 00:17:32,020 --> 00:17:39,700 394 00:17:39,700 --> 00:17:43,050 To je još uvijek brže od pisanja je u C, ali ukupno vrijeme 395 00:17:43,050 --> 00:17:47,650 je, obavijest, 0.93, dok je moj C-based provedba bila je 0,38. 396 00:17:47,650 --> 00:17:49,110 Tako da je non-trivijalna razlika. 397 00:17:49,110 --> 00:17:51,100 >> A ovo je samo na jednu datoteku. 398 00:17:51,100 --> 00:17:53,480 Ako ste bili pokrenuti dva Programi u odnosu na velikom brodu 399 00:17:53,480 --> 00:17:56,510 i imaju hrpu ulaza testira, to bi sigurno zbrojiti. 400 00:17:56,510 --> 00:18:00,310 A ako smo imali još veće skupove podataka, To je, također, bi zbrojiti sve više. 401 00:18:00,310 --> 00:18:04,820 Tako da, plaćati neku cijenu brzine je doista slučaj. 402 00:18:04,820 --> 00:18:05,470 Što još? 403 00:18:05,470 --> 00:18:08,000 404 00:18:08,000 --> 00:18:08,860 Da? 405 00:18:08,860 --> 00:18:10,340 >> UČENIK: Količina RAM korištenja. 406 00:18:10,340 --> 00:18:11,756 >> DAVID J. Malan: Količina RAM korištenja. 407 00:18:11,756 --> 00:18:15,380 Pa nisam davao jednu sekundu Mislio prilikom pisanja ovog PHP 408 00:18:15,380 --> 00:18:17,300 verzija kao i na koliko memorije Bio sam pomoću. 409 00:18:17,300 --> 00:18:22,080 Ja sam potpuno odgađanja da je PHP Sam i tko je napisao taj program. 410 00:18:22,080 --> 00:18:24,500 A to bi moglo biti u redu, ali ako ja zapravo jako 411 00:18:24,500 --> 00:18:28,420 stalo cijeđenje koliko izvedbu iz mog programa ili iz moje web stranice 412 00:18:28,420 --> 00:18:31,150 ili iz bilo kojeg alata Ja sam zgrada, možda 413 00:18:31,150 --> 00:18:33,310 PHP, doista, nije pravi jezik. 414 00:18:33,310 --> 00:18:36,330 >> A u stvari, to je razlog zašto, za primjer, mnoge web servers-- 415 00:18:36,330 --> 00:18:38,980 stvarni programi koji posluživati ​​web content-- 416 00:18:38,980 --> 00:18:41,810 nije zapisano u PHP ili Python ili Ruby. 417 00:18:41,810 --> 00:18:44,630 Oni su napisani, kao i sada ćete učiniti s PSEt 6, 418 00:18:44,630 --> 00:18:48,120 u C, tako da možete stisnuti svaki zalogaj izvedbe iz nje 419 00:18:48,120 --> 00:18:50,780 i stvarno vježba Kontrola finozrnati nad onim što je 420 00:18:50,780 --> 00:18:52,980 događa ispod napa, a ne samo uzeti 421 00:18:52,980 --> 00:18:54,890 zdravo za gotovo neke veće Razina struktura podataka. 422 00:18:54,890 --> 00:18:58,071 >> Razmislite, nakon svega, tko u PHP provedena 423 00:18:58,071 --> 00:19:00,070 da je pojam hash table-- to je zapravo više 424 00:19:00,070 --> 00:19:04,260 ispravno zove asocijativni array-- on ili ona imati bilo kakvu ideju 425 00:19:04,260 --> 00:19:07,090 inputa ćete biti stavljanje u strukturi? 426 00:19:07,090 --> 00:19:08,260 Dakle očito nije, zar ne? 427 00:19:08,260 --> 00:19:10,340 To je generički alat u priručniku koji je 428 00:19:10,340 --> 00:19:13,430 uvjetom da svatko tko želi ga koristiti, i tako sigurno da 429 00:19:13,430 --> 00:19:17,680 Ne može biti optimiziran u konačnici za točno ono što želite učiniti. 430 00:19:17,680 --> 00:19:21,180 >> Tako trgovina-offs-- vrijeme razvoja moglo razlikuju, nastup možda razlikuju, 431 00:19:21,180 --> 00:19:23,120 Složenost ili memorije mogli razlikovati. 432 00:19:23,120 --> 00:19:24,820 I tako što ćete sve je da postoji 433 00:19:24,820 --> 00:19:26,570 će biti drugačije Alati za trgovinu. 434 00:19:26,570 --> 00:19:31,160 A u stvari za super većinu ljudi završne projekte u ovoj klasi, 435 00:19:31,160 --> 00:19:34,360 Vjerovali ili ne, C ne ide da bude pravo jezik za korištenje. 436 00:19:34,360 --> 00:19:37,880 >> A u stvari, jedna od takeaways konačnici za bilo koju klasu kao što je ovaj 437 00:19:37,880 --> 00:19:40,510 je da se razmišljate o tome, dobro, što bi trebalo skinuti 438 00:19:40,510 --> 00:19:42,710 polica kada želite riješiti neki problem. 439 00:19:42,710 --> 00:19:46,720 I doista, mi ćemo prijeći taj most čak i više kao što smo gledati na više jezika 440 00:19:46,720 --> 00:19:47,920 čak i izvan danas. 441 00:19:47,920 --> 00:19:50,530 >> Tako ćemo prijelaz sada možda i više upoznat kontekst 442 00:19:50,530 --> 00:19:52,480 za korištenje jezika poput PHP. 443 00:19:52,480 --> 00:19:56,720 To je nešto uobičajeno za korištenje na naredbenog retka, pisanje skripti 444 00:19:56,720 --> 00:19:59,050 kao što sam učinio, ali to je mnogo, mnogo češći. 445 00:19:59,050 --> 00:20:02,350 Te je namijenjena da se koristi u oblik datoteke koje obično završavaju 446 00:20:02,350 --> 00:20:05,060 U .php-- ali to je Ne prerequisite-- 447 00:20:05,060 --> 00:20:07,990 da sami generiraju web sadržaja. 448 00:20:07,990 --> 00:20:11,310 >> Pa neka mi ići naprijed i otvoriti neke primjeri sam pripremiti unaprijed. 449 00:20:11,310 --> 00:20:15,100 I to su zapravo svojevrsni istina priče u toj jednoj od prvih stvari 450 00:20:15,100 --> 00:20:18,200 Ja sam ikada učinio nakon završetka CS50 i možda, mislim, 451 00:20:18,200 --> 00:20:21,350 CS51 godina je moj cimer i ja pomagali 452 00:20:21,350 --> 00:20:24,320 pokrenuti brucoš intramuralnih sportski program, koji je, u to vrijeme, 453 00:20:24,320 --> 00:20:28,610 bio brucoš registracije za razne sportske ispunjavanjem komad papira, 454 00:20:28,610 --> 00:20:31,800 kako su je zvali, hodajući preko dvorišta do Wigglessworthovoj, 455 00:20:31,800 --> 00:20:34,030 i pada u nekim Pad Proctor vrata. 456 00:20:34,030 --> 00:20:37,210 A onda on ili ona će proći kroz ih, a onda zapravo nam ručno e-mail 457 00:20:37,210 --> 00:20:39,140 da smo bili registrirani za neki sport. 458 00:20:39,140 --> 00:20:41,166 >> Pa jasno, prilika za poboljšanje. 459 00:20:41,166 --> 00:20:44,040 Ovih dana, možda ćete se obratiti samo Google obrasci, ali natrag u dan, 460 00:20:44,040 --> 00:20:46,914 imali smo zapravo do for-- to nije ni to dugo ago-- doći 461 00:20:46,914 --> 00:20:49,410 za programiranje jezik koji nije PHP. 462 00:20:49,410 --> 00:20:51,200 U to vrijeme, bilo je nešto što se zove Perl, 463 00:20:51,200 --> 00:20:52,890 koji je otišao iz Voguea tada. 464 00:20:52,890 --> 00:20:54,160 No, ideja je ista. 465 00:20:54,160 --> 00:20:58,940 >> A ja u biti sjeo pokušati da luka ide Perl inačice PHP, 466 00:20:58,940 --> 00:21:03,710 ali u punom disclaimer, nije dao bilo kakvu pomisao na estetici samo još. 467 00:21:03,710 --> 00:21:04,960 Dakle, ovdje je web stranica. 468 00:21:04,960 --> 00:21:05,670 Ova je datoteka. 469 00:21:05,670 --> 00:21:09,470 Ako sam povećavanje, njegova očito zove froshim0.php 470 00:21:09,470 --> 00:21:12,060 Samo zato što je naš prvi Primjer u ovoj seriji. 471 00:21:12,060 --> 00:21:15,970 I primijetiti da je ono što se pojavljuje biti vrlo ružno HTML obliku, 472 00:21:15,970 --> 00:21:18,680 ali oblik je zanimljiva jer omogućuje 473 00:21:18,680 --> 00:21:21,910 mi osigurati unos korisnika u pregledniku. 474 00:21:21,910 --> 00:21:27,730 >> Sad zadnji put kad smo imali oblik, kako bi koga smo predati našu upita parametar, 475 00:21:27,730 --> 00:21:30,450 red parametar kako se zvao? 476 00:21:30,450 --> 00:21:31,330 Dakle Googleu, zar ne? 477 00:21:31,330 --> 00:21:34,090 Mi smo potpuno punted na ideji radiš ništa s tim ulaz. 478 00:21:34,090 --> 00:21:36,160 >> Ali danas, možemo početi proizvoditi izlaz. 479 00:21:36,160 --> 00:21:39,420 I ponašanje idem vidjeti Ovdje početku je prilično trivijalna. 480 00:21:39,420 --> 00:21:42,980 David ću prekrižite spol Ovdje, kažu Matthews ovdje. 481 00:21:42,980 --> 00:21:43,800 Neću biti kapetan. 482 00:21:43,800 --> 00:21:45,410 Idem kliknite registar. 483 00:21:45,410 --> 00:21:50,720 I primijetiti da URL-ima promijenila se registrirati-0.php, 484 00:21:50,720 --> 00:21:52,310 a onda je ovo ružno tekst ovdje. 485 00:21:52,310 --> 00:21:54,460 Dao sam ne misli da oblikovanje toga. 486 00:21:54,460 --> 00:21:59,900 >> No, ono što je zanimljivo je da su tri Vrijednosti su očito prošla u. 487 00:21:59,900 --> 00:22:02,960 To je PHP je vrsta ekvivalent printf-- 488 00:22:02,960 --> 00:22:06,330 vidjet ćemo što to zapravo zove u bit-- koji samo ispisuje 489 00:22:06,330 --> 00:22:08,300 ono što ste prošli u nju. 490 00:22:08,300 --> 00:22:11,414 Dakle, to sugerira da je tom obliku imala najmanje tri polja na njega, 491 00:22:11,414 --> 00:22:12,580 a ti me vidjeli ih upisati. 492 00:22:12,580 --> 00:22:15,739 Jedan je bio moje ime, jedan je bio spol, jedan je bio dom. 493 00:22:15,739 --> 00:22:18,780 A kapetan nije ni dobili poslao u poslužitelja jer nisam to provjeriti. 494 00:22:18,780 --> 00:22:22,150 >> Dakle, ovo je za reći očito, kad pošaljete stvari na webu, 495 00:22:22,150 --> 00:22:26,830 Ne samo da URL ponekad change-- ponekad ne. 496 00:22:26,830 --> 00:22:30,330 U stvari, naziv datoteke promijenio, ali ono što je odsutna iz URL-a 497 00:22:30,330 --> 00:22:32,861 da nismo vidjeli posljednji put s Googleom. 498 00:22:32,861 --> 00:22:33,360 Da? 499 00:22:33,360 --> 00:22:34,380 >> UČENIK: Ne niza upita 500 00:22:34,380 --> 00:22:35,220 >> DAVID J. Malan: Nema niza upita. 501 00:22:35,220 --> 00:22:37,270 Nema upitnika nešto. 502 00:22:37,270 --> 00:22:40,050 Nema upitnik q jednako mačke, kao što smo prošli put. 503 00:22:40,050 --> 00:22:42,170 A tu je svakako nema Naziv upitnik jednak 504 00:22:42,170 --> 00:22:46,310 David ili spavaonica jednako Matthews, pa gdje to sve ide? 505 00:22:46,310 --> 00:22:51,290 >> Pa, neka mi se vratiti na gedit ovdje i otvoriti prvi od tih datoteka 506 00:22:51,290 --> 00:22:57,020 u mom vhost, lokalni domaćin, javni katalog ovdje i otići u froshim0. 507 00:22:57,020 --> 00:23:02,060 Tako ispada da je gotovo sve ove stranice je samo HTML. 508 00:23:02,060 --> 00:23:05,410 A to bi moglo biti upoznati s tobom, ali to će uskoro biti više s PSET 6 509 00:23:05,410 --> 00:23:07,370 i PSET 7 i 8 PSET. 510 00:23:07,370 --> 00:23:09,160 Ali to je samo HTML stranice. 511 00:23:09,160 --> 00:23:12,400 >> A zanimljiva stvar Čini se da je ovdje. 512 00:23:12,400 --> 00:23:16,290 Oblik oznake čije djelovanje atribut ima vrijednost registra 0. 513 00:23:16,290 --> 00:23:18,890 Zato kad sam podnijeti to, to ide do te datoteke. 514 00:23:18,890 --> 00:23:20,620 Ali metoda je različita today-- Post. 515 00:23:20,620 --> 00:23:23,120 Tako ispada tu je najmanje dvije metode na webu koriste 516 00:23:23,120 --> 00:23:24,911 za slanje informacija iz preglednika na poslužitelju. 517 00:23:24,911 --> 00:23:25,980 Nabavite ga stavlja u URL. 518 00:23:25,980 --> 00:23:27,950 Post stavlja ga negdje drugdje. 519 00:23:27,950 --> 00:23:30,570 A kada i zašto bi vas zapravo žele web stranicu 520 00:23:30,570 --> 00:23:34,110 koristiti posta onda umjesto od dobiti, samo intuitivno? 521 00:23:34,110 --> 00:23:37,080 Svaka web stranica. 522 00:23:37,080 --> 00:23:42,010 Kakav podataka treba biti donesen samo by zaključak sada preko vratnice razliku 523 00:23:42,010 --> 00:23:45,184 da se, ako smo vidjeli dva razlike? 524 00:23:45,184 --> 00:23:46,350 UČENIK: [nečujan] osigurati. 525 00:23:46,350 --> 00:23:47,790 DAVID J. Malan: Ako želite nešto biti siguran. 526 00:23:47,790 --> 00:23:50,360 Dakle, možda ćete upisati lozinku na web stranici, kreditne kartice 527 00:23:50,360 --> 00:23:53,030 na web stranici bi vrsta tih suboptimalne 528 00:23:53,030 --> 00:23:56,220 Ako preglednik staviti Vrijednost unutar URL-a. 529 00:23:56,220 --> 00:23:57,680 Zašto? 530 00:23:57,680 --> 00:24:00,059 Možete ga vidjeti, koji ne Čini se da takva velika stvar, 531 00:24:00,059 --> 00:24:03,350 ali izgledi su prilično često hoda daleko od vašeg računala ili korištenja računala 532 00:24:03,350 --> 00:24:05,310 laboratorijima, i tako je netko drugo ili čak cimer 533 00:24:05,310 --> 00:24:08,220 lako mogao prošetati i vidjeti da privatne podatke. 534 00:24:08,220 --> 00:24:10,220 Kada pošaljete e-mail putem weba, vjerojatno 535 00:24:10,220 --> 00:24:12,350 Ne želim da se podaci kraj u URL-u, kao dobro. 536 00:24:12,350 --> 00:24:15,266 I tako je bilo koji broj razloga Zato smo možda želite staviti ga ovdje. 537 00:24:15,266 --> 00:24:18,610 I photos-- pravu, ja ne mogu ni sasvim zamisliti kako bi se grafički, 538 00:24:18,610 --> 00:24:21,480 kao JPEG, i staviti ga u URL. 539 00:24:21,480 --> 00:24:22,330 Ti bi mogao to učiniti. 540 00:24:22,330 --> 00:24:25,840 Postoji načini ga kodiraju, ali to je samo ne jednostavan kao što je to. 541 00:24:25,840 --> 00:24:29,030 >> Dakle, registrirajte 0 je zapravo Vrlo underwhelming. 542 00:24:29,030 --> 00:24:31,610 Sve to govori doslovno je to. 543 00:24:31,610 --> 00:24:35,910 Ona ispisuje unutar neke HTML oznake sljedeće. 544 00:24:35,910 --> 00:24:38,640 Imam PHP oznaku ovdje smješteno unutar unaprijed oznake. 545 00:24:38,640 --> 00:24:42,300 "Pre" samo znači unaprijed oblikovanog teksta, mono-razmaknute, poput pisaćeg stroja. 546 00:24:42,300 --> 00:24:44,836 >> Printr je ispis rekurzivna funkcija. 547 00:24:44,836 --> 00:24:46,710 A tu je i ovo zanimljiva stvar ovdje. 548 00:24:46,710 --> 00:24:48,835 A mi ćemo se vratiti na to jer ima druge, 549 00:24:48,835 --> 00:24:51,140 ali dolar znak podcrtavanja Post Čini se da je 550 00:24:51,140 --> 00:24:56,110 varijabla u PHP-u u kojem ništa šaljete iz preglednika na poslužitelj 551 00:24:56,110 --> 00:24:58,040 dobiva pohranjena za vas. 552 00:24:58,040 --> 00:25:00,930 A vidjet ćemo kako doći na ta informacija prije dugo. 553 00:25:00,930 --> 00:25:04,000 >> Ali prvo, idemo natrag malo drugačiji primjer. 554 00:25:04,000 --> 00:25:09,050 Idete u register-- ili a, froshims1.php, 555 00:25:09,050 --> 00:25:10,470 koji izgleda malo drukčije. 556 00:25:10,470 --> 00:25:12,670 Uzeo sam malo više napor s oblikovanjem, 557 00:25:12,670 --> 00:25:14,370 iako je još uvijek prilično ružno. 558 00:25:14,370 --> 00:25:16,990 Ali ja ću ići naprijed i upisati "Davida" sada. 559 00:25:16,990 --> 00:25:17,850 Muški. 560 00:25:17,850 --> 00:25:19,360 Mi ćemo provjeriti "kapetana" ovaj put. 561 00:25:19,360 --> 00:25:20,660 Mi ćemo učiniti Matthews. 562 00:25:20,660 --> 00:25:22,430 I registrirajte. 563 00:25:22,430 --> 00:25:24,110 >> I ovaj put, kaže, hm, zapravo i nije. 564 00:25:24,110 --> 00:25:26,180 U redu, tako da ono što je registrirati 1? 565 00:25:26,180 --> 00:25:30,509 Pusti me u otvorenom registar 1 and-- hm. 566 00:25:30,509 --> 00:25:32,300 U redu, tako da je ovo Zanimljivo, i to 567 00:25:32,300 --> 00:25:34,880 je stepenica sada prema više zanimljivih programa. 568 00:25:34,880 --> 00:25:38,970 >> Obavijest vrhu ove datoteke ima PHP oznaka, kao i neki komentari. 569 00:25:38,970 --> 00:25:42,590 A to su, za sada, distrakcija pa neka je samo dobiti osloboditi od tih komentara 570 00:25:42,590 --> 00:25:47,070 baš kao i oni u C. I tvrdim s ovim komad koda s komentarom 571 00:25:47,070 --> 00:25:49,280 da je to kod potvrđivanju podnesak. 572 00:25:49,280 --> 00:25:51,690 >> Pa, ispada da varijable kao što su dolar znak 573 00:25:51,690 --> 00:25:53,739 naglašavaju posta su zove super globals. 574 00:25:53,739 --> 00:25:55,530 Oni su poput njih posebne globalne varijable 575 00:25:55,530 --> 00:25:58,840 da su samo omnibus-danas dostupni unutar vašeg programa. 576 00:25:58,840 --> 00:26:03,870 A možete koristiti kvadrat nosača oznake index na njih ne koristi brojeve 577 00:26:03,870 --> 00:26:07,460 kao što su 0, 1, 2, 3, ali stvarne riječi. 578 00:26:07,460 --> 00:26:12,100 >> Tako možete misliti dolar znak naglašavaju dužnost kao svojevrstan hash tablicu 579 00:26:12,100 --> 00:26:15,920 da bi mogao proći ključ u, pregledna riječ-između uglatim zagradama, 580 00:26:15,920 --> 00:26:19,370 i to će vam vratiti Vrijednost koju korisnik zapravo pruža. 581 00:26:19,370 --> 00:26:21,210 PHP ima funkciju zove prazna koji samo 582 00:26:21,210 --> 00:26:23,720 kaže da ili ne, to varijabla je prazna ili ne. 583 00:26:23,720 --> 00:26:27,250 Imamo ove dvostruke barovi, što samo znači ili, kao u C. 584 00:26:27,250 --> 00:26:31,740 >> Tako je na snazi, ova linija 4 je samo govoreći, ako korisnik nije dao ime 585 00:26:31,740 --> 00:26:36,540 ili nije dao spol ili nije dati spavaonica, ići naprijed i preusmjeriti ga 586 00:26:36,540 --> 00:26:38,184 ili joj preko ove linije ovdje. 587 00:26:38,184 --> 00:26:40,600 Dakle, ovo je malo zagonetan, ali to samo znači doslovno 588 00:26:40,600 --> 00:26:43,330 vratite se na ovom mjestu, pa punts korisnika 589 00:26:43,330 --> 00:26:45,420 natrag gdje god on ili ona dolazi. 590 00:26:45,420 --> 00:26:47,880 Ali to je malo neelegantan da sam teško ga kodirani. 591 00:26:47,880 --> 00:26:52,150 >> Ali što ako je to uvjet ako se ne ocjenjuje se istina? 592 00:26:52,150 --> 00:26:55,790 Što ako korisnik nije mi dati mu ili njezino ime i spavaonica i spol? 593 00:26:55,790 --> 00:26:58,540 Da, ako uvjet nije će ocijeniti da istina, 594 00:26:58,540 --> 00:27:00,650 tako da ne udariti izlaz na liniji 7. 595 00:27:00,650 --> 00:27:01,680 Dakle, što se događa? 596 00:27:01,680 --> 00:27:03,880 A to je ono što je zanimljivo o PHP. 597 00:27:03,880 --> 00:27:07,470 >> Možete ispustiti ui iz PHP način, da se tako izrazim. 598 00:27:07,470 --> 00:27:10,985 Ako želite neki broj izvršiti, možete otvoriti i zatvoriti PHP oznaku 599 00:27:10,985 --> 00:27:13,010 i stavio kod tamo kao što sam učinio ovdje. 600 00:27:13,010 --> 00:27:16,810 Čim zatvorite PHP oznaka, poslužitelj 601 00:27:16,810 --> 00:27:19,407 se samo ide ispljunuti što god tamo stavili. 602 00:27:19,407 --> 00:27:21,740 I doista, to je bio dio originalni dizajn PHP, 603 00:27:21,740 --> 00:27:25,280 u dobru iu zlu, bio je to commingling koda i markup 604 00:27:25,280 --> 00:27:25,920 jezik. 605 00:27:25,920 --> 00:27:28,670 I vidjet ćemo da je to vrlo Brzo devolves u nered. 606 00:27:28,670 --> 00:27:31,280 I tako ćemo učiniti bolje od to u konačnici, ali jednostavno 607 00:27:31,280 --> 00:27:35,620 primijetiti lakoća s kojom ja sam zapravo u mogućnosti izvršiti neke logike. 608 00:27:35,620 --> 00:27:37,440 >> Ali ipak malo underwhelming. 609 00:27:37,440 --> 00:27:41,210 Idemo otvoriti verziju dva Frosh IM, koji 610 00:27:41,210 --> 00:27:44,270 očito podnosi register2.php. 611 00:27:44,270 --> 00:27:47,600 Dakle, ova datoteka se zapravo događa da izgledaju gotovo isto. 612 00:27:47,600 --> 00:27:50,780 Ja ću ići na Frosh IM 2. 613 00:27:50,780 --> 00:27:53,050 No, u Frosh IM 2, da vidimo što će se dogoditi. 614 00:27:53,050 --> 00:27:58,110 >> Davide, kliknite na gumb, kao što je to se zove; Matthews, nema kapetana. 615 00:27:58,110 --> 00:27:59,230 Registrirajte se. 616 00:27:59,230 --> 00:28:00,130 Prijavljeni ste. 617 00:28:00,130 --> 00:28:00,700 Ne baš. 618 00:28:00,700 --> 00:28:02,574 Ma čekaj, samo smo učinili da je, primjerice, nije li? 619 00:28:02,574 --> 00:28:04,520 U redu, stand by. 620 00:28:04,520 --> 00:28:06,602 Mi ćemo učiniti sve tri. 621 00:28:06,602 --> 00:28:08,560 Očito nešto je o dogoditi s Gmailom. 622 00:28:08,560 --> 00:28:09,600 Mi ćemo doći. 623 00:28:09,600 --> 00:28:11,900 >> Dakle Frosh IM 3 izgleda ovako. 624 00:28:11,900 --> 00:28:13,050 Ne razlikuju. 625 00:28:13,050 --> 00:28:19,850 Ali kad sam to David, muškarac, Matthews, te Registrirajte se, ovu treću i konačnu verziju 626 00:28:19,850 --> 00:28:22,230 potraživanja, jednostavno vam, registrirani su stvarno. 627 00:28:22,230 --> 00:28:23,560 To je vrsta nebitna. 628 00:28:23,560 --> 00:28:25,600 Ali ja tvrdim s ovim Treća i konačna verzija 629 00:28:25,600 --> 00:28:30,610 Sada sam ponovno točno ono što je moj cimer i ja sagradio za Frosh IM 630 00:28:30,610 --> 00:28:31,731 prije programske godina. 631 00:28:31,731 --> 00:28:32,480 I to je bio jednostavan. 632 00:28:32,480 --> 00:28:34,330 Nije bilo baze podataka, Nema Excel tablicu. 633 00:28:34,330 --> 00:28:36,450 Ali što je još važnije, nema više papira 634 00:28:36,450 --> 00:28:42,520 jer ono što smo učinili s ovim programom bio je zapravo e-mail Proctor, koji je 635 00:28:42,520 --> 00:28:44,530 je prethodno primio ove stvari putem obrazaca. 636 00:28:44,530 --> 00:28:48,890 >> A očito smo programirani ovo takav način da kad netko registrira, 637 00:28:48,890 --> 00:28:52,470 John Harvard je e-mail račun proctor-- ili sam u ovom slučaju, 638 00:28:52,470 --> 00:28:55,960 Ivan Harvard-- sa sljedećim text-- "Ta osoba samo registrirani." 639 00:28:55,960 --> 00:29:00,560 Ime je David, kapetan je prazno; spol, muški; i spavaonica, Matthews. 640 00:29:00,560 --> 00:29:01,560 >> Dakle, ono što se tamo dogodilo? 641 00:29:01,560 --> 00:29:05,360 Pa, datoteke u pitanje je očito register3.php. 642 00:29:05,360 --> 00:29:09,080 I ako sam otvoriti ovaj, vidjet ćete i moć koda kao što je ovaj 643 00:29:09,080 --> 00:29:12,380 i, iskreno, nesigurnost sustava kao što su e-mail. 644 00:29:12,380 --> 00:29:16,290 Upravo sam se pretvarao da učinkovito John Harvard na sljedeći način. 645 00:29:16,290 --> 00:29:20,920 >> Imam otvoren php tag do vrha, koji je Samo kaže da ovdje dolazi neki PHP kod. 646 00:29:20,920 --> 00:29:23,155 Ovdje dolje, ispada vani su knjižnice u PHP. 647 00:29:23,155 --> 00:29:26,410 Vi jednostavno ne trebaju uključuju zaglavlje datoteke kao mnogo. 648 00:29:26,410 --> 00:29:28,900 Možete dobiti više s sudopera, da se tako izrazim. 649 00:29:28,900 --> 00:29:31,820 >> No, ovaj put u redu 4, radim žele poseban knjižnica zove 650 00:29:31,820 --> 00:29:36,087 PHP-om, što je nešto što vas možete instalirati besplatno u mnogim sustavima. 651 00:29:36,087 --> 00:29:37,920 Ovdje dolje sam potvrđivanju podnesak jednostavno 652 00:29:37,920 --> 00:29:40,540 provjeravajući je li korisnik dobije mi ime, spol i spavaonica. 653 00:29:40,540 --> 00:29:44,130 I ako je tako, samo naprijed i instancu cirkularnu. 654 00:29:44,130 --> 00:29:47,020 >> Možete misliti na to kao linija koda koji samo dodjeljuje. 655 00:29:47,020 --> 00:29:48,950 To je poput malloc, ali to je malo više seksi 656 00:29:48,950 --> 00:29:51,790 u koje ste spomenuli ne samo malloc a neki generički broj. 657 00:29:51,790 --> 00:29:55,030 Kažeš, dajte mi jedan od njih, dajte mi novu jedan od njih. 658 00:29:55,030 --> 00:29:57,950 >> A ako ste programirati Java ili C ++, ili drugih jezika, 659 00:29:57,950 --> 00:29:59,130 možda ste vidjeli. 660 00:29:59,130 --> 00:30:01,840 No, kratko je to, ako je nepoznata, ova linija 661 00:30:01,840 --> 00:30:05,410 stavlja na dolar znak mail Poseban struct zove 662 00:30:05,410 --> 00:30:08,731 Objekt koji je izgrađen-u e funkcionalnost. 663 00:30:08,731 --> 00:30:10,355 A u stvari, primjećuju i slično sintakse. 664 00:30:10,355 --> 00:30:11,900 >> Ovo nije pokazivač, sam po sebi. 665 00:30:11,900 --> 00:30:13,990 PHP samo koristi istu sintaksu. 666 00:30:13,990 --> 00:30:17,660 Ova linija je rekao uporabu SMTP-- Simple Mail Transfer 667 00:30:17,660 --> 00:30:20,900 Protokol, što je samo protokol koji se koristi za slanje e-pošte. 668 00:30:20,900 --> 00:30:24,240 To je navodeći uporabu Harvard je SMTP poslužitelj, koji se 669 00:30:24,240 --> 00:30:25,830 je negdje ovdje na kampusu. 670 00:30:25,830 --> 00:30:28,480 >> To govori ono TCP broj porta razgovarati, 671 00:30:28,480 --> 00:30:31,650 a ja samo shvatio da je od strane googling ili molba za pomoć stol. 672 00:30:31,650 --> 00:30:34,640 A onda, jer Harvarda koristi neke sigurnosni sustav na mail server-- 673 00:30:34,640 --> 00:30:37,060 barem za šifriranje promet između tebe i njega, 674 00:30:37,060 --> 00:30:41,380 iako svatko može poslati it-- Idem uključili TLS protokola 675 00:30:41,380 --> 00:30:42,710 za vođenje to sigurno. 676 00:30:42,710 --> 00:30:44,730 >> No, to je mjesto gdje se stvari dobili pomalo zastrašujuće. 677 00:30:44,730 --> 00:30:47,970 Ja mogu samo arbitrarno kažu da sam jharvard, 678 00:30:47,970 --> 00:30:51,930 a ja mogu samo arbitrarno Ovdje sam e-mail. 679 00:30:51,930 --> 00:30:55,650 I onda ja mogu navesti Predmet s ovom linijom ovdje. 680 00:30:55,650 --> 00:30:58,460 >> I to samo izgleda ružno, ali to je samo hrpa ulančavanje. 681 00:30:58,460 --> 00:31:04,480 Ispada PHP ima super korisnu simbol, kao i neke jezike, operater točka, 682 00:31:04,480 --> 00:31:07,340 koja je upravo doslovno concatenates Niz nakon niza nakon niza, 683 00:31:07,340 --> 00:31:09,810 a vi ne morate malloc ili slici iz ukupne duljine niza. 684 00:31:09,810 --> 00:31:10,820 Vi samo to učiniti. 685 00:31:10,820 --> 00:31:15,220 I doista, jer sam nadovezivanjem U sve te stvari s tim točkicama, 686 00:31:15,220 --> 00:31:18,330 to je razlog zašto sam e-mail Poslali izgledala kao što je učinio. 687 00:31:18,330 --> 00:31:20,610 >> A onda na kraju ovdje, šaljem mail. 688 00:31:20,610 --> 00:31:22,580 Dakle, ako je to netočno, Samo ću umrijeti, 689 00:31:22,580 --> 00:31:25,680 što je funkcija koja samo ispisuje na zaslonu neke poruke o pogrešci. 690 00:31:25,680 --> 00:31:29,170 Međutim, to je, u stvari, nazivajući slanja funkciju. 691 00:31:29,170 --> 00:31:31,780 Inače, ako se sve to ne uspije, to me preusmjerava ovamo. 692 00:31:31,780 --> 00:31:34,050 >> A zašto sam vidjeti da Ja sam registriran stvarno? 693 00:31:34,050 --> 00:31:36,110 Pa, to se dogodilo upravo ovdje. 694 00:31:36,110 --> 00:31:38,170 Tako sam donijeti ovo gore za nekoliko razloga. 695 00:31:38,170 --> 00:31:41,542 >> Jedan od njih, to je točno kako, ako ste izgraditi neke web stranice za konačni projekt 696 00:31:41,542 --> 00:31:44,000 ili stvarnom svijetu, ovo je kako ste poslati e-mail podsjetnike 697 00:31:44,000 --> 00:31:45,924 do vaših kupaca ili pretplatnika. 698 00:31:45,924 --> 00:31:47,590 Ovaj je kako možete poslati lozinku podsjetnike. 699 00:31:47,590 --> 00:31:50,760 To je, kako se šalju poruke ljudima da imaju novi Facebook 700 00:31:50,760 --> 00:31:52,990 Poruka na čekanju ili nešto slično. 701 00:31:52,990 --> 00:31:55,010 >> No, to također govori Činjenica da se to moglo 702 00:31:55,010 --> 00:31:58,160 su vrlo dobro iz Davin ili bilo tko drugi. 703 00:31:58,160 --> 00:32:00,567 A ja kažem ovo vrsta s osmijehom jer sam 704 00:32:00,567 --> 00:32:03,400 sasvim siguran što se događa kroz nekoliko svojih umova u ovom trenutku. 705 00:32:03,400 --> 00:32:11,910 Ali ovo je jedna od onih učinite I. kažu, ne kao ja kakve stvari, 706 00:32:11,910 --> 00:32:14,480 jer je trivijalan krivotvoriti e-pošte kao što je ovaj. 707 00:32:14,480 --> 00:32:16,480 Ali, kao što ste možda vidjeli ili pročitati u Crimson, 708 00:32:16,480 --> 00:32:18,271 u zadnje vrijeme to je također prilično trivijalno za ljude 709 00:32:18,271 --> 00:32:20,050 ih pratiti natrag do neke podrijetla. 710 00:32:20,050 --> 00:32:23,790 I pitajte me neko vrijeme, možda na CS50 ručak, kako sam prvi put 711 00:32:23,790 --> 00:32:27,080 Upoznali vrlo blisko gotovo u ur odbora mnogo godina 712 00:32:27,080 --> 00:32:30,890 Prije kad sam otkrila kako je internet radio. 713 00:32:30,890 --> 00:32:36,940 Tako je u bilo nešto case-- nakon što je učinio ur odbora. 714 00:32:36,940 --> 00:32:42,300 >> Dakle, u svakom slučaju, je cijela hrpa super globals, 715 00:32:42,300 --> 00:32:45,960 nakon što se zove ovdje, od kojih je jedan smo saw-- dolar znak donju posta. 716 00:32:45,960 --> 00:32:49,530 Tu je kolega zove get, što je gdje stvari iz URL-a 717 00:32:49,530 --> 00:32:50,690 završi ide. 718 00:32:50,690 --> 00:32:54,051 I tu je cijela hrpa drugih, too-- sjednica i poslužitelj i cookie. 719 00:32:54,051 --> 00:32:55,800 Mi ćemo se vratiti Cookie neki drugi put, 720 00:32:55,800 --> 00:33:01,340 no sjednica je vrsta cool jer upravo now-- do now-- 721 00:33:01,340 --> 00:33:06,350 sve što smo učinili s web-preglednik je vrsta bez državljanstva, da se tako izrazim. 722 00:33:06,350 --> 00:33:10,060 Mogu kliknuti okolo, pristup datoteke na poslužitelj, nešto 723 00:33:10,060 --> 00:33:13,500 se događa na ekranu, ali onda veza zatvara. 724 00:33:13,500 --> 00:33:17,450 Internet Explorer ili Ikona Firefox prestane proklizavati 725 00:33:17,450 --> 00:33:20,340 a vi samo vidjeti što koja web-stranica sadrži. 726 00:33:20,340 --> 00:33:23,530 >> Dakle, HTTP je bez državljanstva u tome nakon što čini vezu, 727 00:33:23,530 --> 00:33:25,050 dobiva neke podatke, to je to. 728 00:33:25,050 --> 00:33:29,940 Nema više veze, za razliku od Skype, za razliku od FaceTime, za razliku od Gchat, koji 729 00:33:29,940 --> 00:33:32,180 održava konstantna Veza s poslužiteljem. 730 00:33:32,180 --> 00:33:34,650 Web je iz temelja isključen, iako ćemo 731 00:33:34,650 --> 00:33:36,630 vidi prije dugo koliko možemo simulirati stvari 732 00:33:36,630 --> 00:33:39,300 kao što su Facebook chat i Gchat, koji održavaju illusion-- 733 00:33:39,300 --> 00:33:41,680 ili stvarno ne održavaju stalna veza pomoću 734 00:33:41,680 --> 00:33:43,270 više moderna tehnologija. 735 00:33:43,270 --> 00:33:49,000 >> Ali ako idem na, recimo, counter.php, ovo je još jedan jednostavan primjer, 736 00:33:49,000 --> 00:33:52,700 kao što ćemo vidjeti, koji je trenutno misli Posjetio sam web nula vremena. 737 00:33:52,700 --> 00:33:56,790 Ali ako ja jednostavno učitajte stranicu, to nekako zna da sam bio ovdje prije. 738 00:33:56,790 --> 00:33:58,840 Ako sam ponovo učitati, to zna da sam bio ovdje prije. 739 00:33:58,840 --> 00:34:01,100 I opet i opet i opet i opet. 740 00:34:01,100 --> 00:34:03,610 >> Dakle, postoji neki plus-plussing događa, ali obavijest 741 00:34:03,610 --> 00:34:07,090 mala stvar vrti sve tako Kratko se vrhu, a zatim odvaja, 742 00:34:07,090 --> 00:34:11,179 pa to nije kao što sam konstantno Priključak na moj aparat. 743 00:34:11,179 --> 00:34:16,929 Pa, ako idem u counter.php, primijetiti kako je jednostavno. 744 00:34:16,929 --> 00:34:19,080 Prvi put sam nazvati ovaj posebni funkcija koja uskoro ćete 745 00:34:19,080 --> 00:34:21,513 počnete uzimati zdravo za gotovo zove sjednici početak. 746 00:34:21,513 --> 00:34:22,179 Početak sjednice. 747 00:34:22,179 --> 00:34:25,095 >> A sjednici odsada je samo će biti kanta, poput kupovine 748 00:34:25,095 --> 00:34:28,120 košarica u kojoj možete staviti vrijednosti i vrsta povjerenje kao programer 749 00:34:28,120 --> 00:34:31,590 da oni će biti ovdje kad koje korisnik dolazi back-- sekundu 750 00:34:31,590 --> 00:34:35,670 poslije, sat kasnije, čak i godinu dana kasnije, tako dugo dok on ili ona ne nestane 751 00:34:35,670 --> 00:34:37,602 njihovi kolačiće, kao što smo na kraju ćemo vidjeti. 752 00:34:37,602 --> 00:34:39,310 A sada sam samo ako je stanje ovdje. 753 00:34:39,310 --> 00:34:44,679 Dakle, ako u sljedećem ključu, zove brojač, postavljena unutar 754 00:34:44,679 --> 00:34:49,210 ove super global-- ovo mljeveno meso stol, ako will-- zove sjednicu, 755 00:34:49,210 --> 00:34:53,350 onda ići naprijed i zgrabite vrijednost od session-- think 756 00:34:53,350 --> 00:34:55,250 to kao kupovinu cart-- i pohraniti ga 757 00:34:55,250 --> 00:34:57,680 u privremenu varijablu pod nazivom brojač. 758 00:34:57,680 --> 00:35:02,240 >> Inače, ako je vrijednost brojača je nije postavljen u tzv košarici, 759 00:35:02,240 --> 00:35:04,430 samo ga inicijalizirati 0. 760 00:35:04,430 --> 00:35:09,830 Na kraju, ovdje dolje, otići i vratiti u kolica ili na sjednici 761 00:35:09,830 --> 00:35:13,000 vrijednost brojača +1. 762 00:35:13,000 --> 00:35:16,730 Tako ispada da je ova Poseban spremnik here-- 763 00:35:16,730 --> 00:35:20,355 koja, opet, je jedan od njih povezan polja, niz koje možete indeksa 764 00:35:20,355 --> 00:35:25,010 u riječi umjesto numbers-- nastave i nakon korisnik ide dalje. 765 00:35:25,010 --> 00:35:26,510 Opet ću se vratiti na stranicu sada. 766 00:35:26,510 --> 00:35:28,400 Prošlo je minutu ili tako. 767 00:35:28,400 --> 00:35:31,300 Ali pamti da sam bio ovdje 19 puta prije. 768 00:35:31,300 --> 00:35:32,740 Ovo je moj 20 posjeta. 769 00:35:32,740 --> 00:35:36,560 >> I tako to će biti ključ provedbi bilo koju web stranicu koja pamti 770 00:35:36,560 --> 00:35:40,640 da ste prijavljeni, da ste stavili nešto doslovni u vašoj košarici 771 00:35:40,640 --> 00:35:43,902 kupiti ili da imate neke Broj poruka na čekanju. 772 00:35:43,902 --> 00:35:45,610 Bilo kada želite zapamtiti podatke, 773 00:35:45,610 --> 00:35:48,130 vidjet ćemo da je PHP, kao što su nekoliko drugih jezika, 774 00:35:48,130 --> 00:35:53,640 pruža nam se s ovom iluzijom države iako, kao što ćete vidjeti u PSET 6, 775 00:35:53,640 --> 00:35:57,642 što radite HTTP zahtjeve od klijenta do poslužitelja, to je to. 776 00:35:57,642 --> 00:35:59,850 Nakon što ste dobili natrag da odgovor, ništa više 777 00:35:59,850 --> 00:36:01,790 vraćaju s poslužitelja po defaultu. 778 00:36:01,790 --> 00:36:03,820 No, vidjet ćemo kako raditi oko toga. 779 00:36:03,820 --> 00:36:07,430 >> Pa sad, pokušajmo očistiti ovo gore malo. 780 00:36:07,430 --> 00:36:09,470 Vidjeli smo nekoliko različiti primjeri tamo. 781 00:36:09,470 --> 00:36:12,250 Oh, i kao po strani, one koji poznaju ili upoznati, 782 00:36:12,250 --> 00:36:14,230 razlog da Frosh IM primjer otišao 783 00:36:14,230 --> 00:36:18,060 od izgleda stvarno ružno slightly-- dobro, 784 00:36:18,060 --> 00:36:23,160 još ugly-- blago manje ružna iako još uvijek ružna 785 00:36:23,160 --> 00:36:25,230 je, jer ako gledamo na izvorni kod ovdje 786 00:36:25,230 --> 00:36:28,240 ispada da sam to na samom vrhu datoteke. 787 00:36:28,240 --> 00:36:32,570 >> Ispada da je bootstrap je jedan od mnogih slobodno dostupni knjižnice vani 788 00:36:32,570 --> 00:36:37,140 koje postoje ne za programskim jezicima Uvijek, ali za CSS ili JavaScript 789 00:36:37,140 --> 00:36:39,190 ili HTML ili bilo koji broj jezika. 790 00:36:39,190 --> 00:36:42,160 >> I ti ljudi here-- izvorno izašao 791 00:36:42,160 --> 00:36:44,730 od Twitter-- samo cijela hrpa stilova. 792 00:36:44,730 --> 00:36:47,360 To je masivni datoteka Ovdje je netko napisao, 793 00:36:47,360 --> 00:36:51,020 ili je netko napisao, tijekom vremena koje određuje boje i oblikovanje 794 00:36:51,020 --> 00:36:53,740 i sitnica, tako da ja mogu vrsta posuditi svoju sintaksu 795 00:36:53,740 --> 00:36:56,157 i ne moraju shvatiti kako nokautirati moju formu. 796 00:36:56,157 --> 00:36:57,990 To također minified tako da se računalo može 797 00:36:57,990 --> 00:37:00,560 razumijem to, ali ne nužno čovjek. 798 00:37:00,560 --> 00:37:03,050 Dakle, to je samo zato stilizacija tamo promijenilo. 799 00:37:03,050 --> 00:37:05,450 >> Ali neka je sada bolje u pogledu dizajna, 800 00:37:05,450 --> 00:37:07,490 jer ako ostanemo dolje ova cesta predugo, 801 00:37:07,490 --> 00:37:11,290 naš broj će se dobili neuredan i Messier. 802 00:37:11,290 --> 00:37:13,040 Tako ćemo se usredotočiti na ovim primjerima ovdje. 803 00:37:13,040 --> 00:37:15,090 Posljednji za danas. 804 00:37:15,090 --> 00:37:18,720 >> Dakle, ovdje je super jednostavna Verzija 1.0 od CS50 web stranici. 805 00:37:18,720 --> 00:37:21,250 To ima samo veze s predavanja i nastavni plan i program, 806 00:37:21,250 --> 00:37:25,490 i to pomoću taj neuređen popis tag-- UL oznaku da mi se prošli put. 807 00:37:25,490 --> 00:37:28,800 A ako u stvari, ako sam otvaraju View Page Source 808 00:37:28,800 --> 00:37:31,710 vidjet ćete da je to stvarno, stvarno jednostavan HTML. 809 00:37:31,710 --> 00:37:35,460 A u stvari, iako je to PHP datoteku ispod haube, 810 00:37:35,460 --> 00:37:38,620 to je još uvijek samo pljuvanje se samo HTML za sada. 811 00:37:38,620 --> 00:37:41,312 >> Dakle, ako ja kliknite na predavanja, vidimo se to dogoditi. 812 00:37:41,312 --> 00:37:43,020 A ako ja kliknite na tjedan nula, vidimo to. 813 00:37:43,020 --> 00:37:44,920 A ako ja kliknite na Srijeda, vidimo to. 814 00:37:44,920 --> 00:37:47,900 A to je očito bio PDF od slajdova iz tog dana. 815 00:37:47,900 --> 00:37:52,020 Sve što sam učinio je veza s sidro tag na ovaj URL ovdje. 816 00:37:52,020 --> 00:37:55,400 >> Dakle, to je samo reći da je ovo lijepa jednostavna verzija CS50 web stranici. 817 00:37:55,400 --> 00:37:56,790 Da vidimo kako se to provodi. 818 00:37:56,790 --> 00:38:01,240 Ako odem u mvc0 imenik, vidjet ćemo nekoliko datoteka. 819 00:38:01,240 --> 00:38:03,250 Jedan od njih je PROČITAJME, pa ako neke je to prebrzo, 820 00:38:03,250 --> 00:38:05,166 možete samo guranje oko više ležerno kasnije. 821 00:38:05,166 --> 00:38:07,930 I obavijest ovdje je index.php datoteke. 822 00:38:07,930 --> 00:38:09,960 Ispada da ako vi sami, ljudski, 823 00:38:09,960 --> 00:38:14,460 Ne odrediti konačni ime u URL, web poslužitelj obično 824 00:38:14,460 --> 00:38:17,010 zaključuje neki zadani naziv za vas. 825 00:38:17,010 --> 00:38:20,060 Indeks dot nešto je uglavnom zadana. 826 00:38:20,060 --> 00:38:23,010 >> Pa to je zato maloprije kad sam posjetio ovaj URL ovdje, 827 00:38:23,010 --> 00:38:26,750 nema naziv datoteke, nema datoteka produžetak, nema rok u URL. 828 00:38:26,750 --> 00:38:29,710 To samo znala nekako magično tražiti index.php. 829 00:38:29,710 --> 00:38:30,870 To je samo konvencija. 830 00:38:30,870 --> 00:38:32,360 Može se zvati ništa. 831 00:38:32,360 --> 00:38:35,110 >> Dakle, ako ja sada ići u index.php, vidjet ćete 832 00:38:35,110 --> 00:38:37,100 da, indeed-- neka je dobili osloboditi od komentara 833 00:38:37,100 --> 00:38:39,500 ovdje, jer tamo je stvarno ništa zanimljivo it-- 834 00:38:39,500 --> 00:38:41,579 to je samo teško kodirana HTML. 835 00:38:41,579 --> 00:38:43,370 Dakle, to je u skladu, ipak, s mojim zahtjevom 836 00:38:43,370 --> 00:38:45,230 da možete izmiješati HTML i PHP. 837 00:38:45,230 --> 00:38:48,060 Nema stvarne programiranje logika ovdje. 838 00:38:48,060 --> 00:38:51,030 >> I ostale datoteke su prilično koliko jednako nezanimljiv. 839 00:38:51,030 --> 00:38:56,240 To je samo teško-kodirani tjedna jedan Ovdje u tjedan jedan m i tjednu jednom w, 840 00:38:56,240 --> 00:38:57,510 za ponedjeljak i srijedu. 841 00:38:57,510 --> 00:39:01,890 A onda, ako sam otvoriti tjedan nula, primijetiti da je gotovo identični. 842 00:39:01,890 --> 00:39:03,320 >> I to je vrsta ključni takeaway. 843 00:39:03,320 --> 00:39:06,180 Obavijest koliko suvišno je to. 844 00:39:06,180 --> 00:39:10,710 Ove datoteke jedva promijeniti, a ipak sam izvukao jednu od tih copy / paste radnih mjesta 845 00:39:10,710 --> 00:39:13,420 gdje sam uzeo jednu file-- valjda U tjednu zero-- ga kopirati 846 00:39:13,420 --> 00:39:16,320 kada je jedan tjedan došao oko, i praćka nekoliko vrijednosti. 847 00:39:16,320 --> 00:39:18,590 Vjerojatno smo trebali biti u mogućnosti to učiniti bolje od ovoga. 848 00:39:18,590 --> 00:39:21,800 >> Dakle, idemo natrag do MVC i otići u jednu verziju. 849 00:39:21,800 --> 00:39:24,810 I primijetiti Imam nekoliko slika, jer ono što 850 00:39:24,810 --> 00:39:29,870 bio je zajednički svim tim datotekama samo Trenutak ago-- ako idem natrag u verziji 0, 851 00:39:29,870 --> 00:39:32,600 Idemo natrag u indeks, i samo postulate-- 852 00:39:32,600 --> 00:39:36,090 Jednom sam se osloboditi od comments-- što je dio ove stranice 853 00:39:36,090 --> 00:39:40,072 je vjerojatno u svakom od mojih datoteka? 854 00:39:40,072 --> 00:39:40,780 Samo ga zovu. 855 00:39:40,780 --> 00:39:44,620 Koji linije umnožavati Vjerojatno preko svih tih stranica? 856 00:39:44,620 --> 00:39:45,120 Da? 857 00:39:45,120 --> 00:39:46,110 >> UČENIK: [nečujan]. 858 00:39:46,110 --> 00:39:47,660 >> DAVID J. Malan: 1 do 9. 859 00:39:47,660 --> 00:39:48,720 Da, apsolutno. 860 00:39:48,720 --> 00:39:52,080 1 do 9, osim možda 8 mijenja malo jer CS50 861 00:39:52,080 --> 00:39:54,650 postaje predavanja ili Tjedan nula ili nešto. 862 00:39:54,650 --> 00:39:55,970 No, gotovo identični. 863 00:39:55,970 --> 00:39:58,657 Dakle, sve ove stvari je samo vrsta kopirati i zalijepiti. 864 00:39:58,657 --> 00:40:00,490 A tu je par druge linije se mogu sjetiti 865 00:40:00,490 --> 00:40:05,000 to su vjerojatno jednaki preko svih datoteka. 866 00:40:05,000 --> 00:40:06,315 >> UČENIK: 12 i 13. 867 00:40:06,315 --> 00:40:07,190 DAVID J. Malan: Da. 868 00:40:07,190 --> 00:40:11,220 Naravno, 12, 13, i 14, vjerojatno, Upravo zbog toga je zanimljivih stvari 869 00:40:11,220 --> 00:40:15,460 se događa na linijama 11 i 10, tako da će to činiti. 870 00:40:15,460 --> 00:40:18,350 Pa pogledajmo verzija 1, koja nastoji poboljšati na to. 871 00:40:18,350 --> 00:40:24,020 U verziji 1. ovoga MVC example-- mi ćemo objasniti što znači MVC u moment-- 872 00:40:24,020 --> 00:40:27,420 ako idem u indeksu, je vrsta izgleda malo zbunjujuće sada. 873 00:40:27,420 --> 00:40:28,880 Nije to baš tako jednostavno kao i prije. 874 00:40:28,880 --> 00:40:30,906 >> Ali jednom kada počnete čitati pažljivo, to je 875 00:40:30,906 --> 00:40:32,530 prilično jednostavan što radi. 876 00:40:32,530 --> 00:40:34,397 Navodno se postroje 1 i Linija 8 zamijenili 877 00:40:34,397 --> 00:40:37,230 sve stvari koje ste upravo identified-- iako je samo za dobru mjeru, 878 00:40:37,230 --> 00:40:41,900 Ostavio sam ULS postoji samo u slučaju neke dana nije imala popis stvari. 879 00:40:41,900 --> 00:40:47,860 I tako je potrebna je vrsta kao što funta uključiti u C. primjeraka i paste 880 00:40:47,860 --> 00:40:50,470 sadržaj učinkovito upravo ovdje u ovu datoteku. 881 00:40:50,470 --> 00:40:53,650 >> Tako je u header.php, kao i vi Možda zaključiti iz naziva, 882 00:40:53,650 --> 00:40:55,330 će biti u zaglavlju stranice. 883 00:40:55,330 --> 00:40:57,110 To je vrsta siročad ovdje. 884 00:40:57,110 --> 00:41:01,820 To ima samo vrh na njega, ali nema više sadržaja u nastavku. 885 00:41:01,820 --> 00:41:05,070 >> A ako gledam podnožje međuvremenu, koji je bio drugi datoteku mentioned-- 886 00:41:05,070 --> 00:41:08,830 ovo je čak i manje zanimljiva, ali opet, to je uobičajeno za sve. 887 00:41:08,830 --> 00:41:10,250 Dakle, ovo je podnožje. 888 00:41:10,250 --> 00:41:11,300 To je zaglavlje. 889 00:41:11,300 --> 00:41:13,950 To je datoteka koja je mijenjaju, pa zašto ne 890 00:41:13,950 --> 00:41:18,140 pokušati faktor iz zajedništvo s ove dvije linije ovdje? 891 00:41:18,140 --> 00:41:20,090 >> Ali možemo očistiti ovo se malo dalje. 892 00:41:20,090 --> 00:41:23,260 Ja ću ići naprijed i otvaraju verziju u kojoj dva 893 00:41:23,260 --> 00:41:27,106 vidjet ćemo da postoji nova datoteka, helpers.php. 894 00:41:27,106 --> 00:41:28,610 Vidjet ćemo što je to u ovom trenutku. 895 00:41:28,610 --> 00:41:30,930 Idemo na indeks, kao što je polazna točka kao i prije. 896 00:41:30,930 --> 00:41:35,230 >> I sada primijetiti sam zahtijevaju helpers.php, ne zaglavlje ili podnožje. 897 00:41:35,230 --> 00:41:41,720 Ali pomagači je vrsta sviđa helpers.c i helpers.h iz PSET 2 898 00:41:41,720 --> 00:41:46,150 ili PSET 3 davno kada zapravo ni tražiti i naći tu PSET, 899 00:41:46,150 --> 00:41:50,950 i imali ste sve kodu za sortiranje i traži u zasebnu datoteku. 900 00:41:50,950 --> 00:41:52,510 To je ono što se ovdje događa. 901 00:41:52,510 --> 00:41:54,390 >> A sada linije 3 izgleda malo drukčije. 902 00:41:54,390 --> 00:41:55,920 I to je samo jedan redak. 903 00:41:55,920 --> 00:41:57,950 Da bi se to još više Jasno, sam mogao samo 904 00:41:57,950 --> 00:42:01,820 Ne da je to stilski dosljedna uz sve ostalo što smo učinili. 905 00:42:01,820 --> 00:42:04,130 Ali to zapravo nije mijenja funkcionalnost. 906 00:42:04,130 --> 00:42:05,880 To je samo jedna linija koda stvarne. 907 00:42:05,880 --> 00:42:09,010 >> Navodno, postoji funkcija negdje zove uzvratiti udarac glavom 908 00:42:09,010 --> 00:42:11,420 i to je mjesto gdje se stvari dobiti prilično moćan. 909 00:42:11,420 --> 00:42:17,040 Obavijest da je unutar svojih zagrada je ono što drugi dio sintakse? 910 00:42:17,040 --> 00:42:19,780 911 00:42:19,780 --> 00:42:23,350 To je vjerojatno malo teško je reći, ali primijetiti there's-- ću staviti neke bijele 912 00:42:23,350 --> 00:42:24,300 Prostor. 913 00:42:24,300 --> 00:42:25,530 Postoji četvornih zagrade. 914 00:42:25,530 --> 00:42:29,700 >> I četvornih nosači smo vidjeli malo prije U kontekstu asocijativnim polja, 915 00:42:29,700 --> 00:42:31,580 koje su, opet, kao što je hash tablice. 916 00:42:31,580 --> 00:42:36,230 A ako mislite sada C, Redoslijed argumenata u funkciji 917 00:42:36,230 --> 00:42:37,570 mora uvijek biti isti. 918 00:42:37,570 --> 00:42:41,146 Morate zapamtiti što se naručiti is-- X, Y, Z ili Z, Y, x-- 919 00:42:41,146 --> 00:42:44,020 i morate ih uvijek pružiti u istom redoslijedu ili pogledati ih 920 00:42:44,020 --> 00:42:45,100 Ako ste zaboravili. 921 00:42:45,100 --> 00:42:51,140 >> No, čini se da je pametan način donošenja proizvoljnu vrijednost ključa 922 00:42:51,140 --> 00:42:55,840 para pri čemu naslov je ime je argument u ovom slučaju 923 00:42:55,840 --> 00:42:58,334 i CS50 je njegova vrijednost. 924 00:42:58,334 --> 00:43:00,250 A činjenica da imam ovi četvornih nosači 925 00:43:00,250 --> 00:43:02,560 Ovdje znači da sam mogao Također dolazi u nečemu 926 00:43:02,560 --> 00:43:07,550 kao i tjedan je 1 ili 0 ili 2 ili 3. 927 00:43:07,550 --> 00:43:10,550 Tako smo parametrirati ova funkcija tako 928 00:43:10,550 --> 00:43:15,180 da to može potrajati i više ulaza, ali za sada je to samo jedan. 929 00:43:15,180 --> 00:43:20,060 >> Ako ja sada ići u helpers.php, primijetiti ono što radi. 930 00:43:20,060 --> 00:43:22,030 To je malo novih funkcionalnosti, 931 00:43:22,030 --> 00:43:24,190 ali za sada samo uzeti na vjeri da je to 932 00:43:24,190 --> 00:43:26,570 sintaksa s kojom definirati ulogu u PHP. 933 00:43:26,570 --> 00:43:27,840 Vi doslovno kažu funkciju. 934 00:43:27,840 --> 00:43:30,090 Ne odrediti povratak tipa, te da je u skladu 935 00:43:30,090 --> 00:43:33,880 s promjenjiva detalj ranije gdje se zapravo ne snažno tipa. 936 00:43:33,880 --> 00:43:35,650 >> To samo specificira da, po defaultu, ova 937 00:43:35,650 --> 00:43:37,460 Potrebno je asocijativni Niz kao argument. 938 00:43:37,460 --> 00:43:38,210 I znate što? 939 00:43:38,210 --> 00:43:41,450 Ako korisnik ne prođe jedan u, pretpostavljamo zadanu vrijednost. 940 00:43:41,450 --> 00:43:44,680 >> To je značajka koja C nema za nas, što je lijepo, jer sada 941 00:43:44,680 --> 00:43:46,430 podataka, čak i ako vas ne daj mu ništa, 942 00:43:46,430 --> 00:43:49,300 će biti Niz ali prazna jedan. 943 00:43:49,300 --> 00:43:51,860 I kao stranu, ekstrakta Upravo radi nešto funky 944 00:43:51,860 --> 00:43:56,380 gdje to traje sve tipke iz toga asocijativni niz, sve stvari 945 00:43:56,380 --> 00:43:59,950 možete staviti u uglatim zagradama, i stvara varijable iz njih 946 00:43:59,950 --> 00:44:06,270 kako bismo u konačnici može imati pristup da ih u footet.php i header.php. 947 00:44:06,270 --> 00:44:08,950 To je nešto apstraktno, pa neka mi isticati. 948 00:44:08,950 --> 00:44:12,990 >> U index.php, primijetiti da sam prolazi u ključnom vrijednosti par naslova 949 00:44:12,990 --> 00:44:14,850 u vrijednosti od CS50. 950 00:44:14,850 --> 00:44:18,660 Ako sada pogledate helpers.php, primijetiti da RenderHeader 951 00:44:18,660 --> 00:44:23,870 je vađenje da su podaci koje sam prolazila u, a zatim zahtijevaju header.php. 952 00:44:23,870 --> 00:44:27,970 Ono što sam učinio je vrsta siromah-a Provedba sada od sljedećeg. 953 00:44:27,970 --> 00:44:31,720 >> Ako sam otvoriti header.php, Obavijest da sam više ne tvrdi 954 00:44:31,720 --> 00:44:34,890 kodirana riječ CS50 u ovom zaglavlju datoteke. 955 00:44:34,890 --> 00:44:39,310 Ja sam stavio ovo doduše, kruto nazivom funkcija, HTML posebne znakova, 956 00:44:39,310 --> 00:44:40,170 tamo. 957 00:44:40,170 --> 00:44:41,640 Ali primijetiti ono što sam učinio. 958 00:44:41,640 --> 00:44:44,240 Imam otvoren HTML. 959 00:44:44,240 --> 00:44:47,420 I onda imamo otvorenu glavu i otvoreno naslov. 960 00:44:47,420 --> 00:44:52,380 >> A onda unutar naslov je otvoren i bliski oznake, imam malo PHP koda. 961 00:44:52,380 --> 00:44:56,670 I to je lijepo, ali sintakse, što samo znači odjek van. 962 00:44:56,670 --> 00:44:59,840 To doslovno znači this-- jeka following-- 963 00:44:59,840 --> 00:45:01,910 ali to je više seksi pisati. 964 00:45:01,910 --> 00:45:05,000 Echo iz naslova koji je donesen u. 965 00:45:05,000 --> 00:45:07,560 >> Ali što mislite HTML Posebna char je sve o, 966 00:45:07,560 --> 00:45:10,590 pogotovo ako imate neki od njih prije HTML iskustva? 967 00:45:10,590 --> 00:45:14,050 Koji znakovi mogu biti opasno proći na stranicu 968 00:45:14,050 --> 00:45:17,980 gdje ste dinamički generira Web stranica s kodom ovako? 969 00:45:17,980 --> 00:45:21,370 970 00:45:21,370 --> 00:45:24,650 Pusti me na ovu sliku, verzija dva, i vidjeti ako ja ne mogu izazvati ovo. 971 00:45:24,650 --> 00:45:26,210 >> Verzija dva je to. 972 00:45:26,210 --> 00:45:28,510 I primijetiti sve je u redu, radi dobro. 973 00:45:28,510 --> 00:45:35,280 Ali pretpostavljam da idem u index.php i Ja precizirao da naslov moju stranicu 974 00:45:35,280 --> 00:45:36,630 Nije CS50. 975 00:45:36,630 --> 00:45:44,930 To je uzbuna otvorena zagrada skripta Pozdrav svijetu, u neposrednoj blizini jednog citat, 976 00:45:44,930 --> 00:45:49,740 u blizini zagrada, točka, otvorena zagrada, Slash skripte. 977 00:45:49,740 --> 00:45:51,897 >> Skripta, kao što ćemo na kraju vidjeti, je oznaka 978 00:45:51,897 --> 00:45:54,480 koje možete koristiti da koristite drugoga programski jezik zove 979 00:45:54,480 --> 00:45:56,330 JavaScript unutar web stranice. 980 00:45:56,330 --> 00:45:57,960 A sada primjetiti logiku ovdje. 981 00:45:57,960 --> 00:45:59,840 Ovdje je ključ zove naslov. 982 00:45:59,840 --> 00:46:02,690 Ovdje je to luda dugo vrijednost sada. 983 00:46:02,690 --> 00:46:07,840 >> Ali ako idem na pomagače page- odnosno, stranica zaglavlje, 984 00:46:07,840 --> 00:46:11,310 Zovem ovu funkciju na taj naslov prvog. 985 00:46:11,310 --> 00:46:15,250 Dakle, ako ja sada ponovno ovu stranicu, ja ovo vidjeti, što izgleda smiješno, 986 00:46:15,250 --> 00:46:16,110 ali to je sigurno. 987 00:46:16,110 --> 00:46:17,310 To samo izgleda glupo. 988 00:46:17,310 --> 00:46:20,320 >> No, pretpostavimo, umjesto Zaboravio sam ovo. 989 00:46:20,320 --> 00:46:24,660 I zapamti moje riječi, broj različit od nule od vas će se zaboraviti da to učinite 990 00:46:24,660 --> 00:46:27,790 a vi ćete dobiti neki marljivi Učenik ili prijatelj dolazi 991 00:46:27,790 --> 00:46:31,540 Vama na CS50 sajmu ili anonimno noću poking okolo na svoju web stranicu 992 00:46:31,540 --> 00:46:35,300 i bitno ubrizgavanje kod Bez znanja vas na svoje stranice 993 00:46:35,300 --> 00:46:35,800 nekako. 994 00:46:35,800 --> 00:46:39,000 >> Jer ako ja jednostavno pljunuti kako naslov ovdje i naslov 995 00:46:39,000 --> 00:46:44,330 there-- dobro, ako je naslov doslovno izgleda ovako i PHP 996 00:46:44,330 --> 00:46:47,660 kao jezik koji se može pljuvati iz drugog jezika teksta, 997 00:46:47,660 --> 00:46:50,650 ovo je doslovno ide zamijeniti tu oznaku s, 998 00:46:50,650 --> 00:46:53,010 Naravno, ono što sam stavio na drugom mjestu. 999 00:46:53,010 --> 00:46:57,640 >> Dakle, ako ja sad ići tamo i ponovno nakon poništiti one sigurnosne mehanizme, 1000 00:46:57,640 --> 00:46:59,982 Sada moram pozdraviti ovdje svijet. 1001 00:46:59,982 --> 00:47:02,690 Sada to nije sve što je velika nositi, ali ti bi mogao učiniti nešto 1002 00:47:02,690 --> 00:47:05,119 malo više zlonamjerni Ovdje, kao što postoji 1003 00:47:05,119 --> 00:47:08,410 Drugi tags-- kao što ćemo vidjeti nakon što trošimo više vremena u JavaScript-- kao mjestu 1004 00:47:08,410 --> 00:47:14,910 dot href dobiva, citat, citat, HTTP business.com, ali suprotno od toga 1005 00:47:14,910 --> 00:47:15,950 od neki dan. 1006 00:47:15,950 --> 00:47:20,120 A sada možete izazvati web Stranica je zapravo ići odmah 1007 00:47:20,120 --> 00:47:21,190 na ovoj web stranici ovdje. 1008 00:47:21,190 --> 00:47:23,000 >> I zapravo, ne želim čak i ići na business.com 1009 00:47:23,000 --> 00:47:24,749 jer ne želim da znaju što je to. 1010 00:47:24,749 --> 00:47:28,710 No, to je, također, će izazvati kod se ubrizgava stranicu. 1011 00:47:28,710 --> 00:47:32,680 Dakle, to je samo reći da iako uvodimo super rano na neke 1012 00:47:32,680 --> 00:47:36,800 tih složenije strukture, to je sve prema kraju, pazeći 1013 00:47:36,800 --> 00:47:39,320 da je vaš broj nije ranjivi. 1014 00:47:39,320 --> 00:47:40,960 >> Tako je sada treća verzija ovdje. 1015 00:47:40,960 --> 00:47:42,470 To je sve malo ljubitelj. 1016 00:47:42,470 --> 00:47:44,875 Nisam zapravo like-- analni strana mene 1017 00:47:44,875 --> 00:47:47,750 bio uzimajući malo iznerviran Činjenica da sam funkcija zove 1018 00:47:47,750 --> 00:47:51,940 RenderHeader i RenderFooter koji su gotovo identični. 1019 00:47:51,940 --> 00:47:55,400 Dakle, to palo na pamet, zašto ne Ja parametriranje ove funkcije 1020 00:47:55,400 --> 00:47:59,180 u samo jednom zove žbuke, su to uzeti drugi argument 1021 00:47:59,180 --> 00:48:04,420 kao ime šablone, konačni da render-- bilo zaglavlje ili podnožje? 1022 00:48:04,420 --> 00:48:07,160 A onda po želji, ako želim proći u nekim ključnim parovima vrijednosti 1023 00:48:07,160 --> 00:48:10,580 kao što sam učiniti za naslov za header, ali ne i za podnožja, 1024 00:48:10,580 --> 00:48:11,800 Mogao bih to učiniti. 1025 00:48:11,800 --> 00:48:16,510 >> I tako sada, ako idem u helpers.php, to je malo složeniji. 1026 00:48:16,510 --> 00:48:19,670 A ja ću mahati ruke na pojedinosti, ali to je samo jedna funkcija. 1027 00:48:19,670 --> 00:48:21,890 Dakle, to je korak ka boljem dizajnu. 1028 00:48:21,890 --> 00:48:23,360 >> Možemo uzeti taj jedan korak dalje. 1029 00:48:23,360 --> 00:48:28,890 Ako odem u svoju četvrtinu verzija toga, primijetiti sada 1030 00:48:28,890 --> 00:48:31,320 da radim nešto čak i više vrsta zagonetan. 1031 00:48:31,320 --> 00:48:33,230 I znam da je ovo Puno apsorbirati odjednom, 1032 00:48:33,230 --> 00:48:35,080 ali mi smo samo vrsta čišćenja stvari. 1033 00:48:35,080 --> 00:48:38,550 Sada sam stavljajući svoje pomagače datoteku u mapu pod nazivom 1034 00:48:38,550 --> 00:48:41,190 includes-- samo proizvoljna imenovati gdje želim staviti stvari 1035 00:48:41,190 --> 00:48:44,300 da želim include-- a zatim Ostatak je to isto. 1036 00:48:44,300 --> 00:48:47,140 >> Ali ako ja sada gledati u gedit, Obavijest da je sam stečen osloboditi 1037 00:48:47,140 --> 00:48:51,940 od svih tih drugih datoteka i imam ih preselili, primjerice, u ovdje. 1038 00:48:51,940 --> 00:48:55,110 A onda je u predložaka, Imam ovo ovdje, previše. 1039 00:48:55,110 --> 00:48:59,292 I tako je to sve sada prema koraku korištenja puno bolji dizajn uzorak. 1040 00:48:59,292 --> 00:49:01,000 I mi smo vrlo brzo će se odmaknuti 1041 00:49:01,000 --> 00:49:03,870 iz PHP-a zadani funkcionalnosti, koje smo započeli ovdje, 1042 00:49:03,870 --> 00:49:07,655 gdje se samo izmiješati PHP, i vaš HTML, CSS i vaš, 1043 00:49:07,655 --> 00:49:09,780 a vi samo ga ispljune i idete o svom putu. 1044 00:49:09,780 --> 00:49:11,404 To neće biti jako održivi. 1045 00:49:11,404 --> 00:49:14,481 Baš kao u C, počeli smo pomoću više datoteka i više funkcija 1046 00:49:14,481 --> 00:49:15,730 i faktoring stvari koje van. 1047 00:49:15,730 --> 00:49:16,688 Mi ćemo učiniti isto ovdje. 1048 00:49:16,688 --> 00:49:19,970 A u stvari, u peti i konačni verzija ovdje, ja sam još jednu stvar. 1049 00:49:19,970 --> 00:49:23,710 Možete čak koristiti dot točku, koja je, opet, samo je roditelj katalog. 1050 00:49:23,710 --> 00:49:28,260 Da bi se još više sigurnosti svjesni, jer ako gledam na slušanje 1051 00:49:28,260 --> 00:49:32,450 Ovdje petu i konačnu verziju, najave da imam jedan katalog ovdje zove 1052 00:49:32,450 --> 00:49:35,180 javnosti, a zatim na istoj razini, da se tako izrazim, 1053 00:49:35,180 --> 00:49:38,490 Imam uključuje i predložaka a zatim da tekstualnu datoteku obavijesna. 1054 00:49:38,490 --> 00:49:41,130 >> A razlog sam strukturiran to sviđa this-- i tako mnoge web 1055 00:49:41,130 --> 00:49:44,330 Domaćini, posebno onih pet dolara mjesec one ili 10 dolara mjesečno one, 1056 00:49:44,330 --> 00:49:47,170 Ako ste ikada imali jedan od tih services-- tako što mnogi od njih ne 1057 00:49:47,170 --> 00:49:50,690 je oni samo očekuju da deponij sve vaših datoteka u jedan katalog, 1058 00:49:50,690 --> 00:49:53,640 kao što smo učinili već s ovaj prvi primjer. 1059 00:49:53,640 --> 00:49:56,740 >> No, čim početi izgradnja više sofisticirane web stranice koje upravo spremaju 1060 00:49:56,740 --> 00:50:00,480 Podaci vam je stalo i datoteke koje stalo, zapravo organiziranje stvari 1061 00:50:00,480 --> 00:50:05,060 pravilno i sa više sigurnosti svijest u um može 1062 00:50:05,060 --> 00:50:07,927 počnemo braniti Protiv sve prijatelje 1063 00:50:07,927 --> 00:50:10,135 da imate bilo u ili izvan ove klase koji je, 1064 00:50:10,135 --> 00:50:12,510 Čim počnete izradu Programi sebe na webu, 1065 00:50:12,510 --> 00:50:15,140 će početi branje na vas i na njih. 1066 00:50:15,140 --> 00:50:17,420 >> I tako ćemo gledati konačnici na ovaj dizajn. 1067 00:50:17,420 --> 00:50:20,010 To je samo slika koja prikazuje sljedeće. 1068 00:50:20,010 --> 00:50:22,897 Idemo staviti sve naše programiranje logike u jednoj ili više datoteka, 1069 00:50:22,897 --> 00:50:25,230 a mi ćemo samo početak nazivajući one kontrolere. 1070 00:50:25,230 --> 00:50:28,022 To je mjesto gdje se mozak Naše web stranice su zapravo. 1071 00:50:28,022 --> 00:50:29,730 Onda ćemo imaju pogled i pogled 1072 00:50:29,730 --> 00:50:32,480 su kao jednostavan kao samo odvojeno files-- zove predloške, često. 1073 00:50:32,480 --> 00:50:34,410 Oni su samo Estetika moju stranicu, 1074 00:50:34,410 --> 00:50:37,020 ono što želim stranicu izgledati like-- bojama i izgledu 1075 00:50:37,020 --> 00:50:38,870 i položaji sve varijable. 1076 00:50:38,870 --> 00:50:41,120 >> I onda još zanimljivije da smo na kraju ćete doći do 1077 00:50:41,120 --> 00:50:45,420 je model, koji će biti samo Riječ smo slap na drugim tehnologijama 1078 00:50:45,420 --> 00:50:47,771 koje donosimo u Slika, kao i stvarnim baze podataka, 1079 00:50:47,771 --> 00:50:49,520 tako da kada želite za spremanje podataka, 1080 00:50:49,520 --> 00:50:52,140 ne samo poslati e-mail na svoj Proctor ili za sebe, 1081 00:50:52,140 --> 00:50:57,350 vi zapravo ga pohraniti u bazi podataka korištenjem drugi jezik poznat kao SQL. 1082 00:50:57,350 --> 00:51:00,450 I tako ćemo ostaviti ovdje danas i pokupiti s tim u srijedu 1083 00:51:00,450 --> 00:51:02,990 i uvesti baze podataka tada. 1084 00:51:02,990 --> 00:51:06,940 >> [Glazbom] 1085 00:51:06,940 --> 00:54:24,555