1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Semajno 8] 2 00:00:02,000 --> 00:00:04,000 [Davido J Malan] [Universitato Harvard] 3 00:00:04,000 --> 00:00:07,000 [Jen CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Bonvenon dorso. 5 00:00:09,000 --> 00:00:11,000 Ĉi tiu estas CS50, kaj ĉi tiu estas la komenco de la semajno 8. 6 00:00:11,000 --> 00:00:14,000 Paro de ŝancoj ĉi semajno, 7 00:00:14,000 --> 00:00:17,000 inter ili ĉi diskuto ĉi tie, en kiu iuj manĝo estos utilis. 8 00:00:17,000 --> 00:00:20,000 Por pli da detaloj rigardu la diapozitivoj kiuj estas ensalutintaj. 9 00:00:20,000 --> 00:00:24,000 Kaj ankaŭ alia okazaĵo ĉi semajno per nia propra Thomas Carriero. 10 00:00:24,000 --> 00:00:27,000 Li estas unu el CS50 la eksĉefo instruado uloj kiuj nun estas en Dropbox, 11 00:00:27,000 --> 00:00:29,000 kaj li estas la tipo kiu enganchó nin kun la vi scias kion, 12 00:00:29,000 --> 00:00:36,000 do se vi volas pli de tiu kapo ĝis ilia diskuto posttagmeze por Dropbox kaj pli. 13 00:00:36,000 --> 00:00:38,000 CS50 tagmanĝo estas ĉi vendredo. 14 00:00:38,000 --> 00:00:41,000 Ĉu aliĝi ni se vi estas kapabla, 1:15, kiel kutime, ĉe fajro kaj glacio. 15 00:00:41,000 --> 00:00:45,000 >> Kaj nun ni plonĝi en ion nomita Seminarioj. 16 00:00:45,000 --> 00:00:49,000 Nia CS50 Seminarioj, revokon, estas ĉi tiuj nedeviga klasoj gvidata de la instruado uloj 17 00:00:49,000 --> 00:00:51,000 kaj kompreneble helpantoj kaj amikoj de la kurso, 18 00:00:51,000 --> 00:00:55,000 uloj de grupo de kampuso nomis ABCD, kiu estas grupo de 19 00:00:55,000 --> 00:00:58,000 technophiles la campus, tiel kiel grupo nomita HCS, 20 00:00:58,000 --> 00:01:02,000 la Harvard Komputila Societo, studentoj, kiuj simile interesita en komputado. 21 00:01:02,000 --> 00:01:08,000 Ĉi-jara roster de seminarioj inkluzivas seminariojn en Android kaj iOS kaj JavaScript 22 00:01:08,000 --> 00:01:13,000 kaj PHP, Unikso, Vim, kaj pli, do kompreni ke tiuj seminarioj venas supren. 23 00:01:13,000 --> 00:01:16,000 Se vi ŝatus RSVP por ajna el ili direktas al tiu retadreso tie. 24 00:01:16,000 --> 00:01:20,000 Ni poste afiŝi en la paso de afiŝinto la tempoj kaj lokoj iam ili finis. 25 00:01:20,000 --> 00:01:26,000 Sed sciu ke ekzistas 5-jara valoro de antaŭaj seminarioj havebla surlinia, 26 00:01:26,000 --> 00:01:29,000 multaj el kiuj estas ankoraŭ tre multe fluon en terminoj de teknologioj vi povus 27 00:01:29,000 --> 00:01:36,000 volas ludi kun via fina projektoj, tiel direkti dum kelke disponebla filmetoj largxo. 28 00:01:36,000 --> 00:01:39,000 >> CSS, la de vi, kiu estas familieca kun CSS jam, 29 00:01:39,000 --> 00:01:42,000 kio ĝi estas en vortoj? 30 00:01:42,000 --> 00:01:45,000 Kio estas CSS? 31 00:01:45,000 --> 00:01:48,000 Ĝi estas akvofalo stilo littukoj, kaj kion tio signifas? 32 00:01:48,000 --> 00:01:53,000 Kion tio do por ni, CSS? 33 00:01:53,000 --> 00:01:57,000 Bone, ni hejtas per facila unu, HTML, hiperteksta markado lingvo. 34 00:01:57,000 --> 00:02:01,000 Kion tio do por ni? 35 00:02:01,000 --> 00:02:04,000 Iu ajn? 36 00:02:04,000 --> 00:02:07,000 Ĝi faras vere mallertaj petante tiuj demandoj. 37 00:02:07,000 --> 00:02:11,000 HTML, hiperteksta markado lingvo. 38 00:02:11,000 --> 00:02:14,000 Jes? Ne? 39 00:02:14,000 --> 00:02:17,000 [Inaudible studento respondon] 40 00:02:17,000 --> 00:02:20,000 Konsentite, bona, ĝi permesas al ni por marki supren teksto por montri per foliumilo. 41 00:02:20,000 --> 00:02:22,000 Tio ne estas programlingvo. 42 00:02:22,000 --> 00:02:25,000 Estas ja markado lingvo, kio signifas ĝin instruas la retumilo kiel vidigi 43 00:02:25,000 --> 00:02:28,000 informo, do la plej simpla personigo de ĉi kiel ni vidis 44 00:02:28,000 --> 00:02:32,000 Estas io super simpla kiel boldfacing, malferma krampo b fermita krampo diras 45 00:02:32,000 --> 00:02:36,000 fari ĉi teksto aŭdaca, kaj tio estas vere nur unu el multaj manieroj 46 00:02:36,000 --> 00:02:39,000 en kiu ni povas fari tion, kaj ja, tiuj tagoj pli bonan alproksimiĝon 47 00:02:39,000 --> 00:02:42,000 al stylizing vian retpaĝon, farante aferojn aŭdaca kaj kursivo 48 00:02:42,000 --> 00:02:47,000 kaj centrita kaj pravigis kaj similaj, ne estas farita tra HTML etikedoj sola 49 00:02:47,000 --> 00:02:51,000 sed prefere kun tekniko nomita CSS, akvofalo stilo littukoj. 50 00:02:51,000 --> 00:02:53,000 Tiu estas lingvo al si mem. 51 00:02:53,000 --> 00:02:55,000 Ĝi ankaŭ tio ne estas programlingvo sed- 52 00:02:55,000 --> 00:02:58,000 ĉiuj, ĉi tiu estas Dan, kiu subtenas kunigi nin hodiaux. 53 00:02:58,000 --> 00:03:01,000 Iuj teknikaj malfacilaĵoj. Ne estas problemo. 54 00:03:01,000 --> 00:03:04,000 >> CSS nin permesas stylize paĝon 55 00:03:04,000 --> 00:03:07,000 per opcio kio nomiĝas propraĵoj, do ni rigardu tiun 56 00:03:07,000 --> 00:03:09,000 per maniero de iuj bazaj ekzemploj. 57 00:03:09,000 --> 00:03:12,000 Lasu min iri en la aparaton hodiaŭ. 58 00:03:12,000 --> 00:03:15,000 Mi havas la fonto 8 lundo dosierujo en ĉi tie, 59 00:03:15,000 --> 00:03:18,000 kaj mi tuj iru en dosierujo nomita CSS kie ni havas tuta amaso 60 00:03:18,000 --> 00:03:21,000 de dosieroj atendis nin tie ĉi, 61 00:03:21,000 --> 00:03:27,000 kaj en tiu ĉi dosierujo ni havas, ekzemple, search0.html de lasta tempo. 62 00:03:27,000 --> 00:03:31,000 Nun, memori kun search0 ni lasis en tiu ĉi noto 63 00:03:31,000 --> 00:03:35,000 per ia apliki Google aŭ vere nur la antaŭa fino por gxi unu semajno aŭ tiel antaŭe, 64 00:03:35,000 --> 00:03:38,000 kaj rimarki ke ni havis iujn novajn etikedoj tie. 65 00:03:38,000 --> 00:03:41,000 Ni havis h1 por granda, aŭdacaj rubro, 66 00:03:41,000 --> 00:03:45,000 formo, kiu ebligis al ni efektive havas HTML formo por uzanto enigo. 67 00:03:45,000 --> 00:03:48,000 Ago, kio estis la signifo de ago atributo 68 00:03:48,000 --> 00:03:52,000 en la HTML-formo etikedo? 69 00:03:52,000 --> 00:03:58,000 Kio estis la signifo de tio, ago? 70 00:03:58,000 --> 00:04:00,000 Mi nur faras ĉi hodiaŭ. 71 00:04:00,000 --> 00:04:03,000 Ago estas la destino al kie la formo tuj estos afiŝita. 72 00:04:03,000 --> 00:04:07,000 La fakto ke tiu diras agado = "google.com / search" 73 00:04:07,000 --> 00:04:10,000 signifas ke kiam la uzanto klakoj la submeti butono aŭ la ekvivalento 74 00:04:10,000 --> 00:04:14,000 kion ajn formo kampoj ili plenumis tuj sendos ne al nia servilo 75 00:04:14,000 --> 00:04:17,000 aŭ nia aparaton sed prefere al tiu specifa URL ĉe Google. 76 00:04:17,000 --> 00:04:19,000 Kaj la metodo ĝi estas tuj uzos nomas get, 77 00:04:19,000 --> 00:04:25,000 kaj akiri, nuntempe, estas nur tekniko por pasi informo kune al TTT-servilo 78 00:04:25,000 --> 00:04:29,000 pere de la URL, do ni preni rapidajn rigardon malantaŭen en kiel ĉi verkoj. 79 00:04:29,000 --> 00:04:31,000 >> Rimarku ke estas eniga kies nomo estas q 80 00:04:31,000 --> 00:04:35,000 kies tipo estas teksto kaj poste duan enigo de tipo submetiĝi 81 00:04:35,000 --> 00:04:39,000 kies valoro estas CS50 Serĉu, kaj efektive, se ni malfermas tiun dosieron ĉi tie, 82 00:04:39,000 --> 00:04:42,000 search0.html, estas super simpla formo, 83 00:04:42,000 --> 00:04:45,000 kaj se mi serĉo iu kiel komputiko 84 00:04:45,000 --> 00:04:50,000 kaj poste batis eniri aŭ alklaku CS50 Serĉu 85 00:04:50,000 --> 00:04:53,000 rimarki, ke kio okazas estas preter alveni al Google 86 00:04:53,000 --> 00:04:56,000 Mi specife finis en ĉi URL supre, 87 00:04:56,000 --> 00:05:01,000 google.com / serĉo? q = komputilo + scienco, 88 00:05:01,000 --> 00:05:04,000 kaj komputiko estas evidente, kion mi tajpis in 89 00:05:04,000 --> 00:05:06,000 La + simple signifas ke estas kie spaco karaktero estis, 90 00:05:06,000 --> 00:05:10,000 kaj ĝi estos farita de la retumilo nur por certigi ke ne estas 91 00:05:10,000 --> 00:05:13,000 konfuzo kaj blanka spaco en la efektiva retadreso. 92 00:05:13,000 --> 00:05:15,000 Kaj tiam q, kompreneble, estas la parametro nomo. 93 00:05:15,000 --> 00:05:20,000 Ni ne vidis kiel ni, la programisto, povas fakte aliro q ankoraŭ. 94 00:05:20,000 --> 00:05:23,000 Ni povas supozi ke Google scias kion fari kun ĉi tie, 95 00:05:23,000 --> 00:05:25,000 sed ni ricevos tie gxustatempe hodiaŭ. 96 00:05:25,000 --> 00:05:30,000 >> Sed lasu min rigardi anstataŭ ĉe search1.html, 97 00:05:30,000 --> 00:05:34,000 kiu aspektas iom malsama ĉar mi decidis ke tiu formo ĉi tie estis nur iom lama. 98 00:05:34,000 --> 00:05:36,000 Mi volas diri, estas supre maldekstre. 99 00:05:36,000 --> 00:05:40,000 Estas vere neniu estetiko al ĝi, kaj do mi volas stylize ĉi 100 00:05:40,000 --> 00:05:43,000 iom pli kiel Google, kies hejmpaĝo, revokon, 101 00:05:43,000 --> 00:05:47,000 kvankam vi eble ne vizitos ĝin, ke ofte, similas tiun hodiaŭ en Halloween. 102 00:05:47,000 --> 00:05:53,000 Se ni anstataŭ malfermi versio 1 de ĉi tiu dosiero, serĉo 1.html, mi centrita ĝin. 103 00:05:53,000 --> 00:05:57,000 Ankoraŭ bela malbela, sed almenaŭ nun mi komencis kontroli la estetiko de ĉi tiu paĝo, 104 00:05:57,000 --> 00:06:00,000 ne nur la markiloj ĉe tio. 105 00:06:00,000 --> 00:06:04,000 Ni rigardu serĉo 1, kaj estas vere nur unu diferenco ĉi tie, 106 00:06:04,000 --> 00:06:06,000 kiu povus salti tra vi, aŭ eble ne, 107 00:06:06,000 --> 00:06:11,000 sed kio estas la unu linio aŭ fragmento de diferenco? 108 00:06:11,000 --> 00:06:14,000 >> Estas ĉi tiu stilo atributo, do rezultas ke en HTML 109 00:06:14,000 --> 00:06:19,000 plej elementoj, plej etikedoj povas havi stilo atributo sur ili, 110 00:06:19,000 --> 00:06:23,000 kaj ene de tiu stilo atributo estas citita kordoj, 111 00:06:23,000 --> 00:06:26,000 kaj ke citita linio estas CSS. 112 00:06:26,000 --> 00:06:29,000 Vi povas meti akvofalo stilo folio tien 113 00:06:29,000 --> 00:06:32,000 ĉar oni petas ĝin kiel propraĵo nomo 114 00:06:32,000 --> 00:06:34,000 sekvata de dupunkto sekvis per valoro. 115 00:06:34,000 --> 00:06:37,000 Tio estas speco de malfeliĉa dezajno decido antaŭ kelkaj jaroj 116 00:06:37,000 --> 00:06:40,000 ke CSS estas lingvo al si mem, 117 00:06:40,000 --> 00:06:43,000 sed sintakse ĝi estas tre malsama de HTML. 118 00:06:43,000 --> 00:06:46,000 En ĉi tiu kazo, ni vidas ke interne de mia retpaĝo, kiu estas skribita en HTML, 119 00:06:46,000 --> 00:06:51,000 Mi havas CSS ene de tiuj citaĵoj, kaj la konvencio por CSS 120 00:06:51,000 --> 00:06:55,000 estas ke vi havas kion nomas propraĵo sekvis, denove, dupunkto, 121 00:06:55,000 --> 00:06:58,000 sekvata de la valoro de tiu proprieto, tiel ne estas egala signo. 122 00:06:58,000 --> 00:07:00,000 Ne pliaj citaĵoj. 123 00:07:00,000 --> 00:07:03,000 Estas nur tiun dupunkto disigis ŝlosilo valoro paro, 124 00:07:03,000 --> 00:07:05,000 kaj teksto linio faras precize kion ĝi diras. 125 00:07:05,000 --> 00:07:09,000 Ĝi vicigas la tekston en la korpo de la paĝo, kiu estas vere la intestoj de la paĝo, 126 00:07:09,000 --> 00:07:11,000 en la centro. 127 00:07:11,000 --> 00:07:13,000 >> Konsentite, la fina rezulto tiam, esti klara, estas tio. 128 00:07:13,000 --> 00:07:17,000 Ne ĉiuj kiuj sexier, sed almenaŭ ĝi estas centrita kaj iom pli kiel la reala Google. 129 00:07:17,000 --> 00:07:21,000 Sed kion se mi anstataŭ malfermi la versio 2 de tiu 130 00:07:21,000 --> 00:07:25,000 kaj atentigi cxi tie nova tag aro? 131 00:07:25,000 --> 00:07:30,000 Nun en la kapo de mia paĝo, kiu antaŭe havis nur kion etikedo 132 00:07:30,000 --> 00:07:32,000 en ĉiuj antaŭaj ekzemploj? 133 00:07:32,000 --> 00:07:34,000 Ĝi simple devis tion, la titolo. 134 00:07:34,000 --> 00:07:38,000 Post momento antaŭe la kapo etikedo aspektis kiel ĉi tio. 135 00:07:38,000 --> 00:07:40,000 Nun anstataŭ ĝi havas stilon etikedo ene de ĝi, 136 00:07:40,000 --> 00:07:44,000 kaj ankaux, mi pardonpetas, sintakse aspektas tre malsama de HTML, 137 00:07:44,000 --> 00:07:47,000 sed vi kutimiĝas al ĝi, per kiu ene de la stilo etikedo 138 00:07:47,000 --> 00:07:50,000 Mi povas nun faktoro, kio estis antaŭ momento 139 00:07:50,000 --> 00:07:54,000 atributo, la stilo atributo, kaj mi povas meti ĝin en la plejsupro de mia paĝo. 140 00:07:54,000 --> 00:07:56,000 >> Kial? 141 00:07:56,000 --> 00:08:00,000 Nu, temas pri paŝo direkte al pureco aĵojn, multe kiel skribe C kodo 142 00:08:00,000 --> 00:08:04,000 ni devus kelkfoje skribi funkciojn al faktoro ekster komuna funkciojn. 143 00:08:04,000 --> 00:08:07,000 Estas nur iom pli pura komenci faktoranta ekster aĵoj kiel la estetiko 144 00:08:07,000 --> 00:08:11,000 al unu centra loko prefere ol, havante ĉion intersperse viaj HTML. 145 00:08:11,000 --> 00:08:14,000 Ĉi tro faras kion diras, kvankam tie estas iom da novaj sintakso. 146 00:08:14,000 --> 00:08:19,000 Ĉi tie estas elekto, kaj korpo simple signifas elekti la korpon elemento 147 00:08:19,000 --> 00:08:21,000 kaj apliki la jenaj propraĵoj al ĝi. 148 00:08:21,000 --> 00:08:23,000 Nu, la proprieto estas precize la sama. 149 00:08:23,000 --> 00:08:25,000 Por bona mezuro Mi aldonis punktokomo ĉe la fino, 150 00:08:25,000 --> 00:08:29,000 kio emas esti konvencio, kaj mi envolvis ĉi tiu tuta posedaĵo 151 00:08:29,000 --> 00:08:33,000 en bukla krampoj ĉar mi povis efektive havas malsamajn aferojn ĉi tie. 152 00:08:33,000 --> 00:08:39,000 Mi povis vere diri ion kiel koloro: blua; 153 00:08:39,000 --> 00:08:42,000 >> Nun ankaux ne tuj estos paŝo al io cxiuj belaj, 154 00:08:42,000 --> 00:08:47,000 sed se mi nun reiru al la versio 2 Mi almenaŭ nun faris la korpo de mia 155 00:08:47,000 --> 00:08:49,000 paĝo teksto ĉiu blua. 156 00:08:49,000 --> 00:08:51,000 La butono restas la sama, ĉar estas ja enigo. Ne pura teksto. 157 00:08:51,000 --> 00:08:56,000 Sed ĉio alia kiu estas teksto, kiel CS50 Serĉu supren supro, estas fakte blua. 158 00:08:56,000 --> 00:09:01,000 Denove, ĉiuj ni faris nun eltiri de la korpo etikedo, avizo, 159 00:09:01,000 --> 00:09:04,000 la stilo atributo, kaj ni faktorita ĝin ĉi tie. 160 00:09:04,000 --> 00:09:08,000 Tiu ne estas grandega plibonigo, sed se ni prenos ĉi unu paŝon 161 00:09:08,000 --> 00:09:10,000 rimarki, kion ni povas fari en tiu tria versio tie. 162 00:09:10,000 --> 00:09:14,000 >> En search3.html la retpaĝo estas preskaŭ identa 163 00:09:14,000 --> 00:09:17,000 krom kio nova tag nun? 164 00:09:17,000 --> 00:09:20,000 Ligilo, do ĉi tiu estas ne tre _aptly_ nomis 165 00:09:20,000 --> 00:09:24,000 ĉar vi ne kunligante en la senco de alklakebla hyperlink. 166 00:09:24,000 --> 00:09:28,000 Pli ĝuste, vi estas ia faras la ekvivalento de # include en C 167 00:09:28,000 --> 00:09:31,000 per la ligilo etikedo kun href atributo 168 00:09:31,000 --> 00:09:34,000 kaj rel atributo diras antaŭeniri 169 00:09:34,000 --> 00:09:39,000 kaj kopio almeti la enhavon de dosiero nomata search3.css ĉi tie, esence. 170 00:09:39,000 --> 00:09:42,000 Ĝi ne sufiĉe faras tion, sed tio estas la spirito de ĝi. 171 00:09:42,000 --> 00:09:45,000 Ĝi diras iri malfermita tiu dosiero, search3.css, 172 00:09:45,000 --> 00:09:49,000 kaj trakti ĝin kvazaŭ la uzanto estis tajpita ĝin ĉi tie en la kapo de la paĝo 173 00:09:49,000 --> 00:09:51,000 kiel mi faris en la antaŭa ekzemplo. 174 00:09:51,000 --> 00:09:54,000 Search3.css, dume, estas sufiĉe simpla. 175 00:09:54,000 --> 00:09:58,000 Vere nur enhavas precize kio estis antaŭ momento 176 00:09:58,000 --> 00:10:03,000 en la stilo etikedo, sed mi havas faktorita ĝin ĉi tie al lia propra dosiero. 177 00:10:03,000 --> 00:10:07,000 >> Kvankam ni ne pasis multe da tempo tute en HTML aŭ ttt programado 178 00:10:07,000 --> 00:10:11,000 nur intuicie kio estas la motivado, eble, por faktoranta ekster 179 00:10:11,000 --> 00:10:14,000 tiu malgranda fragmento eĉ de CSS en ĝian propran dosieron 180 00:10:14,000 --> 00:10:19,000 kaj tiam inkludante ĝin per ĉi tiu ligilo etikedo tie? 181 00:10:19,000 --> 00:10:21,000 [Inaudible studento respondon] 182 00:10:21,000 --> 00:10:25,000 Konsentite, pli facilas legi en la senco, ke vi havas vian CSS en CSS-dosiero. 183 00:10:25,000 --> 00:10:28,000 Vi havas viajn HTML en via HTML-dosieron, do ĝi estas pli legebla en tiu senco. 184 00:10:28,000 --> 00:10:30,000 Kion alian povus esti konvinka? Yeah. 185 00:10:30,000 --> 00:10:32,000 [Inaudible studento respondon] 186 00:10:32,000 --> 00:10:35,000 Yeah, do vi povas aldoni ĝin multfoje, do nun ni faras ĉi tiuj 187 00:10:35,000 --> 00:10:38,000 bazaj ekzemploj kun individuaj dosieroj, sed supozas ke vi efektive fari 188 00:10:38,000 --> 00:10:42,000 vera retejo kiel vi faros por pset 7 aŭ vian fina projekto eble, 189 00:10:42,000 --> 00:10:45,000 kaj vi volas havi plurajn retpaĝoj, kiel estas certe komuna en 190 00:10:45,000 --> 00:10:48,000 la reala World Wide Web, kaj estus speco de lama 191 00:10:48,000 --> 00:10:52,000 devos kopii kaj almeti la sama blua koloro 192 00:10:52,000 --> 00:10:56,000 kaj la sama teksto vicigitaj centro en cxiu el tiuj paĝoj. 193 00:10:56,000 --> 00:10:59,000 Pli ĝuste faras pli sentita faktoro ekster, multe kiel ni faris en C 194 00:10:59,000 --> 00:11:02,000 kun la. h dosiero, metis ĝin en unu centra loko, 195 00:11:02,000 --> 00:11:06,000 en ĉi tiu kazo search3.css, kaj poste permesi ajnan dosieron 196 00:11:06,000 --> 00:11:11,000 en via retejo por fakte inkluzivas tiu dosiero tra ĉi etikedo tie en linio 16. 197 00:11:11,000 --> 00:11:14,000 Kiel estas tipe la kazo, ni komencis kun versio 0, kiu speco de verkoj 198 00:11:14,000 --> 00:11:18,000 sed ne nepre la plej bona, kaj kun ĉiu paŝo, 199 00:11:18,000 --> 00:11:21,000 serĉante 1, serĉo 2, kaj nun serĉo 3 ni prenis tiujn bebo paŝoj 200 00:11:21,000 --> 00:11:26,000 al dezajnoj kiuj estas iom pli pura kaj estas pli prepara 201 00:11:26,000 --> 00:11:30,000 por pli kompleksaj paĝoj ke ni faru sur la vojo. 202 00:11:30,000 --> 00:11:33,000 >> Lasu min malfermi unu lasta ekzemplo tie nur por montri 203 00:11:33,000 --> 00:11:36,000 eĉ pli stiligita paĝo, sed unue ni rigardu la HTML. 204 00:11:36,000 --> 00:11:41,000 Ĉi tiu estas search4.html, kaj rimarkas ke strukture estas preskaŭ la sama 205 00:11:41,000 --> 00:11:44,000 krom la enkonduko de nova etikedo, Div. 206 00:11:44,000 --> 00:11:48,000 Div estas etikedo kiu enkondukas divido de la paĝo. 207 00:11:48,000 --> 00:11:51,000 Vi povas pensi pri tio kiel nevidebla rektangulo. 208 00:11:51,000 --> 00:11:54,000 Ĝi ia kreas swath de areo en la retpaĝo 209 00:11:54,000 --> 00:11:56,000 ke vi povas stylize ĉiuj samtempe. 210 00:11:56,000 --> 00:11:58,000 Kion mi faris tie estas kiel sekvas. 211 00:11:58,000 --> 00:12:01,000 Ene de mia korpo etikedo, kiu estis tie ĉiuj kune, 212 00:12:01,000 --> 00:12:05,000 Mi dirante krei divido de la paĝo ĉi tien per linioj 45 tra 47, 213 00:12:05,000 --> 00:12:09,000 kaj tio signifas esence donu al mi nevidebla rektangulo sur la supro de la paĝo. 214 00:12:09,000 --> 00:12:14,000 Tiam donu al mi duan ortangulo, kvankam nevidebla, sub tiu, 215 00:12:14,000 --> 00:12:16,000 kaj identigi ĝin per la nomo enhavo, kaj tiam laste, 216 00:12:16,000 --> 00:12:19,000 donu al mi tria divido de la paĝo ĉe la malsupro 217 00:12:19,000 --> 00:12:21,000 vokis ID. 218 00:12:21,000 --> 00:12:23,000 Ni vidos kial mi faris tion en nur momente, 219 00:12:23,000 --> 00:12:26,000 sed koncepte mi havas header divido. 220 00:12:26,000 --> 00:12:30,000 Mi havas enhavon divido, kaj mi havas piedlinio divido de la paĝo 221 00:12:30,000 --> 00:12:32,000 kvankam ĉi tiuj estas nur en markado. 222 00:12:32,000 --> 00:12:35,000 La uzanto ne tuj vidas 3 rektanguloj, 223 00:12:35,000 --> 00:12:37,000 sed ia strukture tie malantaŭ la scenoj 224 00:12:37,000 --> 00:12:39,000 ili estas reale ĉeestas. 225 00:12:39,000 --> 00:12:41,000 >> Nun, kiu zorgas? Kial vere faras tion? 226 00:12:41,000 --> 00:12:43,000 Ĉio alia en la paĝo estas la sama kiel ni vidis antaŭe. 227 00:12:43,000 --> 00:12:47,000 Jen mia formo. Jen mia eniro, mia eniro, linio rompas ks. 228 00:12:47,000 --> 00:12:50,000 Jen bildo, tamen, do ni vidos, kie tio venis de en nur momento. 229 00:12:50,000 --> 00:12:52,000 Jen piedlinio, kiu estas nova, nur ĉar mi volis enkonduki 230 00:12:52,000 --> 00:12:54,000 iuj pli enhavon ĉi tie. 231 00:12:54,000 --> 00:12:58,000 Se ni rulumu supren rimarki ke ID de ĉi div estas kaploko. 232 00:12:58,000 --> 00:13:02,000 La ID de ĉi div estas enhavo, kaj la ID de ĉi tiu estas piedlinio. 233 00:13:02,000 --> 00:13:05,000 Kaj kiel la nomo sugestas, kiam vi havas ID atributo 234 00:13:05,000 --> 00:13:09,000 en HTML, per difino devas unike identigi 235 00:13:09,000 --> 00:13:12,000 unu el la elementoj, unu el la etikedoj en via paĝo. 236 00:13:12,000 --> 00:13:16,000 La sxargxo estas plene en vi memoras, ke vi havas header ID jam. 237 00:13:16,000 --> 00:13:19,000 Vi havas piedlinio. Vi havas enhavon ID jam. 238 00:13:19,000 --> 00:13:22,000 La komputilo ne tuj elkompreni kiel disponeblan ID estas por vi, 239 00:13:22,000 --> 00:13:27,000 tial vi povis hazarde doni 2 etikedoj an ID de kaplinio, 240 00:13:27,000 --> 00:13:29,000 kaj tio estus nur malbone. 241 00:13:29,000 --> 00:13:31,000 >> Vi devas ne forgesi, kion vi kreis, 242 00:13:31,000 --> 00:13:34,000 sed kiam vi faris ke avizo kion ni povas fari tie. 243 00:13:34,000 --> 00:13:38,000 Mi povas nun precizigi en mia stilo etikedo ĉe la supro 244 00:13:38,000 --> 00:13:41,000 aŭ ekvivalente en mia CSS-dosiero, se mi ankoraux uzas tiun version, 245 00:13:41,000 --> 00:13:46,000 Mi povas diri # kaploko, kaj kion tio signifas estas kiu ajn etikedo 246 00:13:46,000 --> 00:13:49,000 en ĉi tiu retpaĝo havas ID de kaplinio 247 00:13:49,000 --> 00:13:53,000 kaj #, kun nur homaj konvencio, reprezentas ID. 248 00:13:53,000 --> 00:13:56,000 La akra signo aŭ funto signo reprezentas ID. 249 00:13:56,000 --> 00:13:58,000 Header estas la nomo kiun mi donis ĝin. 250 00:13:58,000 --> 00:14:01,000 Tio signifas apliki ĉi CSS proprieto 251 00:14:01,000 --> 00:14:04,000 al kiom etikedo en tiu ĉi paĝo portas la ID de kaploko. 252 00:14:04,000 --> 00:14:06,000 Sama traktado ĉi tie. 253 00:14:06,000 --> 00:14:09,000 Apliki ĉi tiu propraĵo, kio okazas al esti la sama, por ajna elemento 254 00:14:09,000 --> 00:14:11,000 kies ID estas enhavo, kaj tiam ĉi tie 255 00:14:11,000 --> 00:14:14,000 rimarki I got iom amatoro kun piedlinio. 256 00:14:14,000 --> 00:14:18,000 Neniu elemento kies ID estas piedlinio, de kiuj povas esti nur unu per difino, 257 00:14:18,000 --> 00:14:21,000 antaŭeniri kaj fari liajn tiparo grandeco pli malgranda, 258 00:14:21,000 --> 00:14:24,000 lia tiparo pezo kuraĝa, lia rando 20 rastrumeroj. 259 00:14:24,000 --> 00:14:26,000 >> Kion tio signifas? 260 00:14:26,000 --> 00:14:28,000 Estas nur rando supre, malsupre, kaj la maldekstra kaj la dekstra. 261 00:14:28,000 --> 00:14:31,000 Tio signifas doni al mi 20-pixel nevidebla rando ĉirkaŭe 262 00:14:31,000 --> 00:14:35,000 nur puŝi ĉion alian for de gxi iomete, kiel vi eble fari en Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word aŭ Paĝoj aŭ similaj. 264 00:14:37,000 --> 00:14:39,000 Kaj tiam teksto centrigi. 265 00:14:39,000 --> 00:14:43,000 Ni vidu la fina rezulto, kaj poste ni reiros al la ceteraj fragmento de CSS tie. 266 00:14:43,000 --> 00:14:48,000 Ĉi tiu estas la versio 4, nia lasta por la serĉo ekzemploj, kaj gxi estas multe, multe sexier. 267 00:14:48,000 --> 00:14:54,000 Nun, en justeco, mi nur googled "google tiparo logo generatoro." 268 00:14:54,000 --> 00:14:58,000 Kaj kiu permesis al mi por krei GIF, bildo formato, kiu aspektas kiel tiu tie. 269 00:14:58,000 --> 00:15:00,000 Fakte, vi povas fari tion ankaŭ. 270 00:15:00,000 --> 00:15:03,000 Ni havas "google tiparoj logo generatoro." 271 00:15:03,000 --> 00:15:05,000 >> Ni vidu se ni povas fari ĉi tion. 272 00:15:05,000 --> 00:15:07,000 Konsentite, mi pensas tio estas la retpaĝo mi uzis. 273 00:15:07,000 --> 00:15:11,000 Ni povas diri Ec 10, ekzemple, kaj Mi faros ilin iliaj. 274 00:15:11,000 --> 00:15:13,000 Vi povas ludi kun ĉi tutan tagon kaj tiam dekstre alklaku ĝin 275 00:15:13,000 --> 00:15:16,000 kaj elŝutu la efektiva GIF, kiu estas ĉio, kion mi faris. 276 00:15:16,000 --> 00:15:19,000 Kaj efektive, jen kial en mia HTML, memoras, super tie 277 00:15:19,000 --> 00:15:22,000 Mi havis bildon etikedo, kiun ni vidis mallonge pasintsemajne 278 00:15:22,000 --> 00:15:24,000 kies fonto estas logo.gif. 279 00:15:24,000 --> 00:15:28,000 Kaj kio denove estis la motivado por havi tiun alt atributo, 280 00:15:28,000 --> 00:15:31,000 ĉi alternativa atributo? 281 00:15:31,000 --> 00:15:33,000 Yeah. 282 00:15:33,000 --> 00:15:35,000 [Inaudible studento respondon] 283 00:15:35,000 --> 00:15:37,000 Bona, do 2 kialoj vere, se la retumilo ne povas tiri supren la bildo 284 00:15:37,000 --> 00:15:40,000 ĉar vi havas malrapidan retkonekto aŭ la bildo estas koruptita 285 00:15:40,000 --> 00:15:44,000 aŭ io kiel ke almenaŭ la homa povas vidi "CS50 serĉo," 286 00:15:44,000 --> 00:15:46,000 kaj tiam ankaŭ por alirebleco kialoj. 287 00:15:46,000 --> 00:15:48,000 Se vi havas uzanto kiu estas blinda kaj uzas ekranon leganto 288 00:15:48,000 --> 00:15:50,000 kaj sekve evidente ne povas vidi bildojn ili povas almenaŭ 289 00:15:50,000 --> 00:15:52,000 aŭdi teksto se ilia komputilo parolas ĝin al ili. 290 00:15:52,000 --> 00:15:56,000 >> Ĝenerale, ĉi tiu estas bona praktikas kiam temas pri la alirebleco de paĝoj 291 00:15:56,000 --> 00:16:00,000 tiel ke eĉ uzantoj en tiu situacio povas aŭdi aŭ vidi, por tiel diri, 292 00:16:00,000 --> 00:16:03,000 kio estas tio en via paĝo. 293 00:16:03,000 --> 00:16:05,000 Estas unu alia afero kiun mi faris tie 294 00:16:05,000 --> 00:16:09,000 kiu estas iom interesa, kaj ni vidos pli pri tio en problemo starigis 7 295 00:16:09,000 --> 00:16:12,000 tra unu el la mallongaj gvidata de unu el la instruado kamaradojn. 296 00:16:12,000 --> 00:16:15,000 Sed # enhavo rilatas al la etikedo 297 00:16:15,000 --> 00:16:20,000 kies ID estas enhavo, sed tiam ne estas spaco karaktero, kaj tiam tie estas la vorto enigo. 298 00:16:20,000 --> 00:16:25,000 Nu, kio estas interesa pri CSS estas ke vi povas 299 00:16:25,000 --> 00:16:29,000 raporti al etikedoj en paĝo ia jerárquicamente, 300 00:16:29,000 --> 00:16:33,000 kaj kion tiu fragmento de CSS signifas trovi la etikedo 301 00:16:33,000 --> 00:16:37,000 kies ID estas enhavo, kaj tiam apliki la jenaj propraĵoj 302 00:16:37,000 --> 00:16:42,000 al ĉiuj de la enigo etikedoj kiuj estas posteuloj de enhavo, 303 00:16:42,000 --> 00:16:44,000 tio estas ke dentadas ene de ĝi. 304 00:16:44,000 --> 00:16:48,000 Deŝovon, denove, estas nur grava por la komputilo, ne al la homo, 305 00:16:48,000 --> 00:16:51,000 sed per konvencio ni indent aĵoj kiel ni iru profunden en iu paĝo, 306 00:16:51,000 --> 00:16:54,000 do tio signifas apliki rando de 5 rastrumeroj al ajna enigo elemento 307 00:16:54,000 --> 00:16:57,000 jen ie ene de aŭ anidado interne de 308 00:16:57,000 --> 00:16:59,000  la elemento kies ID estas enhavo. 309 00:16:59,000 --> 00:17:01,000 >> Kies estas tiu aplikas al? 310 00:17:01,000 --> 00:17:03,000 Nu, estas vere nur tiuj 2 infanoj tie. 311 00:17:03,000 --> 00:17:05,000 Rimarku ke ene de la formo ekzistas 2 enigoj, 312 00:17:05,000 --> 00:17:07,000 ĉar jam pasis por ĉiuj el tiuj ekzemploj. 313 00:17:07,000 --> 00:17:11,000 Sed avertas ke tiuj 2 enigoj okazi esti anidado ene, 314 00:17:11,000 --> 00:17:13,000 kvankam iom profunde, paro tavoloj de deŝovon, 315 00:17:13,000 --> 00:17:16,000 ene de la etikedo kies ID estas enhavo. 316 00:17:16,000 --> 00:17:18,000 Kion tio signifas? 317 00:17:18,000 --> 00:17:21,000 Se ni iras al la retumilo tie vi povas vidi nur milde- 318 00:17:21,000 --> 00:17:23,000 lasu min zoom in-ke estas iom da kompletigo inter la butono 319 00:17:23,000 --> 00:17:25,000 kaj inter la teksto kampo. 320 00:17:25,000 --> 00:17:27,000 >> Lasu min portempe igi tiun for. 321 00:17:27,000 --> 00:17:30,000 Lasu min iri al mia CSS, kaj lasu min antaŭeniri kaj justa 322 00:17:30,000 --> 00:17:34,000 ŝanĝi ĉi rando de la 5 rastrumeroj al 0 pixels. 323 00:17:34,000 --> 00:17:37,000 Lasu min tiam kaj savu la dosieron, reiru al la serĉilon 324 00:17:37,000 --> 00:17:40,000 kaj reŝarĝi, kaj rigardas la mezo de la paĝo. 325 00:17:40,000 --> 00:17:43,000 Ĉio got kunpremita kune, kaj kiam mi unue skurĝita ĉi tiu ekzemplo supren 326 00:17:43,000 --> 00:17:46,000 Mi pensis ke aspektis stulta kun la teksto kampo kaj tiam la butono tuj sub ĝi. 327 00:17:46,000 --> 00:17:50,000 Mi volis pad ĝin iomete, do mi enkondukis randoj. 328 00:17:50,000 --> 00:17:55,000 Kion ni ne faros en prelego estas iri tra la pluraj dekduoj 329 00:17:55,000 --> 00:17:58,000 CSS propraĵoj kiuj ekzistas ĉar, denove, estas aĵoj kiel tiparo grandeco, 330 00:17:58,000 --> 00:18:02,000 tiparo pezo, rando, teksto vicigi, kaj kelkdek aliaj, 331 00:18:02,000 --> 00:18:06,000 kaj ni raporti al vi en problemo starigis 7 al diversaj lernilojn linio 332 00:18:06,000 --> 00:18:08,000 kaj referencoj kiuj permesas al vi elekti tiujn aĵojn. 333 00:18:08,000 --> 00:18:10,000 Sed kio estas vere grava al la fino de la tago 334 00:18:10,000 --> 00:18:12,000 >> estas kompreni kiel tiuj aĵoj estas aplikita. 335 00:18:12,000 --> 00:18:15,000 Denove, se ni havas la stilon etikedo ene de kiuj 336 00:18:15,000 --> 00:18:19,000 povas iri la seleccionadores, la speco de ensalutiloj kiuj specifas 337 00:18:19,000 --> 00:18:21,000 al kiu vi volas apliki tiujn bienojn, 338 00:18:21,000 --> 00:18:24,000 kaj tiam vi metu la propraĵoj kiel ŝlosilo valoro paro 339 00:18:24,000 --> 00:18:28,000 apartigita per dupunkto kaj tiam finiĝis per punktokomo, 340 00:18:28,000 --> 00:18:32,000 aŭ vi povas ŝiri ĉiuj de tiu ekster kaj metis ĝin en aparta CSS-dosiero 341 00:18:32,000 --> 00:18:35,000 al si mem. 342 00:18:35,000 --> 00:18:39,000 Bone, demandojn en la konceptoj 343 00:18:39,000 --> 00:18:41,000 aŭ la granda bildo de CSS? 344 00:18:41,000 --> 00:18:43,000 Vi denove vidi pli de ĝi en pset 7, 345 00:18:43,000 --> 00:18:47,000 sed ni tenu ĝin ĝenerale sufiĉe simpla. 346 00:18:47,000 --> 00:18:49,000 Ne? Bone. 347 00:18:49,000 --> 00:18:51,000 Estas tempo por reala programlingvo, 348 00:18:51,000 --> 00:18:54,000 kaj ni revenos al iom de CSS en formo de ekzemplo. 349 00:18:54,000 --> 00:18:58,000 PHP estas fakte mirinde atingebla lingvo 350 00:18:58,000 --> 00:19:02,000 en tiu estas sintakse preskaŭ ekvivalenta al C. 351 00:19:02,000 --> 00:19:06,000 En aliaj vortoj, se vi konas C, vi scias plejparte PHP, 352 00:19:06,000 --> 00:19:08,000 almenaŭ sintakse, kvankam estas kelkaj novaj funkcioj 353 00:19:08,000 --> 00:19:10,000 kaj iuj novaj konceptoj ni devos rigardi. 354 00:19:10,000 --> 00:19:13,000 >> Sed plejparte, nun ke ni transiro de C al PHP 355 00:19:13,000 --> 00:19:16,000 la plejparto de la novaj aferoj estas vere en la granda bildo, 356 00:19:16,000 --> 00:19:19,000 kiel vi uzi lingvon por programo en la retejo kiel kontraŭ 357 00:19:19,000 --> 00:19:23,000 en la komanda linio aŭ en palpebrumante prompto kiel ni estis farante tiel for. 358 00:19:23,000 --> 00:19:27,000 Por referenco, speciale kun pset 7 kaj la fina projekto antaŭen, 359 00:19:27,000 --> 00:19:31,000 do utiligi tiun URL tie se vi volas legi sur la formalaĵoj de PHP. 360 00:19:31,000 --> 00:19:34,000 Ĝi estas fakte kiel senpaga interreta lernolibro efike, 361 00:19:34,000 --> 00:19:37,000 kaj vi ankaŭ trovos ke kio estas vere bela pri PHP 362 00:19:37,000 --> 00:19:41,000 estas ke ekzistas centoj da funkcioj kiuj venis kun li, 363 00:19:41,000 --> 00:19:44,000 dum en C vi ne nepre havas aliron al 364 00:19:44,000 --> 00:19:47,000 pli funkcioj ol estis en la matematika biblioteko, la CS50 biblioteko. 365 00:19:47,000 --> 00:19:51,000 En PHP kaj multaj modernaj lingvoj, Python kaj Ruby inter ili, 366 00:19:51,000 --> 00:19:54,000 vi ricevas aliron al tiom multaj pli funkcioj, kiu signifas, ke vi atingos skribi 367 00:19:54,000 --> 00:19:57,000 multe malpli kodo ĉar vi povas stari sur la ŝultrojn de aliaj personoj 368 00:19:57,000 --> 00:19:59,000 kiuj jam skribis pri kelkaj aferoj por vi. 369 00:19:59,000 --> 00:20:03,000 >> Ni prenu rapida ĝiras de la sintakso de PHP kaj poste skribos kelkajn ekzemplojn. 370 00:20:03,000 --> 00:20:06,000 Kio estas agrable pri PHP unuavice 371 00:20:06,000 --> 00:20:08,000 Estas ne estas ĉefa funkcio. 372 00:20:08,000 --> 00:20:10,000 Se vi volas skribi programon en PHP vi komencu skribi kodon, 373 00:20:10,000 --> 00:20:12,000 kaj vi ne devas zorgi pri ĉefaj. 374 00:20:12,000 --> 00:20:14,000 Ne int. Ne reveno. 375 00:20:14,000 --> 00:20:17,000 Ne argv, argc ke tio postulas kiam vi skribas la programo. 376 00:20:17,000 --> 00:20:20,000 Prefere vi povas simple komenci skribi kodon, kaj ĉi tiu estas en parto 377 00:20:20,000 --> 00:20:23,000 ĉar PHP estas kio nomiĝas interpretita lingvo. 378 00:20:23,000 --> 00:20:26,000 C estis kompilita, kaj tio estis kompilita en la senco ke vi komencu 379 00:20:26,000 --> 00:20:29,000 kun fontkodo, ruli ĝin per Clang, kiu estas tradukilo, 380 00:20:29,000 --> 00:20:33,000 kaj finfine post kelkaj da paŝoj vi ricevas celkodo, _0s_ kaj _1s_. 381 00:20:33,000 --> 00:20:36,000 PHP kaj Python kaj Ruby kaj Pearl kaj aliaj 382 00:20:36,000 --> 00:20:39,000 Estas malsamaj tipoj de lingvoj en kiuj vi ne kompili ilin. 383 00:20:39,000 --> 00:20:42,000 Vi ne iri de fontkodo al _0s_ kaj _1s_. 384 00:20:42,000 --> 00:20:45,000 Vi nur ruli la fontkodon, kaj vi kuros la fontokodo 385 00:20:45,000 --> 00:20:49,000 per skribanta en kutima teksto-dosiero, finante en. php en ĉi tiu kazo 386 00:20:49,000 --> 00:20:53,000 anstataŭ. c, kaj kion la programo faras sur via komputilo 387 00:20:53,000 --> 00:20:57,000 ĉu laŭvorte interpretas via kodo linio por linio por linio. 388 00:20:57,000 --> 00:21:00,000 >> En aliaj vortoj, anstataŭ skribi programon kaj rulu la programon 389 00:21:00,000 --> 00:21:04,000 rekte vi anstataŭ skribi programon kun dosieron ending in. php. 390 00:21:04,000 --> 00:21:09,000 Tiam vi kuras reala programo nomata php.exe, se vi estas en Windows, 391 00:21:09,000 --> 00:21:12,000 aŭ nur PHP se vi estas en Mac OS aŭ Linukso, 392 00:21:12,000 --> 00:21:17,000 kaj vi provizis kiel eniro al la PHP programo vian propran fontkodo, 393 00:21:17,000 --> 00:21:20,000 kaj lia celo en la vivo estas por legi vian kodo supre sube, maldekstre dekstren, 394 00:21:20,000 --> 00:21:23,000 kaj do kion ajn vi rakontis ĝin fari. 395 00:21:23,000 --> 00:21:25,000 >> Ni vidu kion ĉi tuj signifas sintakse. 396 00:21:25,000 --> 00:21:27,000 En PHP ni havas kondiĉojn. 397 00:21:27,000 --> 00:21:29,000 Ĉi glito estas identa al kio vi vidis tie en semajno 1 398 00:21:29,000 --> 00:21:33,000 ĉar sintakse kondiĉoj, IFS kaj alia IFS kaj alie en PHP 399 00:21:33,000 --> 00:21:35,000 aspektas precize kiel tiu. 400 00:21:35,000 --> 00:21:38,000 Kiam temas pri bulea esprimoj ili tuj rigardi ĝuste kiel ĉi tiu. 401 00:21:38,000 --> 00:21:43,000 Kiam temas pri anding aĵoj kune kiel booleans ĝi tuj rigardi ĝuste kiel ĉi tiu. 402 00:21:43,000 --> 00:21:46,000 Ŝaltiloj aspektas same, kaj vi akiris la aldonita profito en PHP 403 00:21:46,000 --> 00:21:51,000 ke ŝaltiloj en C povis nur ŝanĝi sur char aŭ int. 404 00:21:51,000 --> 00:21:53,000 Vi ne povus ŝanĝi la ĉenon valoro. 405 00:21:53,000 --> 00:21:55,000 En PHP vi povas reale havas esprimon 406 00:21:55,000 --> 00:21:58,000 ke estas variablo kies enhavoj estas ĉeno, 407 00:21:58,000 --> 00:22:01,000 kaj vi povas reale fari ĉenon komparo en la reala intuicia vojo, 408 00:22:01,000 --> 00:22:06,000 ne puntero komparo, por decidi cxu fari kazo i aŭ j aŭ ion alian. 409 00:22:06,000 --> 00:22:09,000 Ni vidos ke potenciale antaux longe. 410 00:22:09,000 --> 00:22:11,000 >> Maŝojn tro mirinde estas la sama. 411 00:22:11,000 --> 00:22:15,000 Por maŝojn havas inicialización, kondiĉo, kaj iuj nombro de ĝisdatigoj. 412 00:22:15,000 --> 00:22:18,000 Dum cikloj ankaŭ ekzistas en PHP. 413 00:22:18,000 --> 00:22:21,000 Ĉu dum maŝojn ankaŭ ekzistas en PHP, 414 00:22:21,000 --> 00:22:26,000 kaj tabeloj ekzistas en PHP, sed tie estas kie la sintakso komencas akiri iom malsama, 415 00:22:26,000 --> 00:22:29,000 sed la konceptoj estas la sama, kaj la konceptoj vere estas samaj 416 00:22:29,000 --> 00:22:32,000 kiel estis en Semajno 0 kun Scratch. 417 00:22:32,000 --> 00:22:34,000 Unuavice estas la $ signo. 418 00:22:34,000 --> 00:22:37,000 Tiu estis dezajno decido en PHP per ajna variablo 419 00:22:37,000 --> 00:22:41,000 en PHP per dezajno startas kun $ signo. 420 00:22:41,000 --> 00:22:46,000 Ne pli X, Y, Z. Ĝi estas nun $ X, Y $, $ Z nur ĉar. 421 00:22:46,000 --> 00:22:49,000 Estas io por teni en la menso, kaj nun en la dekstra flanko 422 00:22:49,000 --> 00:22:52,000 ĉi aspektas simila al tabelo, 423 00:22:52,000 --> 00:22:54,000 sed ni uzas kvadrataj krampoj tie. 424 00:22:54,000 --> 00:22:57,000 En PHP kaj en JavaScript, kiel ni fine vidas, 425 00:22:57,000 --> 00:23:01,000 deklari tabelo vi faras malfermita kvadrata krampo kaj fermis kvadrata krampo, 426 00:23:01,000 --> 00:23:04,000 kaj tiam vi havas apartigita de komoj listo de valoroj, ĉu ints 427 00:23:04,000 --> 00:23:09,000 aŭ ŝnuroj aŭ signoj, kion vi volas, ene de tiu esprimo ekzistas. 428 00:23:09,000 --> 00:23:11,000 >> Nun, kiel estiĝis ni faru ion kiel tiu en C? 429 00:23:11,000 --> 00:23:16,000 Kio estis la sintakson por statike deklarante tabelo de konataj numeroj? 430 00:23:16,000 --> 00:23:19,000 Estis frizita krampoj, tiel malgranda diferenco ĉi tie, sed en ambaŭ PHP 431 00:23:19,000 --> 00:23:22,000 kaj finfine JavaScript simple uzas kvadrataj krampoj, do vere 432 00:23:22,000 --> 00:23:25,000 la sola interesa detalo jen la $ signo por la variablo nomo 433 00:23:25,000 --> 00:23:28,000 kaj ankaŭ la rektaj krampoj, kaj tie estas unu kurioza 434 00:23:28,000 --> 00:23:32,000 ke tio estis preterlasitaj siavice sur la maldekstra flanko de la = signo. 435 00:23:32,000 --> 00:23:36,000 Kio mankas ke ni estis postulanta dum semajnoj nun? Yeah. 436 00:23:36,000 --> 00:23:38,000 [Inaudible studento respondon] 437 00:23:38,000 --> 00:23:41,000 La grandeco, do ne estas mencio de la grandeco de la tabelo. 438 00:23:41,000 --> 00:23:45,000 Sincere, ne estas mencio de kvadrataj krampoj sur la maldekstra flanko 439 00:23:45,000 --> 00:23:47,000 de la = signo, kaj kio ajn estas malaperita el la linio? 440 00:23:47,000 --> 00:23:49,000 Yeah. >> [Inaudible studento respondon] 441 00:23:49,000 --> 00:23:52,000 La tipo, do kio estas interesa aparte pri PHP 442 00:23:52,000 --> 00:23:56,000 estas ke ĝi ne estas forte tajpitaj lingvo kiel C estas, 443 00:23:56,000 --> 00:23:58,000 kaj tio forte tajpita en la senco, kiun vi devas diri char, 444 00:23:58,000 --> 00:24:00,000 vi devas diri int, vi devas diri kaleŝego. 445 00:24:00,000 --> 00:24:03,000 >> Anytime you want a variablo vi devas diri al Clang kion lia tipo estas. 446 00:24:03,000 --> 00:24:05,000 PHP estas iom lazier. 447 00:24:05,000 --> 00:24:08,000 Ĝi estas libere tajpita en la senco ke 448 00:24:08,000 --> 00:24:11,000 vi povas havi flosas kaj signoj kaj kordoj 449 00:24:11,000 --> 00:24:14,000 kaj ints ktp, sed la lingvo mem 450 00:24:14,000 --> 00:24:17,000 Ne vere gravas kion oni metis ene de variablo. 451 00:24:17,000 --> 00:24:20,000 Vi ne devas informi ĝin anticipe kion datumtipo 452 00:24:20,000 --> 00:24:22,000 tuj en variablo. 453 00:24:22,000 --> 00:24:24,000 Estas tute dependas de vi, do ĉi tiu estas agrabla 454 00:24:24,000 --> 00:24:27,000 en kiu vi ne devas maltrankviligi tiel datumoj tajpado 455 00:24:27,000 --> 00:24:29,000 kaj maltrankviligante kion via argumentoj estas ks. 456 00:24:29,000 --> 00:24:32,000 Ĉi tio ankaŭ signifas eventuale funkcioj en PHP tuj povos reveni 457 00:24:32,000 --> 00:24:36,000 ĉu int plejparto de la tempo, kaj eble fojfoje 458 00:24:36,000 --> 00:24:40,000 ili revenos al bool, bulea falsa, ekzemple, por signifi, ke io iris malbone. 459 00:24:40,000 --> 00:24:44,000 Tio donas al ni iun upsides, sed ankaŭ nin faros ia per dezajno 460 00:24:44,000 --> 00:24:47,000 iom lazier kiam temas datumoj tajpi. 461 00:24:47,000 --> 00:24:50,000 >> Kio alia estas tie por memoru ĉi tie? 462 00:24:50,000 --> 00:24:54,000 Variabloj aspektas sufiĉe ŝatis tion, do $ s = "Saluton, mondo." 463 00:24:54,000 --> 00:24:57,000 Tio estas eble inferable de la antaŭa ekzemplo, 464 00:24:57,000 --> 00:24:59,000 kaj ni havas alian tipon de ciklo. 465 00:24:59,000 --> 00:25:02,000 Ĉi tiu ni efektive vidas fojfoje ekde ĝi estas sufiĉe utila, 466 00:25:02,000 --> 00:25:04,000 a foreach konstrui. 467 00:25:04,000 --> 00:25:11,000 En ĉi tiu kazo, la foreach buklo portas ene de lia krampoj 3 vortoj tipe, 468 00:25:11,000 --> 00:25:16,000 $ Io unue, kio estas kion tabelo vi volas persisti super la membroj de, 469 00:25:16,000 --> 00:25:19,000 tiam laŭvorte la ŝlosilvorto kiel, kaj poste laste, 470 00:25:19,000 --> 00:25:21,000 alia variablo nomo kiun vi ricevas elekti. 471 00:25:21,000 --> 00:25:23,000 Ĝi povas esti foo, trinkejo, aŭ elemento, 472 00:25:23,000 --> 00:25:26,000 kaj kion tiu konstruo faras 473 00:25:26,000 --> 00:25:29,000 estas se la $ tabelo enhavas 10 elementoj 474 00:25:29,000 --> 00:25:34,000 sur ĉiu ripeto de tablo-sorry, sur ĉiu ripeto de ĉi maŝo 475 00:25:34,000 --> 00:25:37,000 la variablo nomata elemento tuj estos ĝisdatigita 476 00:25:37,000 --> 00:25:40,000 esti la unua elemento de la aro, tiam la dua elemento en la tabelo, 477 00:25:40,000 --> 00:25:44,000 tiam la tria ero de la tabelo, tiel obviating la bezono 478 00:25:44,000 --> 00:25:46,000 fari la iomete ĝena kvadrata krampo notacio kaj 479 00:25:46,000 --> 00:25:49,000 $ I por indekson en tabelo. 480 00:25:49,000 --> 00:25:53,000 PHP faras ĉiu el tiu laboro por vi kaj sur cxiu ripeto 481 00:25:53,000 --> 00:25:55,000 nur manoj vi la sekva elemento de la tabelo 482 00:25:55,000 --> 00:26:01,000 sen vi devi scii pri aŭ zorgas pri lia nombraj indekso loko. 483 00:26:01,000 --> 00:26:04,000 >> Kaj poste persiste, nuntempe, estas alia karakterizaĵo de PHP 484 00:26:04,000 --> 00:26:08,000 ke tuj estos ege utila, precipe kiam ni komencos programado en TTT, 485 00:26:08,000 --> 00:26:10,000 kaj tio konata kiel asocieca tabelo. 486 00:26:10,000 --> 00:26:13,000 La tabeloj, ke ni konas ĝis nun ekde 20 sekundoj antaŭe 487 00:26:13,000 --> 00:26:17,000 kaj dum la lastaj 8 semajnoj estas ciferece indeksita arrays, 488 00:26:17,000 --> 00:26:20,000 speco de tradicia arrays kie la indeksoj estas ints, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, la tuta vojo plu supren. 490 00:26:23,000 --> 00:26:25,000 Asocieca tabeloj estas multe pli potenca. 491 00:26:25,000 --> 00:26:28,000 Ili permesas al vi havi arbitraj klavoj, 492 00:26:28,000 --> 00:26:31,000 arbitraj indeksoj kaj arbitra valoroj. 493 00:26:31,000 --> 00:26:34,000 Dum en tradicia tabelo estas 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 en asocieca tabelo vi povas havi indekso 495 00:26:37,000 --> 00:26:41,000 aŭ ŝlosilo de foo kies valoro estas trinkejo. 496 00:26:41,000 --> 00:26:46,000 Vi povas tiam havi alian klavon kies nomo estas baz kaj kies valoro estas qux. 497 00:26:46,000 --> 00:26:49,000 >> Denove, stulta komputiko generic variablo nomojn ĉi tie, 498 00:26:49,000 --> 00:26:55,000 sed la punkto estas ke tiu tabelo ne havas krampo 0 aŭ krampo 1. 499 00:26:55,000 --> 00:26:59,000 Ĝi estas anstataŭ tuj devos krampo foo kaj krampo baz. 500 00:26:59,000 --> 00:27:03,000 Tio estas multe pli versátil en tiu nin tuj povos asocii 501 00:27:03,000 --> 00:27:07,000 vortojn kun aliaj vortoj, ŝlosilojn kun valoroj tute arbitre, 502 00:27:07,000 --> 00:27:12,000 kaj ni tuj povos akiri tiujn valorojn reen en konstanta tempo 503 00:27:12,000 --> 00:27:14,000 ĉar sub la kapuĉo kion asocieca tabelo 504 00:27:14,000 --> 00:27:16,000 vere estas hash tablo. 505 00:27:16,000 --> 00:27:20,000 Memori, ke hash tablo permesas meti en iuj enigo 506 00:27:20,000 --> 00:27:25,000 kiel meti en la vorto David, se vi volas enmeti Davido en ia vortaro, 507 00:27:25,000 --> 00:27:27,000 kaj tiam vi reiros iu valoro tipe. 508 00:27:27,000 --> 00:27:29,000 En la kazo de Speller, vera aŭ malvera. 509 00:27:29,000 --> 00:27:33,000 David aŭ kion ajn vorto estas en aŭ ne estas en la vortaro. 510 00:27:33,000 --> 00:27:36,000 Asocieca tabelo estas vere nur hash tablo, 511 00:27:36,000 --> 00:27:38,000 sed ĝi estas multe pli uzanto amika personigo de ĝi. 512 00:27:38,000 --> 00:27:41,000 Kiel ni vidos, ĝi estas tuj permesos al ni fari kelkajn aferojn 513 00:27:41,000 --> 00:27:43,000 tre tre facile. 514 00:27:43,000 --> 00:27:45,000 >> Ni rigardu kelkajn bazajn PHP 515 00:27:45,000 --> 00:27:47,000 ekzemploj kaj vidi kion ni povas fari kun tiu lingvo. 516 00:27:47,000 --> 00:27:51,000 Lasu min kaj malfermu en nia fonto katalogo hodiaŭ 517 00:27:51,000 --> 00:27:54,000 dosiero nomata hello1.php. 518 00:27:54,000 --> 00:27:57,000 Ĉi tiu dosiero estas pli komento ol ĝi estas reala kodo, 519 00:27:57,000 --> 00:28:00,000 do lasu min vere forigi ĉiujn komentojn de la dosiero 520 00:28:00,000 --> 00:28:05,000 kaj aktualaj al vi eble la plej simpla PHP programo ĉi tie. 521 00:28:05,000 --> 00:28:07,000 5 linioj, kaj kelkaj el tiuj estas blanka spaco, 522 00:28:07,000 --> 00:28:09,000 tiom rimarkos iujn ŝlosilo diferencoj tie. 523 00:28:09,000 --> 00:28:12,000 La dosiero estas nomita hello1.php. 524 00:28:12,000 --> 00:28:16,000 La unua linio, tamen, estas 00:28:18,000 Simila en spirito al HTML, 526 00:28:18,000 --> 00:28:21,000 ke vico de signoj rakontas la komputilo 527 00:28:21,000 --> 00:28:25,000 "Hej, komputilo, tie venas programo ni estas en en PHP." 528 00:28:25,000 --> 00:28:28,000 Ĝi certigas ĝi ne konfuzita, ke estas iu alia lingvo. 529 00:28:28,000 --> 00:28:30,000 Linio 2 estas interesa blanka spaco. 530 00:28:30,000 --> 00:28:32,000 Linio 3 estas nia malnova amiko printf, 531 00:28:32,000 --> 00:28:34,000 ĉi tiu tempo en la kunteksto de PHP. 532 00:28:34,000 --> 00:28:37,000 PHP havas sian propran version de printf kiu kondutas ĝuste la sama, 533 00:28:37,000 --> 00:28:39,000 tial ĉi estas nur tuj presi "saluton, mondo." 534 00:28:39,000 --> 00:28:46,000 Kaj tiam ĉi malo etikedo tie,?>, Tio signifas ke estas por mia PHP-kodo. 535 00:28:46,000 --> 00:28:48,000 >> Ni vidos kiel funkcias ĉi. 536 00:28:48,000 --> 00:28:50,000 Mi tuj iros reen al mia fina fenestro tie. 537 00:28:50,000 --> 00:28:52,000 Mi tuj iros en mian PHP dosierujo. 538 00:28:52,000 --> 00:28:56,000 Rimarku ke ni havas tuta amaso de dosieroj, la unua el kiuj estas hello.php. 539 00:28:56,000 --> 00:29:01,000 Lasu min kaj kuras ĉi, hello1.php, eniru. 540 00:29:01,000 --> 00:29:03,000 Permeso rifuzita. Okay. 541 00:29:03,000 --> 00:29:06,000 Per kio ni fiksis aĵojn kiel tiu en la estinteco? 542 00:29:06,000 --> 00:29:08,000 Kio estas tio? >> [Inaudible studento respondon] 543 00:29:08,000 --> 00:29:11,000 Ni bezonas legi kaj skribi, sed lasu min fari ls-l. 544 00:29:11,000 --> 00:29:14,000 Memoru tion iom críptico eligo per hello1 545 00:29:14,000 --> 00:29:17,000 Ŝajnas esti legebla kaj skribebla por mi 546 00:29:17,000 --> 00:29:19,000 sed legebla per ĉiuj aliaj. 547 00:29:19,000 --> 00:29:22,000 Ĝi rezultas ĉi efektive ne estas paŝo en la ĝustan direkton. 548 00:29:22,000 --> 00:29:25,000 La diferenco, denove, kun interpretita lingvo 549 00:29:25,000 --> 00:29:27,000 Estas vi ne kuras la programo rekte. 550 00:29:27,000 --> 00:29:30,000 Vi anstataŭe kuras interpretisto kaj transdoni ĝin al la kodo 551 00:29:30,000 --> 00:29:33,000 ke vi skribis tiel ĝi povas interpreti ĝin linio por linio. 552 00:29:33,000 --> 00:29:36,000 En ĉi tiu kazo, la interpretisto aŭ programo mi vere volas kuri 553 00:29:36,000 --> 00:29:38,000 estas laŭvorte nomis PHP. 554 00:29:38,000 --> 00:29:41,000 >> Ie sur tiu malmola disko de la aparaton tie estas programo 555 00:29:41,000 --> 00:29:45,000 iu alia skribis nomis PHP, aŭ en Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Kion mi faros cxi tie estas mi iros al reale kuri PHP 557 00:29:48,000 --> 00:29:51,000 sed donu ĝin kiel komanda linio argumento la kodon, kiun mi skribis, 558 00:29:51,000 --> 00:29:54,000 kaj tiam Mi malzomi kaj batis eniri. 559 00:29:54,000 --> 00:29:58,000 Ĝi kuras mia programo por mi, supre sube, maldekstre dekstren. 560 00:29:58,000 --> 00:30:01,000 Lasu min kaj malfermu malpeza varianco de ĉi. 561 00:30:01,000 --> 00:30:05,000 En hello2.php avertas ke ĉi tro 562 00:30:05,000 --> 00:30:08,000 estas plejparte komentoj, do lasu min forigi tiujn kiel distro, 563 00:30:08,000 --> 00:30:13,000 kaj kio estas klare malsama nun pri tiu dosiero? 564 00:30:13,000 --> 00:30:15,000 Estas ĉi nova linio, iom enigmaj al la pinto. 565 00:30:15,000 --> 00:30:20,000 En linio 1 estas #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin estas konvencio en Linukso kaj Mac OS por binaroj, 567 00:30:24,000 --> 00:30:27,000 do / bin signifas ĉi estas dosierujo enhavanta aron da binaraj 568 00:30:27,000 --> 00:30:29,000 ke estas planita, unu el kiuj estas PHP. 569 00:30:29,000 --> 00:30:32,000 La #! Estas apodado shebang, 570 00:30:32,000 --> 00:30:35,000 kiu estas la rapida maniero diri ĝin, kaj kion tiu signifas 571 00:30:35,000 --> 00:30:40,000 estas, ke kiam vi kuros ĉi programo nun estas aludo al la pinto de la dosiero 572 00:30:40,000 --> 00:30:44,000 kiu rakontas la komputilo kio interpretisto uzi. 573 00:30:44,000 --> 00:30:47,000 >> Ĝi alvenas iom ĝena se vi devis diri al viaj uzantoj kaj viaj klientoj 574 00:30:47,000 --> 00:30:50,000 "Hej, ni skribis tiun programon nomata hello1.php." 575 00:30:50,000 --> 00:30:54,000 Vi devas fari estas eterne kuras PHP kaj tiam la nomo de tiu programo. 576 00:30:54,000 --> 00:30:58,000 Sincere, estus nur esti pli agrabla por kuri hello1.php, 577 00:30:58,000 --> 00:31:00,000 kaj ja, oni povas, se ni faros la sekvajn. 578 00:31:00,000 --> 00:31:05,000 Lasu min kaj faru ls-l, kaj anonco en hello2 ĝi estas ankoraŭ apenaŭ legis skribi 579 00:31:05,000 --> 00:31:10,000 kaj poste legi legi, do mi ne povas tamen fari tion, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Sed ni enkondukis ĉi iam tiel mallonge lasta fojo, la chmod komando. 581 00:31:15,000 --> 00:31:20,000 Se mi faras chmod a + x, kiu signifas ĉiuj krom executability, 582 00:31:20,000 --> 00:31:26,000 kaj tiam hello2.php kaj do ls-l denove rimarki kio ŝanĝis. 583 00:31:26,000 --> 00:31:29,000 Unu, Linukso montras al mi la dosiernomo en verdo por esprimi la ideon 584 00:31:29,000 --> 00:31:32,000 ke ĝi estas plenumebla, sed pli grave, en la maldekstra flanko 585 00:31:32,000 --> 00:31:36,000 rimarki, ke la iom reprezenti x por ruleblan nun starigis. 586 00:31:36,000 --> 00:31:42,000 Kio ĉi nun signifas Estas mi povas kuri ./hello2.php kiel kutime, 587 00:31:42,000 --> 00:31:45,000 batis eniros, kaj pro la shebang ĉe la plejsupro de la dosiero 588 00:31:45,000 --> 00:31:48,000 tio estas aludo, denove, por Linukso kiu diras 589 00:31:48,000 --> 00:31:51,000 uzi ĉi interpretisto kuri ĉi tiu dosiero. 590 00:31:51,000 --> 00:31:54,000 Ne maltrankviliĝu pri devigante al la uzanto efektive tajpi ĝin. 591 00:31:54,000 --> 00:31:57,000 >> Kaj kio estas bela hodiaŭ estas la speco de pala al mia klientoj aŭ mia amikoj 592 00:31:57,000 --> 00:32:01,000 kio lingvo mi skribis tiun programon en, do mi povas antaŭeniri per mv 593 00:32:01,000 --> 00:32:04,000 kaj renomi tiun aferon al hello2, ekzemple. 594 00:32:04,000 --> 00:32:07,000 Kaj nun se mi faras ./hello2 595 00:32:07,000 --> 00:32:10,000 kaj malzomi mia programo daŭre funkcias. 596 00:32:10,000 --> 00:32:13,000 Tiuj dosieraj sufiksoj estas homa konvencio, ke necesas 597 00:32:13,000 --> 00:32:15,000 por iu kiel Clang kaj Faru kiuj serĉi ilin. 598 00:32:15,000 --> 00:32:18,000 Sed por PHP, mi povis nomi tiun dosiersufikso ajn mi volas. 599 00:32:18,000 --> 00:32:22,000 Mi povis trompi la mondon en pensante ke mi estas vere bona en Rubeno, 600 00:32:22,000 --> 00:32:25,000 kaj mi ne povis skribi hello2.rb kaj poste ekzekuti ĉi, 601 00:32:25,000 --> 00:32:28,000 kaj voila, nun mi havas la Rubeno versio, kiu estas kompleta mensogo. 602 00:32:28,000 --> 00:32:30,000 Sed la dosieron sufiksojn sensignifa 603 00:32:30,000 --> 00:32:35,000 se la dosiero estas plenumebla kaj havas tiu speciala aludo al la pinto de la dosiero. 604 00:32:35,000 --> 00:32:38,000 >> Nun, kiel flanken, lasu min montri al vi rapide versio 3, 605 00:32:38,000 --> 00:32:40,000 kiu estas speco de utila lertaĵo scii. 606 00:32:40,000 --> 00:32:45,000 En hello3 mi faris ion iomete erara 607 00:32:45,000 --> 00:32:47,000 ke mi ĝisdatigos la fontkodon ensalutintaj. 608 00:32:47,000 --> 00:32:50,000 En la versio 3 rezultu ke en la plimulto Linukso komputiloj 609 00:32:50,000 --> 00:32:53,000 tie estas programo nomata Koverto por medio, 610 00:32:53,000 --> 00:32:56,000 kaj kion vi povas fari ĉi tie estas se vi ne havas ideon kie PHP 611 00:32:56,000 --> 00:33:00,000 estas instalita sur la loka malmola disko, ĉar efektive povus varii en funkcio de la komputilo 612 00:33:00,000 --> 00:33:03,000 ke iu uzante, Koverto nur diras kuri Koverto, 613 00:33:03,000 --> 00:33:07,000 kiu estas sur la plej multaj sistemoj, kaj eltrovi kie PHP estas. 614 00:33:07,000 --> 00:33:11,000 Nur komuna artifiko tiel vi ne devas zorgi pri eltrovi kie programo estas. 615 00:33:11,000 --> 00:33:14,000 Sed se vi faras zorgon por eltrovi kie programo estas kaj vi ne zorgis ĝis nun 616 00:33:14,000 --> 00:33:16,000 vi povas uzi la komandon kiun. 617 00:33:16,000 --> 00:33:19,000 >> Lasu min malzomi kaj tipon kiu php, 618 00:33:19,000 --> 00:33:23,000 kaj rimarki ĝin diras al mi ke fakte en usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 Estas speco de mensogo. Estas same en bin. 620 00:33:25,000 --> 00:33:27,000 Ĝi estas nur montrante al mi la unua sukceso. 621 00:33:27,000 --> 00:33:31,000 Se vi iam scivolis kie Clang estas, kion Clang, jen en usr / bin / clang, 622 00:33:31,000 --> 00:33:34,000 kion fari, usr / bin / fari, kaj kion tio signifas do tio estas tempo 623 00:33:34,000 --> 00:33:38,000 vi povus esti tajpi usr / bin / clang eniri kuri Clang, 624 00:33:38,000 --> 00:33:41,000 sed estas speco de teda fari tion, do iuj dosierujoj 625 00:33:41,000 --> 00:33:44,000 kiel usr / bin kaj bin estas alprenita al esti implicite 626 00:33:44,000 --> 00:33:50,000 do la komputilo scias rigardi en ilin por vi. 627 00:33:50,000 --> 00:33:53,000 Demandojn skribi la super, super simplan Saluton Mondo programo 628 00:33:53,000 --> 00:33:55,000 en PHP kaj poste kurante ĝin? 629 00:33:55,000 --> 00:33:59,000 Ĉar nun ni komencas enkonduki pli konvinkaj sintakso. 630 00:33:59,000 --> 00:34:01,000 Bone, jen ni iru. 631 00:34:01,000 --> 00:34:03,000 Tiuj programoj ni vidis vere ĉiuj ili antaŭe. 632 00:34:03,000 --> 00:34:07,000 >> Se mi malfermi, ekzemple, ni faru beer1.php, 633 00:34:07,000 --> 00:34:09,000 ni ne iros tra pluraj versioj de ĉi tiu, sed kion mi faris 634 00:34:09,000 --> 00:34:13,000 Estis mi sidiĝis kaj verŝis ĝin aŭ konvertita 635 00:34:13,000 --> 00:34:15,000 miaj C-kodon al PHP kodo tie. 636 00:34:15,000 --> 00:34:18,000 La plejparto de la supro de la dosiero estas komentoj ĉe tie. 637 00:34:18,000 --> 00:34:20,000 Ĝi rezultas ekzistas unu nova funkcio necesas nomi readline. 638 00:34:20,000 --> 00:34:23,000 GetString, revokon, de Semajno 0 antaŭen iris CS50 afero. 639 00:34:23,000 --> 00:34:27,000 PHP venas kun lia propra uzantamika funkcio nomita readline 640 00:34:27,000 --> 00:34:30,000 kiu prenas 1 argumenton kiu specifas la prompto 641 00:34:30,000 --> 00:34:33,000 ke vi volas montri al la uzanto, kaj kion faras readline 642 00:34:33,000 --> 00:34:35,000 Estas li revenas ajn uzanto tipoj in 643 00:34:35,000 --> 00:34:39,000 En ĉi tiu kazo, mi deklari variablon nomita $ n. 644 00:34:39,000 --> 00:34:42,000 Mi stokante en ĝi la reveno valoro de readline 645 00:34:42,000 --> 00:34:44,000 post instigante la uzanto kun tiu linio. 646 00:34:44,000 --> 00:34:47,000 Nur por subteni, por reale kuri tion, lasu min iri antaŭen 647 00:34:47,000 --> 00:34:50,000 kaj kuri php beer1.php. 648 00:34:50,000 --> 00:34:53,000 Kiom da boteloj estos esti? Ni nur faru 2 ĉifoje. 649 00:34:53,000 --> 00:34:55,000 Eniri. Tio estas ĉio. 650 00:34:55,000 --> 00:34:59,000 >> La programo estas funkcie identaj al la C versio de semajnoj. 651 00:34:59,000 --> 00:35:01,000 Sed sintakse ni vidu kio estas malsama. 652 00:35:01,000 --> 00:35:05,000 Post kiam mi ricevas int de la uzanto rimarkos, ke mi faras iun eraron kontrolanta, 653 00:35:05,000 --> 00:35:08,000 kaj se n estas malpli ol 1 Mi quit kaj mi presi 654 00:35:08,000 --> 00:35:11,000 arrepentido mesaĝon al la uzanto kaj eliro kun 1. 655 00:35:11,000 --> 00:35:13,000 Ĉi tro estas iom malsama. 656 00:35:13,000 --> 00:35:16,000  En C kion ni faru? En C ni revenis 1. 657 00:35:16,000 --> 00:35:20,000 En PHP vi eliri kun 1, kiu sincere estas mi pensas iom pli intuicia 658 00:35:20,000 --> 00:35:22,000 ĉar vi laŭvorte elirejanta la programo. 659 00:35:22,000 --> 00:35:25,000 Bone, kaj tiam malsupren tie la ĝena kanto estas identaj sintakse 660 00:35:25,000 --> 00:35:29,000 krom la variablo, do ĉi tie en linio 24 antaŭen 661 00:35:29,000 --> 00:35:31,000 rimarki mian por buklo estas preskaŭ la sama, 662 00:35:31,000 --> 00:35:34,000 sed mi havas $ antaŭ i kaj n, 663 00:35:34,000 --> 00:35:37,000 kaj kio ankaŭ mankas en linio 26 ke ni havis en la pasinteco 664 00:35:37,000 --> 00:35:39,000 kiam deklari variablon i? 665 00:35:39,000 --> 00:35:41,000 Ne tipo. 666 00:35:41,000 --> 00:35:43,000 Ĝi estas malĝusta en PHP diri int. 667 00:35:43,000 --> 00:35:45,000 Vi simple ne bezonas fari tion. 668 00:35:45,000 --> 00:35:48,000 La komputilo, la interpretisto PHP estas inteligenta sufiĉe por realigi 669 00:35:48,000 --> 00:35:51,000 ke se vi metas numeron en $ Mi estos trakti ĝin 670 00:35:51,000 --> 00:35:53,000 kiel nombro por vi. 671 00:35:53,000 --> 00:35:57,000 Kaj poste malsupren tie plug en $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Ĉiuj de tiu estas la sama, kaj tiam ĉi tie ni faras "Wow, jen ĝena" printf 673 00:36:00,000 --> 00:36:02,000 kaj poste eliri (0). 674 00:36:02,000 --> 00:36:05,000 >> Denove, la takeaway tie estas ke kvankam ni pasigos relative 675 00:36:05,000 --> 00:36:09,000 iom tempo en PHP, certe kontre kion ni faris sur C, 676 00:36:09,000 --> 00:36:12,000 ĝi estas preskaŭ la sama, kaj tial, kion ni faros hodiaŭ kaj venontan semajnon 677 00:36:12,000 --> 00:36:14,000 kaj preter estas enfokusigi vere en iuj el la novaj ideoj. 678 00:36:14,000 --> 00:36:17,000 Nur por vidi tiu alia aĵo traduki super de C, 679 00:36:17,000 --> 00:36:20,000 tio estis la super simpla programo ni faris en la semajno 1 680 00:36:20,000 --> 00:36:22,000 aŭ 2 kiu potenco de valoro. 681 00:36:22,000 --> 00:36:25,000 Sed kio estis interesa tiutempe pri tiu programo estas ke 682 00:36:25,000 --> 00:36:28,000 enkondukis la nocion de kutimo skribita funkcio kiu ni mem skribis. 683 00:36:28,000 --> 00:36:31,000 La sintakso en PHP estas preskaŭ la sama. 684 00:36:31,000 --> 00:36:33,000 Jen mia programo ĝis supro. 685 00:36:33,000 --> 00:36:35,000 Rimarku denove forestas estas ajna nocio de ĉefa. 686 00:36:35,000 --> 00:36:39,000 Mi komencas skribi kodon, kaj ĉi tiu estas kio okazas al get ekzekutita de la interpretisto. 687 00:36:39,000 --> 00:36:42,000 Mi presi x estas nun 2, supozeble. 688 00:36:42,000 --> 00:36:44,000 Tiam mi asertas cubing ... 689 00:36:44,000 --> 00:36:47,000 Tiam mi nomas la kubo funkcio kaj pasi en $ x 690 00:36:47,000 --> 00:36:50,000 kaj atribui la reveno valoro al $ x. 691 00:36:50,000 --> 00:36:53,000 Poste mi pretendas, ke ĝi estas potenco de, kaj tiam mi diros tion, kion ni atendas 692 00:36:53,000 --> 00:36:55,000 diros x estas nun 8. 693 00:36:55,000 --> 00:36:59,000 La sintakso por la funkcio en PHP estas nur milde malsama. 694 00:36:59,000 --> 00:37:01,000 Denove mankas estas la reveno tipo. 695 00:37:01,000 --> 00:37:05,000 Denove mankas estas la reveno tipo kaj ankaŭ mankas estas kion alia tipo? 696 00:37:05,000 --> 00:37:07,000 [Inaudible studento respondon] 697 00:37:07,000 --> 00:37:10,000 Nu, bone, tio estas bona. Ni revenu al tio en dua. 698 00:37:10,000 --> 00:37:12,000 >> Ni ne havas, ekzemple, int tie. 699 00:37:12,000 --> 00:37:15,000 Ni ne, ekzemple, ili int tien ĉar, denove, en PHP 700 00:37:15,000 --> 00:37:18,000 vi simple ne bezonas kaj ne devus fari tion, 701 00:37:18,000 --> 00:37:20,000 sed prefere tie estas tio nova ŝlosilvorto nomita funkcio. 702 00:37:20,000 --> 00:37:23,000 En PHP estas preskaŭ iom pli klara ĉar kiam vi volas funkcio 703 00:37:23,000 --> 00:37:26,000 vi laŭvorte diras funkcio, vi donos ĝin nomon kaj tiam apartigita de komoj listo 704 00:37:26,000 --> 00:37:28,000 se iu el liaj argumentoj. 705 00:37:28,000 --> 00:37:32,000 Neniu bezonas diri malplena aŭ io tia, kaj tiam reveno estas la sama, 706 00:37:32,000 --> 00:37:35,000 $ A * a * $ $ a. 707 00:37:35,000 --> 00:37:38,000 Kio estas ankaŭ mankas? Sammy montris tiun cxi tie. 708 00:37:38,000 --> 00:37:43,000 Sur la supro de la dosiero tute forestas en PHP ankaŭ estas prototipo. 709 00:37:43,000 --> 00:37:45,000 Ĉi tiu estas ankaŭ por dezajno. 710 00:37:45,000 --> 00:37:48,000 Lingvoj kaj interpretistoj kiel PHP estas pli inteligenta ol C iam estis 711 00:37:48,000 --> 00:37:50,000 en tradukiloj kiel Clang. 712 00:37:50,000 --> 00:37:53,000 >> Rememoru, ke Clang, se vi ne diris ke kubo ekzistas, 713 00:37:53,000 --> 00:37:56,000 se vi ne diris ke printf ekzistas kiel kun prototipo 714 00:37:56,000 --> 00:38:00,000 aŭ kun # include, nu, tuj krias al Vi kaj ne eĉ kompili vian kodon. 715 00:38:00,000 --> 00:38:03,000 PHP kaj pli modernaj lingvoj estas multe pli inteligenta kiam temas pri tio. 716 00:38:03,000 --> 00:38:07,000 Ili portos sur si legi tra ĉiuj viaj kodo 717 00:38:07,000 --> 00:38:11,000 kaj tiam krias al vi nur se ĝi trovas kubo nenie. 718 00:38:11,000 --> 00:38:15,000 Ne gravas se kubo estas malsupre aŭ en la kapo aŭ eĉ en iuj aparta dosiero. 719 00:38:15,000 --> 00:38:18,000 PHP kaj similaj lingvoj estas nun sufiĉe inteligenta por rigardi antaŭen 720 00:38:18,000 --> 00:38:26,000 ĉion antaŭ deeming vin kiel esti eraris. 721 00:38:26,000 --> 00:38:28,000 Kie tio lasas al ni? 722 00:38:28,000 --> 00:38:32,000 >> Ni faru unu lasta ekzemplo tie en kondiĉoj, 723 00:38:32,000 --> 00:38:35,000 kaj se mi malfermas conditions2.php avizo tro 724 00:38:35,000 --> 00:38:37,000 sintakso tie estas preskaŭ la sama. 725 00:38:37,000 --> 00:38:40,000 Mi uzas readline anstataŭ GetString, sed tiu linio estas sama kiel antaŭe, 726 00:38:40,000 --> 00:38:42,000 "Mi ŝatus entjero bonvolu." 727 00:38:42,000 --> 00:38:45,000 Mi tiam havi se kondiĉo, estas alia se, kaj poste alian, 728 00:38:45,000 --> 00:38:48,000 sed funkcie tiu programo estas ankaŭ identa al kion ni faris semajnoj, 729 00:38:48,000 --> 00:38:51,000 do se mi kuros ĉi afero, php de conditions2, 730 00:38:51,000 --> 00:38:54,000 kaj mi donos kelkajn kiel 23 - 731 00:38:54,000 --> 00:38:57,000 Mi plukis pozitiva nombro. Se mi donas ĝin -1 mi prenis negativa nombro. 732 00:38:57,000 --> 00:39:00,000 Se mi donas ĝin 0 mi ja elektis 0. 733 00:39:00,000 --> 00:39:02,000 Do kiu zorgas pri ĉio ĉi? 734 00:39:02,000 --> 00:39:06,000 Nu, unu el la amuzaj ia ekzercoj ĉi tie 735 00:39:06,000 --> 00:39:10,000 por mi almenaŭ estis iri tien kaj vidi kiel rapide mi povus apliki pset 5, 736 00:39:10,000 --> 00:39:12,000 la fuŝo pset. 737 00:39:12,000 --> 00:39:15,000 Memori, ke estas la dosiero nomata speller.c, 738 00:39:15,000 --> 00:39:17,000 kaj tie estis dosieron nomatan dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Kion mi faris estis mi specon de pasigis kelkajn minutojn kaj mi konvertis la C kodo 740 00:39:20,000 --> 00:39:23,000 al PHP kodo, kaj ni ne pasigas multe da tempo en Speller 741 00:39:23,000 --> 00:39:26,000 ĉar ĝuste kiel en pset 5 vi ne vere bezonas 742 00:39:26,000 --> 00:39:29,000 elspezi multe da tempo en Speller mem ĉar via atento estis sur vortaro. 743 00:39:29,000 --> 00:39:32,000 >> Sufiĉas diri, ke se vi legis tra Speller, 744 00:39:32,000 --> 00:39:35,000 tiun dosieron ĉi tie, estas preskaux ekvivalenta al la C kodo 745 00:39:35,000 --> 00:39:37,000 ni donis al vi por pset 5. 746 00:39:37,000 --> 00:39:39,000 Mi ĵus aldonis kelkajn $ en lokoj. 747 00:39:39,000 --> 00:39:43,000 Mi ŝanĝis iujn funkcion nomojn se ili ne ekzistas en PHP. 748 00:39:43,000 --> 00:39:45,000 Estas unu plia afero ĉi tie, preg_match, 749 00:39:45,000 --> 00:39:48,000 kiu estas iom amatoro maniero fari ion, sed ni revenos al tiu eventuale. 750 00:39:48,000 --> 00:39:51,000 Sed en fino, Speller estas preskaŭ identaj, kaj se vi rigardas la tre malsupro 751 00:39:51,000 --> 00:39:54,000 kio eventuale kraĉas out estas ĉi tie, 752 00:39:54,000 --> 00:39:57,000 vortoj misspelled, vortoj en la vortaro, vortoj en teksto. 753 00:39:57,000 --> 00:40:00,000 Bone, do kio estas interesa nun estas jeno. 754 00:40:00,000 --> 00:40:05,000 Sur la supro de mia dosiero mi postulanta dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Ĝuste kiel C estas # include PHP havas specialan funkcion nomita postulas 756 00:40:09,000 --> 00:40:14,000 ke preskaux faras la samon, postulas dosiero nomata dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Kiel mi povas iri apliki pset 5? 758 00:40:18,000 --> 00:40:21,000 Lasu min kaj malfermu dosieron ĉi tie. 759 00:40:21,000 --> 00:40:24,000 Lasu min preni iom referenco tie. 760 00:40:24,000 --> 00:40:29,000 Kaj lasu min krei novan dosieron kaj komenci nomi ĉi dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Lasu min metis ĝin en alian dosierujon do ni povas fari ĉi tion vivi. 762 00:40:31,000 --> 00:40:33,000 Kaj nun mi zoom in 763 00:40:33,000 --> 00:40:37,000 Mi tuj komencos mian PHP-dosiero kun malfermita krampo php fermita krampo. 764 00:40:37,000 --> 00:40:40,000 Kaj tiam en ĉi tie estis kelkaj funkcioj mi bezonis apliki por pset 5, 765 00:40:40,000 --> 00:40:42,000 do lasu min komenci apliki iujn el tiuj, 766 00:40:42,000 --> 00:40:47,000 tiel funkcio ĉeko, kiuj devis porti vorto en kiel argumento. 767 00:40:47,000 --> 00:40:49,000 Ni faras tion kaj revenu al tio post momento. 768 00:40:49,000 --> 00:40:53,000 >> Estis funkcio ŝarĝo, kiu prenis en kio kiel argumento? 769 00:40:53,000 --> 00:40:56,000 Vortaro, tiel kiel la dosiero, kiun mi fakte volis ŝarĝi. 770 00:40:56,000 --> 00:41:00,000 Estis funkcio grandeco, kiu ne prenis iu argumentoj 771 00:41:00,000 --> 00:41:04,000 kaj farigxis funkcio-kio estis la alia? 772 00:41:04,000 --> 00:41:06,000 Malŝarĝi, kiu ne prenas neniun argumentoj ankaŭ ne. 773 00:41:06,000 --> 00:41:10,000 Ĉi tiuj estas la 4 funkcioj, ke mi bezonus nun apliki en PHP, 774 00:41:10,000 --> 00:41:13,000 kaj kion mi faros estas faru tion. 775 00:41:13,000 --> 00:41:16,000 Multaj el vi uzis hash tablo en pset 5, 776 00:41:16,000 --> 00:41:21,000 do lasu min antaŭeniri kaj krei hash tablo en PHP. 777 00:41:21,000 --> 00:41:23,000 Faris. 778 00:41:23,000 --> 00:41:25,000 Tio donas al mi hash tablo. Nu, kial? 779 00:41:25,000 --> 00:41:30,000 Unu, la variablo estas nomita $ tabelo, nur por sorĉvenigi la ideo de hash tablo. 780 00:41:30,000 --> 00:41:34,000 La rektaj krampoj, tamen, memoru, ili reprezentas kion? 781 00:41:34,000 --> 00:41:37,000 Tabelo, sed en PHP tabeloj ne devas esti ciferece indeksita. 782 00:41:37,000 --> 00:41:41,000 Ili povas ankaŭ esti asocia arrays, 783 00:41:41,000 --> 00:41:44,000 kio signifas ke vi povas havi arbitraj klavoj kaj valoroj. 784 00:41:44,000 --> 00:41:49,000 >> Multe kiel en pset 5, tiuj el vi, kiuj faris hash tablo implementaciones 785 00:41:49,000 --> 00:41:53,000 vi probable insertos la vorto kaj tiam insertos gxin en ĉeno de ligitaj lertaj, 786 00:41:53,000 --> 00:41:56,000 aŭ vi stokitaj la valoron de vera ie aŭ io pri tio. 787 00:41:56,000 --> 00:41:59,000 Vi iel rememoris la fakton ke la vorto estis tie. 788 00:41:59,000 --> 00:42:01,000 Por la momento, ke tuj estos mia hash tablo, 789 00:42:01,000 --> 00:42:06,000 kaj tiel nun iri pri realigo de la ĉeko funkcio 790 00:42:06,000 --> 00:42:09,000 Mi nur bezonas rigardi interne de tiu hash tablo 791 00:42:09,000 --> 00:42:11,000 kaj vidu se vorto estas tie. 792 00:42:11,000 --> 00:42:15,000 Kion mi faros estas mi intencis diri, se- 793 00:42:15,000 --> 00:42:20,000 diru isset, kiu estas PHP-a funkcio kiu laŭvorte signifas simple estas la ŝlosilo aro, 794 00:42:20,000 --> 00:42:24,000 tiel isset ($ tabelo [$ vorto], 795 00:42:24,000 --> 00:42:29,000 kaj se tiel reveni vera. 796 00:42:29,000 --> 00:42:32,000 Estas tio. Tio pset 5 en PHP. 797 00:42:32,000 --> 00:42:34,000 Nu, en justeco, okay. 798 00:42:34,000 --> 00:42:37,000 Else reveni falsa, do ĝi ne estas tie. 799 00:42:37,000 --> 00:42:39,000 Kio vere okazas ĉi tie? 800 00:42:39,000 --> 00:42:42,000 Nu, se tablo-aŭ hash tablo tie pli ĝenerale- 801 00:42:42,000 --> 00:42:46,000 estas asocieca tabelo kiu signifu vi povas indekso en ĝin 802 00:42:46,000 --> 00:42:50,000 kun vorto kiel "vorto", kaj vi devas reiri iu valoro. 803 00:42:50,000 --> 00:42:52,000 >> Ni estas speco de prenanta unu paŝon antaŭe de ni mem. 804 00:42:52,000 --> 00:42:56,000 Estus ia agrabla se ni efektive ŝarĝas la dosiero unua, 805 00:42:56,000 --> 00:42:58,000 tiel ŝarĝo estas netute kiel simpla, sed lasu min antaŭeniri kaj skurĝi supren 806 00:42:58,000 --> 00:43:00,000  vere rapida efektivigo de ŝarĝo. 807 00:43:00,000 --> 00:43:07,000 Lasu min kaj diri vortojn ricevas dosieron vortaro. 808 00:43:07,000 --> 00:43:10,000 La dosiero funkcio en PHP malfermas dosieron 809 00:43:10,000 --> 00:43:12,000 kaj denove vi tabelo de ĉiuj vortoj en tiu dosiero, 810 00:43:12,000 --> 00:43:14,000 nur manoj ilin al vi. 811 00:43:14,000 --> 00:43:16,000 Tio estis granda doloro tro, estis ne? 812 00:43:16,000 --> 00:43:21,000 Nun foreach, ĉi tiu estas nia nova konstruo, foreach ($ vortoj kiel $ vorto). 813 00:43:21,000 --> 00:43:25,000 Ĉi buklo tuj komenci ripetanta super la tabelo vortoj 814 00:43:25,000 --> 00:43:30,000 kaj atribui al la $ vorto variablo ĉiu vorto en la dosiero 815 00:43:30,000 --> 00:43:32,000 de la unua al la dua al la tria al la kvara tuta vojo 816 00:43:32,000 --> 00:43:35,000 do mi ne devas fari la ĝena [i] skribmaniero kaj similaj. 817 00:43:35,000 --> 00:43:38,000 Kaj kion mi simple tuj do por ĉiu el tiuj vortoj 818 00:43:38,000 --> 00:43:43,000 estas stoki ĝin en mia tablo per indeksado en tabelo 819 00:43:43,000 --> 00:43:47,000 kaj tiam fari veran ĉar memori 820 00:43:47,000 --> 00:43:50,000 ke vorto estas en mia vortaro cxiuj mi vere devas fari 821 00:43:50,000 --> 00:43:55,000 estas ia klaki iom kaj diru tiun vorton en miaj hash tablo estas tie, vera. 822 00:43:55,000 --> 00:43:58,000 Kaj se ĝi ne estas tie, mi ne devas eksplicite metis falsa, 823 00:43:58,000 --> 00:44:01,000 alie mi devus meti malvera por ĉiuj eblaj vortoj en la universo. 824 00:44:01,000 --> 00:44:05,000 >> Ĝi sufiĉas por mi nur fiksi indekso valoro 825 00:44:05,000 --> 00:44:09,000 al vera se unu vorto estas fakte en mia hash tablo. 826 00:44:09,000 --> 00:44:12,000 Nun, mi tranĉis paro de anguloj tie Mi skuos miajn manojn ĉe nuntempe, 827 00:44:12,000 --> 00:44:15,000 sed nun la ŝarĝo funkcio estas farita. 828 00:44:15,000 --> 00:44:18,000 Mi montru ĉiujn vortojn de la dosiero en tabelo. 829 00:44:18,000 --> 00:44:21,000 Mi persisti super tiu tabelo, kaj por ĉiu vorto en la tabelo 830 00:44:21,000 --> 00:44:24,000 Mi konektas ĝin en mian hash tablo kun 1 linio de kodo. 831 00:44:24,000 --> 00:44:26,000 Tio estas amuza. Vi scias, kiel ni povas apliki grandeco nun? 832 00:44:26,000 --> 00:44:28,000 Nu, grandeco estas ĉiam bela facila, en justeco. 833 00:44:28,000 --> 00:44:32,000 Ĉi tie ni povas simple reveni grafo de tablo. 834 00:44:32,000 --> 00:44:34,000 Tio estas bela facila ankaŭ, kalkuli la nombron de aferoj en la tablon. 835 00:44:34,000 --> 00:44:36,000 Tio estas vere afabla de ne la plej efika. 836 00:44:36,000 --> 00:44:39,000 Mi devus probable havas variablo nomas grandecon do ni povas fari ĝin 837 00:44:39,000 --> 00:44:41,000 en konstanta tempo, sed tio estas sufiĉe facila. 838 00:44:41,000 --> 00:44:45,000 Ho, kaj tiam malŝarĝi, se ni vere volas esti anal tie 839 00:44:45,000 --> 00:44:47,000 ni povas diri ke estas kiel vi malŝarĝi ion. 840 00:44:47,000 --> 00:44:49,000 Vi nur starigis la variablo egalas al malplena aro, 841 00:44:49,000 --> 00:44:51,000 kaj ĝi liveras de ĉio, kio estis tie. 842 00:44:51,000 --> 00:44:53,000 Neniu bezonas nomi libera. 843 00:44:53,000 --> 00:44:56,000 >> Denove, mi tranĉis iuj anguloj, kaj mi pardonpetas pro atribuante problemo aro 5 844 00:44:56,000 --> 00:45:00,000 eble en C, sed se ni nun iru antaŭen kaj kuri ĉi, 845 00:45:00,000 --> 00:45:02,000 Mi tuj vere kuras la versio kiun mi skribis en anticipo 846 00:45:02,000 --> 00:45:05,000 nur tiel, ke mi ne faris ajnan sintaksa erarojn ajn. 847 00:45:05,000 --> 00:45:08,000 Lasu min kaj kuras Speller. La uzado estas la sama. 848 00:45:08,000 --> 00:45:12,000 Jen estas vortaro dosiero kiu nur enhavas la vorton foo. 849 00:45:12,000 --> 00:45:15,000 Jen estas teksto dosiero kiu nur enhavas foo trinkejo. 850 00:45:15,000 --> 00:45:19,000 Ni literumas kontrolu ĉi, do Speller, uzante ĉi vortaro dosieron pri tiu teksto dosiero. 851 00:45:19,000 --> 00:45:21,000 Estas unu misspelled vorto, trinkejo, kaj voila. 852 00:45:21,000 --> 00:45:23,000 Farita kun pset 5. 853 00:45:23,000 --> 00:45:30,000 Ni prenu la 5-minuta paŭzo tie, kaj ni revenos kaj pli en PHP. 854 00:45:30,000 --> 00:45:32,000 Bone, ni revenis. 855 00:45:32,000 --> 00:45:34,000 Ni ne-malamas min pro iom da tempo. 856 00:45:34,000 --> 00:45:37,000 Ni nun vere vidi ĉu tio ne estas pozitiva 857 00:45:37,000 --> 00:45:39,000 reale efektivigi tion en PHP. 858 00:45:39,000 --> 00:45:43,000 Donita, ĝi prenis 45 sekundoj por apliki. 859 00:45:43,000 --> 00:45:45,000 >> Sed ni iru antaŭen kaj nun kuras aĵoj. 860 00:45:45,000 --> 00:45:49,000 Lasu min kaj kuras C versio 861 00:45:49,000 --> 00:45:52,000 de Speller, kaj ni kuros ĝin sur unu el la plej grandaj dosieroj, 862 00:45:52,000 --> 00:45:54,000 kiu estas la Reĝo James Biblio. 863 00:45:54,000 --> 00:45:57,000 Kaj ke ĉi tie estas in-ni iru en niajn C dosierujo, 864 00:45:57,000 --> 00:46:01,000 Speller sur Reĝo Jakobo la 5-a. 865 00:46:01,000 --> 00:46:03,000 Multaj misspelled words. 866 00:46:03,000 --> 00:46:06,000 Okay, do tio estas la eligo vi verŝajne ricevis eĉ se la tempoj estas iom malsamaj, 867 00:46:06,000 --> 00:46:09,000 se vi havas ĉion funkcias, kaj tiel fojo totale literumi kontroli 868 00:46:09,000 --> 00:46:13,000 la Reĝo James Biblio estis .38 sekundoj, do sufiĉe bona uzante tiu apliko. 869 00:46:13,000 --> 00:46:16,000 Nun mi iras en la PHP-version, kiun ni ĵus skribis. 870 00:46:16,000 --> 00:46:18,000 Mi kuros Speller sur Reĝo Jakobo. 871 00:46:18,000 --> 00:46:21,000 Whoops, ignori ke eraro. Mi estas en la malĝusta dosierujo. 872 00:46:21,000 --> 00:46:24,000 Speller sur Reĝo Jakobo la 5-a. 873 00:46:46,000 --> 00:46:48,000 Preskaŭ farita. 874 00:46:48,000 --> 00:46:51,000 >> Konsentite, la ruza observanto rimarkos ke estis pli ol 3 sekundoj tie. 875 00:46:51,000 --> 00:46:54,000 Tio estas la vera rula tempo. 876 00:46:54,000 --> 00:46:58,000 Ĝi rezultas ke ĝi prenas tempon por kracxi multan tekston el 877 00:46:58,000 --> 00:47:00,000 pro buffering aferoj, sed longan rakonton, 878 00:47:00,000 --> 00:47:04,000 kiu estis 3.15 seconds de maŝino tempo, CPU tempo, 879 00:47:04,000 --> 00:47:07,000 kontre kio estis antaŭ momento? 880 00:47:07,000 --> 00:47:09,000 Kiel .3. 881 00:47:09,000 --> 00:47:11,000 Mi volas diri, estas ordo de grando pli malrapida, do kie estas tiu 882 00:47:11,000 --> 00:47:14,000 ridindaj malrapidiĝo devenante? 883 00:47:14,000 --> 00:47:17,000 Nu, kiel estis la kazo kun plej ajna dezajno decido ni faris 884 00:47:17,000 --> 00:47:21,000 en la klaso dum la lastaj 9 semajnoj tie estas preskaŭ ĉiam tiu tradeoff. 885 00:47:21,000 --> 00:47:24,000 Foje inter nur spaco, kelkfoje inter spaco kaj tempo, 886 00:47:24,000 --> 00:47:27,000 spaco, tempo kaj evoluo penado, kaj ja tie, eĉ se 887 00:47:27,000 --> 00:47:31,000 ni savis grandegan kvanton de tempo, eble potenciale 10-20-30 horoj 888 00:47:31,000 --> 00:47:34,000 de disvolviĝo tempo realiganta la ortografia kontrolilo 889 00:47:34,000 --> 00:47:36,000 vipante ĝin en nur 45 sekundoj kun ĉi tiu lingvo 890 00:47:36,000 --> 00:47:40,000 la prezo ni pagas estas ke ĝi estas ordo de grando pli malrapida kiel rezulto, 891 00:47:40,000 --> 00:47:43,000 kaj ĉi tiu estas ĝenerale la kazo kun plej ajna interpretita lingvo, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Rubeno, Pearl aŭ aliaj per 893 00:47:46,000 --> 00:47:49,000 se vi tuj kuri ĝin tra interpretisto kaj havas ĝin legi vian kodo 894 00:47:49,000 --> 00:47:52,000 linio por linio, supre sube, maldekstre dekstren, 895 00:47:52,000 --> 00:47:55,000 ke middleman tuj prenos iu momento de lia propra, 896 00:47:55,000 --> 00:47:59,000 kaj kion vi sentas ĉi tie en la 3 sekundojn kiel kontraŭ .3 sekundoj 897 00:47:59,000 --> 00:48:02,000 estas la fakto ke ekzistas ĉi middleman kiu devas laŭvorte interpreti nian kodo 898 00:48:02,000 --> 00:48:05,000 linio por linio, kaj Dio malpermesu, se vi estas interne de ciklo 899 00:48:05,000 --> 00:48:08,000 kun grandega dosiero enhavanta centojn da miloj da vortoj. 900 00:48:08,000 --> 00:48:11,000 >> Ke supre tuj adicii kaj adicii kaj adicii kaj aldonu supren. 901 00:48:11,000 --> 00:48:16,000 Por ilo kiel ĉi tio probable ne estis la plej bona lingvo por uzi por realigi 902 00:48:16,000 --> 00:48:20,000 sorĉas Kontrolilo se inmediatez estas de intereso al viaj uzantoj kaj al vi. 903 00:48:20,000 --> 00:48:23,000 Sed la lukson kiun ni havas en momento estas se vi 904 00:48:23,000 --> 00:48:27,000 uzi lingvon kiel PHP aŭ multajn interpretitaj lingvoj 905 00:48:27,000 --> 00:48:30,000 en la kunteksto de la TTT, tiurilate, vi havas la profito 906 00:48:30,000 --> 00:48:34,000 ke la interreto estas multe pli malrapida ol la plimulto komputiloj. 907 00:48:34,000 --> 00:48:38,000 Vi havas GHz CPU en via komputilo, 2 GHz, eble eĉ pli ĉi tiuj tagoj. 908 00:48:38,000 --> 00:48:41,000 Sed la realo estas en interreto estas alta kvanto de latencia 909 00:48:41,000 --> 00:48:45,000 per di retumilo paroli al servanto, kvankam ni vidis pasintsemajne 910 00:48:45,000 --> 00:48:47,000 ke tio estas sufiĉe rapida, duona milisegundo aŭ tiel, 911 00:48:47,000 --> 00:48:51,000 ke tro adicias supren, kaj se vi elŝuti aĵoj kiel bildo 912 00:48:51,000 --> 00:48:54,000 aŭ Facebook foto aŭ atingi tujmesaĝojn super Facebook babilado, 913 00:48:54,000 --> 00:48:57,000 Gchat aŭ similaj, ĉiuj tiuj rondaj-vojaĝo fojoj 914 00:48:57,000 --> 00:49:00,000 inter la legilo kaj la servilo komenco aldoni supren, 915 00:49:00,000 --> 00:49:03,000 kion faras via specifa elekto de lingvo en multaj kazoj 916 00:49:03,000 --> 00:49:07,000 Ne ĉiuj kiuj rilatajn, do vi estas bela uzante iomete malrapida lingvo 917 00:49:07,000 --> 00:49:10,000 kiel PHP aŭ Python aŭ Rubeno 918 00:49:10,000 --> 00:49:13,000 sed por kio ekzistas grandega upsides al vi kaj viaj kolegoj 919 00:49:13,000 --> 00:49:17,000 kaj viaj amikoj, ĉar vi povas apliki tion tiel, tiel multe pli rapida. 920 00:49:17,000 --> 00:49:20,000 Kaj cetere, vi havas multe malpli da risko de iu sekureco difektojn. 921 00:49:20,000 --> 00:49:22,000 Ne punteros en PHP. 922 00:49:22,000 --> 00:49:25,000 Ne seg kulpoj, ke vi povas facile konkludi 923 00:49:25,000 --> 00:49:27,000 en la sama maniero vi povus en C. 924 00:49:27,000 --> 00:49:29,000 Kun C vi estas super proksime al la aparataro. 925 00:49:29,000 --> 00:49:33,000 Kun PHP kaj similaj lingvoj vi estas speco de pli alta nivelo, por tiel diri, 926 00:49:33,000 --> 00:49:37,000 kun multaj arieruloj inter vi kaj kio fakte okazas 927 00:49:37,000 --> 00:49:39,000 interne de la maŝino, kaj estas nur tradeoff. 928 00:49:39,000 --> 00:49:42,000 >> Ni alvenis al la punkto de havi tiuj pli modernaj, altnivela lingvoj 929 00:49:42,000 --> 00:49:47,000 kiel PHP pro la lecionoj lernitaj en lingvoj kiel PHP en C. 930 00:49:47,000 --> 00:49:50,000 Sed se vi ne komprenas kio daŭras sub la kapuĉo tiel tempo 931 00:49:50,000 --> 00:49:53,000 vi certe ne povas fari la dekstra dezajno decidoj, 932 00:49:53,000 --> 00:49:56,000 kaj certe kiam temas pri laboro en loko kiel Facebook aŭ Google 933 00:49:56,000 --> 00:49:59,000 aŭ iu el tiuj lokoj kiuj estas pli ludante kun granda datumoj aroj 934 00:49:59,000 --> 00:50:01,000 eĉ se vi reiros kaj do premed kaj laboras kun iuj MD 935 00:50:01,000 --> 00:50:04,000 sur iu granda datuma aro engaĝante pacientoj kaj kuracistoj 936 00:50:04,000 --> 00:50:08,000 kaj similaj uzante la rajton iloj estas ege konvinka 937 00:50:08,000 --> 00:50:11,000 ĉar alie viaj analizo de iuj datumoj aro povus preni duaj, 938 00:50:11,000 --> 00:50:14,000 aŭ eble laŭvorte preni horoj. 939 00:50:14,000 --> 00:50:17,000 Tio estas nur unu ekzemplo, ne por detrui vin kun kiom pli penado 940 00:50:17,000 --> 00:50:21,000 estis en C sed helpi vin dankas, ke kiam vi apliki io ​​en C 941 00:50:21,000 --> 00:50:24,000 vi vere komprenas, aŭ en teorio, vere kompreni 942 00:50:24,000 --> 00:50:28,000 kiel ĉiu estas aŭ devus funkcii, kaj vi havas preskaŭ plena kontrolo 943 00:50:28,000 --> 00:50:31,000 super kio okazas sub la kapuĉo, kaj kun tiuj pli alta nivelo lingvoj 944 00:50:31,000 --> 00:50:34,000 vi devas cedi pli kontrolo al la personoj kiuj inventis ilin 945 00:50:34,000 --> 00:50:37,000 kaj estas temo pli al iliaj decidoj de dezajno ol via. 946 00:50:37,000 --> 00:50:41,000 Sed se ni prenos por koncedis ke la rendimento 947 00:50:41,000 --> 00:50:44,000 estas ne tute tiel grava en la TTT pro tiuj aliaj temoj, 948 00:50:44,000 --> 00:50:47,000 nur reto rapidoj estas iom malrapida ol CPU rapidoj ĉiuokaze, 949 00:50:47,000 --> 00:50:50,000 do ni povas ordigi de permesi uzi iom pli malrapida lingvo 950 00:50:50,000 --> 00:50:55,000 se la upsides ni povas evoluigi aĵoj 10 fojoj pli rapida aŭ eĉ pli. 951 00:50:55,000 --> 00:50:57,000 >> Ni vidos kiel ni povas ekuzi ĉi. 952 00:50:57,000 --> 00:51:00,000 Lasu min iri al dosierujo 953 00:51:00,000 --> 00:51:03,000 inter la hodiaŭa ekzemploj nomis frosh.ims, 954 00:51:03,000 --> 00:51:06,000 kaj ĉi tiu estis fakte persone motivita de la fakto ke la unua afero 955 00:51:06,000 --> 00:51:10,000 Mi skribis por la TTT jarojn post preni CS50 kaj CS51 956 00:51:10,000 --> 00:51:14,000 Estis retejo por la Frosh IMS programo, freshman intramural sportoj, 957 00:51:14,000 --> 00:51:16,000 kiu tiutempe tio estis sufiĉe da jaroj antaŭe ke en la momento 958 00:51:16,000 --> 00:51:19,000 ne estis retejo por la programo, kvankam estis Retejo, 959 00:51:19,000 --> 00:51:22,000 kaj anstataŭ estis Proctor en Wigglesworth per se vi volas 960 00:51:22,000 --> 00:51:26,000 registri por flugpilkon aux futbalo aŭ kion ajn vi volas plenigi pecon de papero. 961 00:51:26,000 --> 00:51:28,000 Vi devus tiam marŝi trans la korton. 962 00:51:28,000 --> 00:51:31,000 Vi devus tiam frapas sur lia pordo kaj glito en ilia pordo aŭ manon al la Proctor 963 00:51:31,000 --> 00:51:34,000 peco da papero kun via nomo sur ĝin, ĉu aŭ ne vi volas esti teamestro, 964 00:51:34,000 --> 00:51:37,000 kion sporto vi volis fari, kaj kion dormejo vi estis in 965 00:51:37,000 --> 00:51:39,000 Estis speco de malnova lernejo maniero fari tion, kaj tio estis prima 966 00:51:39,000 --> 00:51:41,000 ŝanco por aŭtomatigi multon de ĉi tiu procezo. 967 00:51:41,000 --> 00:51:43,000 Vi nur iru al la retejo. Vi tajpas ion in 968 00:51:43,000 --> 00:51:46,000 Vi ricevas retpoŝton konfirmon, kaj bum, vi faris. 969 00:51:46,000 --> 00:51:49,000 >> Ĉi tiu estis la unua afero, kiun mi faris, kvankam en lingvo nomita Pearl, 970 00:51:49,000 --> 00:51:52,000 sed estas relative facile fari en PHP, kaj ĉi tiu estas speco de reprezentanto 971 00:51:52,000 --> 00:51:55,000 el la problemoj vi povas komenci solvi kiam oni povas esprimi sin 972 00:51:55,000 --> 00:51:58,000 programmatically kaj ne devas fidi aĵoj kiel Google ejoj 973 00:51:58,000 --> 00:52:01,000 aŭ Excel aŭ iloj kiuj enmanigis al vi. 974 00:52:01,000 --> 00:52:03,000 You guys nun havas la kapablon fari tion kiel ĉi tio. 975 00:52:03,000 --> 00:52:06,000 Ĉi tiu estas super malbelaj versio de formo, 976 00:52:06,000 --> 00:52:09,000 sed ni nur uzas ĝin por la komenco de la konversacio per ĉi tiu estas 977 00:52:09,000 --> 00:52:12,000 krude kio la formo aspektis kiel jarojn por ni 978 00:52:12,000 --> 00:52:14,000 por ebligi homojn en la retejo por registri Frosh IMS. 979 00:52:14,000 --> 00:52:18,000 Ni petis nomo, checkbox por ĉu ili volis esti kapitano, 980 00:52:18,000 --> 00:52:21,000 viro aŭ virino, kaj tiam kio dormejo trovis en, 981 00:52:21,000 --> 00:52:23,000 kaj poste ili prezentas tiun formon. 982 00:52:23,000 --> 00:52:27,000 Ni unue rigardu sub la kapuĉo en la HTML kiu reprezentas tiun retpaĝon. 983 00:52:27,000 --> 00:52:31,000 Lasu min iri en froshims0, 984 00:52:31,000 --> 00:52:35,000 kaj kiel flanken, por pset 7 Mi ferios por donita 985 00:52:35,000 --> 00:52:37,000 la dosierujoj kaj la dosierujojn Mi metante aĵoj in 986 00:52:37,000 --> 00:52:40,000 Ni iru vi per precize kie stuff devas iri en la aparaton, 987 00:52:40,000 --> 00:52:43,000 kiu mod ordonojn vi devas kuri, do ne zorgu pri ĉiuj 988 00:52:43,000 --> 00:52:46,000 stulta detaloj sinkronigi en de la get-go tie. 989 00:52:46,000 --> 00:52:49,000 >> Bone, jen froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Lasu min rulumi malsupren, kaj kio estas kurioza tie, 991 00:52:52,000 --> 00:52:56,000 ĉi tiu estas PHP-dosiero, sed kio estas interne de ĝi, klare? 992 00:52:56,000 --> 00:52:59,000 Estas tutaj multajn HTML, kaj ja, PHP la originoj 993 00:52:59,000 --> 00:53:02,000 vere estis por esti TTT-centrita lingvo. 994 00:53:02,000 --> 00:53:04,000 Post momento antaŭe ni uzis por efektivigi la biero ekzemple, 995 00:53:04,000 --> 00:53:07,000 la kondiĉoj ekzemple, la saluton ekzemplo, kaj tio estas fajna. 996 00:53:07,000 --> 00:53:11,000 Vi povas uzi PHP kiel scripting lingvo 997 00:53:11,000 --> 00:53:15,000 kie skripto estas vere nur la nomenklaturo donita al rapida kaj malpura programo 998 00:53:15,000 --> 00:53:19,000 aŭ io, ke vi skribu en skripto aŭ pli ĝenerale interpretita lingvo. 999 00:53:19,000 --> 00:53:22,000 PHP estas super utila por ke ĉar vi vidis kiel rapide 1000 00:53:22,000 --> 00:53:24,000 relative povas skurĝi supren programoj en PHP. 1001 00:53:24,000 --> 00:53:27,000 Sed ĝi estis vere desegnita por esti uzata por la retejo, 1002 00:53:27,000 --> 00:53:31,000 kaj desegnita por la retejo en la senco ke rimarki tien sur la supro de la dosiero 1003 00:53:31,000 --> 00:53:34,000 Mi komencos per 00:53:38,000 Tiam mi havas faskon da senutilaj komentoj, koncedis, sed tiam mi fermi PHP modo. 1005 00:53:38,000 --> 00:53:41,000 Sed tiam mi faligis en HTML modo. 1006 00:53:41,000 --> 00:53:45,000 >> Kio estas interesa pri PHP estas eĉ se la dosiero finiĝas. Php 1007 00:53:45,000 --> 00:53:48,000 ĝi estas ĝenerale signifis esti co-miksitan kun HTML, 1008 00:53:48,000 --> 00:53:50,000 iuj PHP kodon, iuj HTML. 1009 00:53:50,000 --> 00:53:53,000 Kaj ni vidos poste, ke ni povas starti al tease tiuj aparte 1010 00:53:53,000 --> 00:53:56,000 kaj observu niajn HTML aparta de niaj PHP aro, 1011 00:53:56,000 --> 00:53:59,000 sed la originoj de PHP vere devis doni al vi tiun flekseblecon, 1012 00:53:59,000 --> 00:54:02,000 ke se vi deziras iom HTML nur skribi ĝin, kaj tio estos 1013 00:54:02,000 --> 00:54:04,000 kraĉ el idente al la retumilo. 1014 00:54:04,000 --> 00:54:07,000 Sed se vi bezonas iun programado tekniko, 1015 00:54:07,000 --> 00:54:12,000 iuj programado kodon, vi povas ankaŭ meti ĝin en la sama ĝusta dosiero, kiel ni baldaŭ vidos. 1016 00:54:12,000 --> 00:54:14,000 Jen mia HTML. 1017 00:54:14,000 --> 00:54:16,000 Mi havas titolon de ĉi por Frosh IMS. 1018 00:54:16,000 --> 00:54:20,000 Mi havas korpon etikedo kiu havas iujn CSS sur ĝi al centro ĉiu en la mezo, 1019 00:54:20,000 --> 00:54:23,000 kaj tiam ĉi tie mi havas formon kiu ŝajne tuj estos afiŝita 1020 00:54:23,000 --> 00:54:27,000 al nova dosiero nomata register0.php, do ni vidos ke en momento. 1021 00:54:27,000 --> 00:54:31,000 Oni uzas metodon nomita post, kion ni revenos al tiel. 1022 00:54:31,000 --> 00:54:34,000 Tiam mi havas iun formon enigoj, unu nomita nomo, kies tipo estas teksto, 1023 00:54:34,000 --> 00:54:37,000 kies nomo estas kapitano, kies tipo estas checkbox, 1024 00:54:37,000 --> 00:54:40,000 kaj ĉi tiu, ni ne vidis ĝin antaŭe, sed ĝi faras ĝuste kio ĝi diras. 1025 00:54:40,000 --> 00:54:42,000 Vi ricevos checkbox anstataŭ teksta kadro. 1026 00:54:42,000 --> 00:54:46,000 Sube jen vi havas radio-butonon, kiu estas unu el tiuj cirkuli butonoj 1027 00:54:46,000 --> 00:54:48,000 ke vi povas aŭ elekti ĉi tiu aŭ tiu. 1028 00:54:48,000 --> 00:54:52,000 >> Rimarki estas intenca, kiun Mi donis ambaŭ radioaparato butonoj la nomo de varo. 1029 00:54:52,000 --> 00:54:55,000 Jen kiel vi ricevas reciprokan ekskludon per vi devas klaki 1030 00:54:55,000 --> 00:54:58,000 ĉu ĉi tiu aŭ tiu, kaj klakante la alia 1031 00:54:58,000 --> 00:55:01,000 ĝi unchecks la alia, tiel vi devas doni al ili la saman nomon 1032 00:55:01,000 --> 00:55:03,000 se vi volas ilin esti reciproke ekskluzivaj tiel. 1033 00:55:03,000 --> 00:55:07,000 Kaj tiam por dormejo, mi ne kredas ke ni vidis ĉi ankoraŭ, sed ĝi estas unuaranga menuo, a falmenuo. 1034 00:55:07,000 --> 00:55:09,000 La etikedo por tiu estas unuaranga. 1035 00:55:09,000 --> 00:55:11,000 Vi tiam donos la falmenuo nomon, 1036 00:55:11,000 --> 00:55:13,000 kaj tiam vi havos tutan faskon da tiuj ebloj. 1037 00:55:13,000 --> 00:55:16,000 La unua, nur por estetiko, estas malplena linio. 1038 00:55:16,000 --> 00:55:20,000 Mi nur volis ke la guto malsupren por esti malplena implicite, 1039 00:55:20,000 --> 00:55:22,000 kaj tiam tie estas Apley, Canaday, Grays, ks. 1040 00:55:22,000 --> 00:55:24,000 Kaj rimarki la dicotomía tie. 1041 00:55:24,000 --> 00:55:27,000 La eblo en la guto malsupren havas valoron, 1042 00:55:27,000 --> 00:55:30,000 sed tiam ĝi havas homan-amika nomo, kiu en ĉi tiu ekzemplo 1043 00:55:30,000 --> 00:55:33,000 estas identaj, sed se ni vere volis esti anal ni povus havi 1044 00:55:33,000 --> 00:55:36,000 la valoron de ĉi tiu guto malsupren nur esti la mallonga versio, 1045 00:55:36,000 --> 00:55:39,000 Grizaj, sed ni povis vere diri Grays Salono ke la homa efektive vidas, 1046 00:55:39,000 --> 00:55:43,000 sed tio ne estas ĉio, kion interesa, do mi simple konservis ĝin simpla kaj faris ilin identaj. 1047 00:55:43,000 --> 00:55:46,000 Tiam malsupren malsupre ni havas submeto-butonon 1048 00:55:46,000 --> 00:55:49,000 kion ni vidis antaŭe, sed fiksis ke nur donis ĝin alian vorton. 1049 00:55:49,000 --> 00:55:53,000 Anstataŭ CS50 serĉo donis la etikedo "Aliĝi". 1050 00:55:53,000 --> 00:55:56,000 >> La fina rezulto estas ĉi retpaĝon tie, kaj denove, 1051 00:55:56,000 --> 00:56:00,000 kie tiu ĉi get submetita al? 1052 00:56:00,000 --> 00:56:04,000 Ĝi prenas afiŝita al iu dosiero, la valoro de la ago atributo, 1053 00:56:04,000 --> 00:56:07,000 kiu estis register0.php. 1054 00:56:07,000 --> 00:56:09,000 Ni vidu kion efektive okazas tie. 1055 00:56:09,000 --> 00:56:13,000 Lasu min kaj plenigu tiun formularon, diru David 1056 00:56:13,000 --> 00:56:16,000 masklo, Matthews, kaj tiam mi diros registriĝi. 1057 00:56:16,000 --> 00:56:18,000 Lasu min malzomi kaj klaku registriĝi. 1058 00:56:18,000 --> 00:56:22,000 Okay, do speco de senutilaj, sed ni vidu kio reale okazas. 1059 00:56:22,000 --> 00:56:26,000 Rimarki ke la URL ŝanĝis esti register0.php. 1060 00:56:26,000 --> 00:56:34,000 Kio estas kurioze forestas el la URL, tamen, eĉ se ni simple donita formo? 1061 00:56:34,000 --> 00:56:37,000 [Inaudible studento respondon] 1062 00:56:37,000 --> 00:56:39,000 Konsentite, tio estas nur Chrome esti uzanto amika tiuj tagoj. 1063 00:56:39,000 --> 00:56:42,000 Tio estas vere tie. Ili nur kaŝi ĝin por ŝpari spacon. 1064 00:56:42,000 --> 00:56:44,000 Sed bona penso, bona penso. 1065 00:56:44,000 --> 00:56:46,000 Al la alia fino de la URL, tamen, kio mankas? Yeah. 1066 00:56:46,000 --> 00:56:48,000 [Studenta] La demando kordoj. 1067 00:56:48,000 --> 00:56:51,000 La query string, do memori el nia simpla serĉo de Google ekzemploj. 1068 00:56:51,000 --> 00:56:54,000 Tuj kiam mi premas la butonon submeti la URL 1069 00:56:54,000 --> 00:57:00,000 prenis min al Google, sed tiam ne estis? q = komputiko aŭ kion ajn mi tajpis in 1070 00:57:00,000 --> 00:57:04,000 Tio estas ĉar ni uzas la get metodo kun la serĉo ekzemplo. 1071 00:57:04,000 --> 00:57:06,000 >> Ĉi-foje ni uzas kion metodo anstataŭ? 1072 00:57:06,000 --> 00:57:10,000 Afiŝi, kaj unu el la tujan distingoj 1073 00:57:10,000 --> 00:57:14,000 inter akiri kaj afiŝi estas ke post ne metas la uzanto enigo en la URL. 1074 00:57:14,000 --> 00:57:16,000 Ĝi kaŝas ĝin. Ĝi ankoraŭ sendas ĝin. 1075 00:57:16,000 --> 00:57:19,000 Fakte, kion ni vidas en la retumilo tie, kiel ni malkaŝi en momento 1076 00:57:19,000 --> 00:57:22,000 rigardante register0, estas mi nur vidas la enhavon 1077 00:57:22,000 --> 00:57:25,000 de la tabelo kiuj afiŝita de la retumilo al la servilo. 1078 00:57:25,000 --> 00:57:29,000 Sed la URL ne havas?, Ĝi ne havas ajnan ŝlosilvortoj 1079 00:57:29,000 --> 00:57:31,000 aŭ valorojn en ĝi, kaj kial estas tiel? 1080 00:57:31,000 --> 00:57:35,000 Nu, post vi permesas ankoraŭ sendi datumojn de la formo al servilo, 1081 00:57:35,000 --> 00:57:38,000 sed ne metas ĝin en la URL, do kia informo estas posteno 1082 00:57:38,000 --> 00:57:41,000 aparte taŭga por eble kiam vi petas la uzanto 1083 00:57:41,000 --> 00:57:44,000 tajpi en enigo al formo? 1084 00:57:44,000 --> 00:57:48,000 Io kiel pasvorto, simile kiel tio alia? 1085 00:57:48,000 --> 00:57:50,000 Kreditkarto nombroj. 1086 00:57:50,000 --> 00:57:53,000 Io, kio estas milde sentema vi verŝajne ne volas fini la URL-on 1087 00:57:53,000 --> 00:57:56,000 se nur ĉar ĝi signifas vian kompano aŭ membro de la familio povas simple troll tra 1088 00:57:56,000 --> 00:57:59,000 vian interreto historio kaj tiam laŭvorte vidi vian pasvortoj, 1089 00:57:59,000 --> 00:58:02,000 laŭvorte vidi vian kreditkarto nombroj ĉar plej retumiloj 1090 00:58:02,000 --> 00:58:05,000 memori en la historio ajn URL vi estas je, 1091 00:58:05,000 --> 00:58:09,000 do se nur ĉar tio estus malbona ideo. 1092 00:58:09,000 --> 00:58:11,000 Uzanta post kaŝas tiun detalon de la uzanto. 1093 00:58:11,000 --> 00:58:14,000 >> Ankaŭ, kiel vi alŝuti foton al Facebook? 1094 00:58:14,000 --> 00:58:17,000 Nu, la nur 2 mekanismoj vi povas vere uzi, 1095 00:58:17,000 --> 00:58:21,000 kvankam ekzistas kelkaj aliaj pli arcano bonaj, estas akiri kaj afiŝi. 1096 00:58:21,000 --> 00:58:26,000 Kiel vi eble alŝuti foton tra URL? 1097 00:58:26,000 --> 00:58:28,000 Vi povas vere fari ĝin. 1098 00:58:28,000 --> 00:58:30,000 Vi povas preni JPEG aŭ bitmap aŭ GIF kaj vi povas reprezenti ĝin en deksesuma 1099 00:58:30,000 --> 00:58:32,000 aŭ io nomata bazon 64. 1100 00:58:32,000 --> 00:58:35,000 Anstataŭ bazo 16 vi uzas bazon 64, kiu esence similas 1101 00:58:35,000 --> 00:58:38,000 ASCII signoj, kaj vi povas reale alŝuti foton tra URL 1102 00:58:38,000 --> 00:58:41,000 post demandosigno, sed estas ĝenerale grandeco limoj. 1103 00:58:41,000 --> 00:58:44,000 Plej kroziloj devigi URL esti ne pli ol 1.000 signoj, 1104 00:58:44,000 --> 00:58:47,000 eble 2.000 karakteroj aŭ similaj, do vi ne povas alŝuti 1105 00:58:47,000 --> 00:58:50,000 de 10 MB Facebook foto. 1106 00:58:50,000 --> 00:58:54,000 Por ke vi uzas post tiel, do por nun get metas la parametroj en la URL, 1107 00:58:54,000 --> 00:58:57,000 kio estas agrabla kaj utila kelkfoje, sed por nenio sentema aŭ granda 1108 00:58:57,000 --> 00:58:59,000 post estas la maniero iri. 1109 00:58:59,000 --> 00:59:02,000 Kio register0 reale faras ĉi tie? 1110 00:59:02,000 --> 00:59:05,000 Nu, se mi malfermos register0 avertas ke ĉi tiu estas super simpla paĝo, 1111 00:59:05,000 --> 00:59:09,000 sed ĝi estas pruvante la fakton, ke mi povas kunlabori miksi, por pli bona aŭ por malbona, 1112 00:59:09,000 --> 00:59:12,000 HTML kun PHP. 1113 00:59:12,000 --> 00:59:15,000 Ĉi tuta dosiero, krom la komentojn ĉe la supro, estas HTML 1114 00:59:15,000 --> 00:59:19,000 krom ĉi tiu viro tie. 1115 00:59:19,000 --> 00:59:22,000 >> Rimarki en la mezo de mia PHP kodo, 1116 00:59:22,000 --> 00:59:26,000 en la mezo de mia HTML, mi havas ia provizore 1117 00:59:26,000 --> 00:59:28,000 eniris PHP modo. 1118 00:59:28,000 --> 00:59:31,000 Mi vokas speciala funkcio nomita impreso r. 1119 00:59:31,000 --> 00:59:34,000 Ĝi signifas presi rekursie, kaj kion faras estas ĝi rekursie presas 1120 00:59:34,000 --> 00:59:38,000 kion ajn variablo vi transdonu ĝin, punktokomo, eliro PHP modo. 1121 00:59:38,000 --> 00:59:40,000 Kaj la antaŭ etikedo donas pre formatitan tekston, 1122 00:59:40,000 --> 00:59:43,000 simio spaco teksto tiel ke ĉiu spaco vi reale vidi ĝin. 1123 00:59:43,000 --> 00:59:46,000 Ĝi ne malaperas. Kio estas post? 1124 00:59:46,000 --> 00:59:48,000 Nu, kio estas interesa kaj konvinkaj pri PHP 1125 00:59:48,000 --> 00:59:52,000 estas ke kiam ajn vi submetas formo uzanta akiri aŭ afiŝi 1126 00:59:52,000 --> 00:59:56,000 io ke tio submetita al vi per retumilo 1127 00:59:56,000 --> 01:00:00,000 PHP mem ciferojn el kio tiuj ŝlosilaj valoro paroj estas, 1128 01:00:00,000 --> 01:00:02,000 figuroj, ĉu ekzistas egala signoj, figuroj, ĉu tie estas demandosigno. 1129 01:00:02,000 --> 01:00:07,000 Ĝi faras la laciga laboro por vi, kaj tiam manoj vi asocieca tabelo 1130 01:00:07,000 --> 01:00:10,000 enhavanta ĉion la uzanto tajpas en la formon. 1131 01:00:10,000 --> 01:00:12,000 Nu, kion kampoj ne tiu formo havas? 1132 01:00:12,000 --> 01:00:14,000 >> Ĝi havis 4 kampoj. 1133 01:00:14,000 --> 01:00:16,000 Unu estis tekston kampo nomata nomo. 1134 01:00:16,000 --> 01:00:18,000 Tiu estis checkbox nomita kapitano. 1135 01:00:18,000 --> 01:00:22,000 Tiu estis radiobutono nomis sekso, 1136 01:00:22,000 --> 01:00:24,000 kaj tiu estis falmenuo nomis dormejo, 1137 01:00:24,000 --> 01:00:27,000 tiom rimarkos, kiam mi presi rekursie 1138 01:00:27,000 --> 01:00:29,000 la enhavo de ĉi tiu speciala variablo. 1139 01:00:29,000 --> 01:00:34,000 Ĉi tiu estas speciala tutmonda variablo nomis laŭvorte $ _POST, en ĉiuj ĉapoj. 1140 01:00:34,000 --> 01:00:39,000 Ĉi tiu estas speciala tutmonda variablo kiu PHP nur kreas por vi 1141 01:00:39,000 --> 01:00:42,000 kaj manoj al vi por ke vi povas aliri ĉio 1142 01:00:42,000 --> 01:00:45,000 kiu estis afiŝita tra formularo de uzanto. 1143 01:00:45,000 --> 01:00:48,000 Kaj por nomi impreso r sur ĝi-vi ne farus tion en normala apliko. 1144 01:00:48,000 --> 01:00:50,000 Ni faras ĉi por vidi ene de ĉi variablo, 1145 01:00:50,000 --> 01:00:53,000 kaj kio estas interne de ĝi, nu, 4 klavoj, 1146 01:00:53,000 --> 01:00:56,000 4 http parametroj, por tiel diri, 1147 01:00:56,000 --> 01:00:59,000 nomo, kapitano, sekso, dormejo, kaj poste la valorojn kiujn la uzanto 1148 01:00:59,000 --> 01:01:01,000 tajpita kun unu escepto. 1149 01:01:01,000 --> 01:01:03,000 Mi faris tipo D-Al-V-mi-D. 1150 01:01:03,000 --> 01:01:05,000 Mi kontrolis la skatolon, kvankam, por vira, kiu ŝajne prezentis valoro 1151 01:01:05,000 --> 01:01:07,000 de ĵus m esti konciza. 1152 01:01:07,000 --> 01:01:10,000 >> Kiam mi selektis Matthews tio estas la valoro kiu got selektita, 1153 01:01:10,000 --> 01:01:12,000 kaj ĉi tiu estas iom stulta, sed estas la konvencio. 1154 01:01:12,000 --> 01:01:17,000 Kiam mi kontrolis la skatolo, valoro de sur, "sur", got afiŝita la checkbox. 1155 01:01:17,000 --> 01:01:21,000 Se mi ne kontrolis ĝin, neniun valoron estus senditaj ajn. 1156 01:01:21,000 --> 01:01:26,000 Tiu estas ĝuste doni al ni enrigardojn en kio estas ene de tiu speciala tutmonda variablo, 1157 01:01:26,000 --> 01:01:29,000 kaj estas tiel speciala, ke ĝi estas nomata super malloka variablo. 1158 01:01:29,000 --> 01:01:33,000 Ekzistas ĉie por vi inter viaj kodo por ke vi povas reale konsenti li. 1159 01:01:33,000 --> 01:01:36,000 Ĉi tiu ne estas kiun konvinkaj, do ni vere uzas la super tutmonda 1160 01:01:36,000 --> 01:01:38,000 kaj fakte provas registri iu. 1161 01:01:38,000 --> 01:01:41,000 En froshims1 Mi tuj faros unu ŝanĝo. 1162 01:01:41,000 --> 01:01:44,000 Mi ŝanĝas la ago esti register1.php, 1163 01:01:44,000 --> 01:01:46,000 kaj mi faras unu alia afero. 1164 01:01:46,000 --> 01:01:48,000 Mi estis speco de embarasita por la kvalito de mia retpaĝo tie. 1165 01:01:48,000 --> 01:01:52,000 Estas bela malbelega, honeste, do rezultas 1166 01:01:52,000 --> 01:01:56,000 ke vi povas uzi tre facile en la TTT 1167 01:01:56,000 --> 01:01:59,000 fremdajn kodo JavaScript, fremda CSS 1168 01:01:59,000 --> 01:02:02,000 ke mi skribis kaj malfermita fonto kaj faris disponebla kiel biblioteko, 1169 01:02:02,000 --> 01:02:06,000 por tiel diri, kaj ekzemple, tie Mi uzas de libere disponebla biblioteko, 1170 01:02:06,000 --> 01:02:08,000 faskon de kodo ke iu alia skribis. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter okazis skribi ĉi tiun kodon, kaj ĝi estas nomata la bootstrap biblioteko, 1172 01:02:11,000 --> 01:02:15,000 kaj tio estas nur amaso de CSS stilo littukoj, faskon da. css-dosieroj 1173 01:02:15,000 --> 01:02:19,000 ke iu alia skribis kaj supozis, kiel akiri ĉio bela kaj bela 1174 01:02:19,000 --> 01:02:22,000 por ke la homo kiel ni povas zorgi iom malpli pri estetiko kaj enfokusigi multe pli 1175 01:02:22,000 --> 01:02:24,000 sur la logiko kaj la efektiva programado. 1176 01:02:24,000 --> 01:02:30,000 Por kunligi ĝin kun la etikedo, kiu estas la sama etikedo mi uzis memoru por styles3.css antaŭe, 1177 01:02:30,000 --> 01:02:34,000 Mi nun havas aliron al dosiero nomata bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min simple signifas tiu persono jam minified ĝin kaj ili jam liveris de ĉiuj blanka spaco kaj tiel plu 1179 01:02:37,000 --> 01:02:40,000 nur por certigi ili ne sendi al mi pli bitokoj ol mi reale bezonas. 1180 01:02:40,000 --> 01:02:45,000 Sed en tie estas tuta amaso de CSS, do se mi nun malfermi versio 1 de Frosh IMS 1181 01:02:45,000 --> 01:02:49,000 rimarki, ke mia dosiero estas definitive pli bela. 1182 01:02:49,000 --> 01:02:54,000 Nun ĝi estas ankoraŭ apenaŭ nigra kaj blanka, sed rimarkas ke per nur uzante sian stilon folio 1183 01:02:54,000 --> 01:02:58,000 kaj uzante iujn trajtojn de ĝi sur mia formo ĝi ne estas mirinda, 1184 01:02:58,000 --> 01:03:01,000 sed estas definitive pura ol estis antaŭe, kaj la projekciilo ne fari ĝin justeco. 1185 01:03:01,000 --> 01:03:05,000 Estas iom griza linioj ĉirkaŭ la butonojn kaj ĉirkaŭ la teksto kampo tie ĉi, 1186 01:03:05,000 --> 01:03:07,000 sed estas definitive pura ol ĝi estis antaŭe. 1187 01:03:07,000 --> 01:03:09,000 >> Nun, en justeco, mi ne devas ŝanĝi mian markado iom. 1188 01:03:09,000 --> 01:03:12,000 Tio estas versio 1, kaj rimarkis ke mi uzis kelkajn novajn etikedoj, 1189 01:03:12,000 --> 01:03:17,000 kaj honeste, mi tute ne sciis kiel fari ĉi ĝis mi legis la dokumentaron 1190 01:03:17,000 --> 01:03:20,000 por Twitter bootstrap biblioteko, kaj ili diris al mi, se vi volas uzi nian bibliotekon 1191 01:03:20,000 --> 01:03:23,000 uzi fieldset elemento ene vian formon, 1192 01:03:23,000 --> 01:03:27,000 metu la vorton vi volas montri apud kampo ene de etikedo tag, 1193 01:03:27,000 --> 01:03:30,000 tiam donu vian enigo nomon, same kiel antaŭe, 1194 01:03:30,000 --> 01:03:34,000 kaj poste por la checkbox, ne nur vi envolver ĝin en etiketo elemento, 1195 01:03:34,000 --> 01:03:36,000 vi uzas iun nomita klaso, do ni ne vidis tiun antaŭe, 1196 01:03:36,000 --> 01:03:39,000 sed vi vidos tion en unu el pset 7 La mallongaj. 1197 01:03:39,000 --> 01:03:43,000 Klaso en CSS permesas fari ion tre simila al la ID, 1198 01:03:43,000 --> 01:03:46,000 sed antaŭ kiam ni havis ID kun la # simbolo 1199 01:03:46,000 --> 01:03:48,000 kiu estis por unu kaj nur unu elemento. 1200 01:03:48,000 --> 01:03:51,000 Kio estas agrable pri klaso estas ke multnombraj elementoj povas havi la sama klaso 1201 01:03:51,000 --> 01:03:54,000 aŭ la sama CSS stuff aplikita al ĝi. 1202 01:03:54,000 --> 01:03:57,000 >> Sed denove, pli en tiuj en la mallonga, kaj la resto de ĉi tiu estas nur kopii kaj almeti 1203 01:03:57,000 --> 01:04:00,000 el iliaj dokumentado kie mi aldonis etikedon tie kaj tie. 1204 01:04:00,000 --> 01:04:03,000 Kaj fine, ĉar mi komprenis la ligilon etikedo ĉe la supro, 1205 01:04:03,000 --> 01:04:06,000 ĉio aspektas pli belaj aŭtomate 1206 01:04:06,000 --> 01:04:10,000 per simple esti markitaj mian paĝon en maniero, ke 1207 01:04:10,000 --> 01:04:12,000 Twitter atendis, kaj tie estas tiom da malsamaj manieroj 1208 01:04:12,000 --> 01:04:14,000 por tion fari kaj tio estas ja tre taŭga. 1209 01:04:14,000 --> 01:04:17,000 Je ĉi tiu punkto en la semestro, kiel vi vidos en pset 7 La specifo, 1210 01:04:17,000 --> 01:04:20,000 Googling ĉirkaŭe, legante sur bibliotekoj, uzante fremdajn CSS 1211 01:04:20,000 --> 01:04:23,000 kaj JavaScript por solvi helpaj problemoj 1212 01:04:23,000 --> 01:04:26,000 al la problemo aro mem estas certe kuraĝigis kaj estas la vojo 1213 01:04:26,000 --> 01:04:29,000 la TTT estas konstruita tiuj tagoj, per piedo sur fremda ŝultrojn 1214 01:04:29,000 --> 01:04:32,000 por ke vi povas vere fokusigi la nova kaj interesa problemo. 1215 01:04:32,000 --> 01:04:34,000 Sed ni nun enfokusigi, denove, la logiko. 1216 01:04:34,000 --> 01:04:38,000 >> Tio estis rapida kromvojon en estetiko nur por montri al vi la direkto en kiu vi povas iri. 1217 01:04:38,000 --> 01:04:40,000 Mi tuj restarigu reen al la pli malbelaj por nun nur ĉar 1218 01:04:40,000 --> 01:04:44,000 ne estas distroj kun Twitter stuff, kaj lasu min antaŭeniri kaj malfermu 1219 01:04:44,000 --> 01:04:51,000 froshims2, kiu, denove, diferencas nur en la ago, register2.php, 1220 01:04:51,000 --> 01:04:55,000 kaj ni rigardu kio la efekto estas ĉi tie. 1221 01:04:55,000 --> 01:04:57,000 Lasu min kaj tajpu en David. 1222 01:04:57,000 --> 01:04:59,000 Mi ne estos kapitano ĉi tiu tempo. 1223 01:04:59,000 --> 01:05:01,000 Mi diros masklo, Matthews, enskribi. 1224 01:05:01,000 --> 01:05:05,000 Damn it. Konsentite, tio estas ŝraŭbo sur mia parto. 1225 01:05:05,000 --> 01:05:07,000 Staras. 1226 01:05:07,000 --> 01:05:17,000 Register2, linio 22, se malplena aŭ-sorry. 1227 01:05:17,000 --> 01:05:19,000 Ni reŝargi. 1228 01:05:19,000 --> 01:05:22,000 Konsentite, sur submitting ĉi formo kio ĵus okazis? 1229 01:05:22,000 --> 01:05:25,000 Mi tajpis en David, kontrolis masklo, clicked Matthews, enskribi. 1230 01:05:25,000 --> 01:05:27,000 Vi estas registritaj. (Nu, ne vere.) 1231 01:05:27,000 --> 01:05:32,000 Tio estas klare paŝo preter nur presi el la enhavon de iu variablo, 1232 01:05:32,000 --> 01:05:34,000 sed kio estas ĉi tiu dosiero fakte faras? 1233 01:05:34,000 --> 01:05:37,000 En register2.php 1234 01:05:37,000 --> 01:05:40,000 rimarki, ke mi havas iom novan kodon. 1235 01:05:40,000 --> 01:05:44,000 Ene de mia korpo tag mi havas esence se alia konstrui, 1236 01:05:44,000 --> 01:05:47,000 sed ĉar mi co-mingling ĉi kun iu HTML 1237 01:05:47,000 --> 01:05:51,000 Mi devas eniri kaj eliri PHP mode tien kaj reen, do ni vidu kion mi faras. 1238 01:05:51,000 --> 01:05:55,000 >> En la unua linio tie mi estas diranta se ĝi estas la kazo 1239 01:05:55,000 --> 01:06:00,000 ke la post super tutmonda estas malplena por la ŝlosilo de nomo, 1240 01:06:00,000 --> 01:06:04,000 tiel en aliaj vortoj, se la uzanto ne donis al mi valoro por nomo en la formo, 1241 01:06:04,000 --> 01:06:07,000 tiam malplena tuj revenos vera ĉar la valoro estas malplena. 1242 01:06:07,000 --> 01:06:11,000 Or-rimarkos la vertikala stangoj-se varo estas malplena 1243 01:06:11,000 --> 01:06:15,000 ene de tiu speciala super tutmonda, kiu, denove, reprezentas la enhavon de la formo, 1244 01:06:15,000 --> 01:06:19,000 aŭ la dormejo estas malplena, tiam mi tuj iros antaŭen kaj krii en la uzanto. 1245 01:06:19,000 --> 01:06:22,000 Kiom? Nu, rimarki Mi intencis diri vi devas provizi vian nomon, genro, kaj dormejo. 1246 01:06:22,000 --> 01:06:24,000 Ni efektive indukti tiun eraron. 1247 01:06:24,000 --> 01:06:27,000 Lasu min reiri al mia formo. Lasu min reŝarĝi demeti ĝin. 1248 01:06:27,000 --> 01:06:30,000 Kaj mi nur tuj donos ilin David kaj ili ne bezonas scii kie mi loĝas. 1249 01:06:30,000 --> 01:06:33,000 Registriĝi. Ŝajne mi devas diri al ili, kie mi loĝas. 1250 01:06:33,000 --> 01:06:35,000 Vi devas provizi vian nomon, genro kaj dormejo. Reiru. 1251 01:06:35,000 --> 01:06:39,000 >> Kaj mi povus alklaki reiri al tiu formo, sed kial estas tio? 1252 01:06:39,000 --> 01:06:43,000 Nu, en tiu kazo nomo ne estis malplena, sed varo estis, kaj dormejo estis, 1253 01:06:43,000 --> 01:06:47,000 do ĉi tiu tuta esprimo taksita al vera, kaj kvankam la sintakso estas iom nova, 1254 01:06:47,000 --> 01:06:51,000 denove, ni eniras PHP modo, familiara se propozicio, 1255 01:06:51,000 --> 01:06:54,000 sed la nova parto jen ĝuste ĉi dupunkto, kaj mi estis ŝraŭbita far preterlasante paréntesis 1256 01:06:54,000 --> 01:06:57,000 hazarde, sed rimarki la dupunkto, kaj tio signifas 1257 01:06:57,000 --> 01:07:00,000 kvankam ni elirejanta PHP mode ĉio 1258 01:07:00,000 --> 01:07:03,000 kiu sekvas devus kracxi el laŭvorte al la retumilo 1259 01:07:03,000 --> 01:07:07,000 ĝis vi vidas alian bloko, kiel ni ĉi tie, 1260 01:07:07,000 --> 01:07:10,000 tiaokaze vi devus anstataŭe kracxis this out 1261 01:07:10,000 --> 01:07:13,000 ĝis vi vidos la endif, do iuj iomete nova sintakso 1262 01:07:13,000 --> 01:07:16,000 kiu min permesas Baskuligi inter HTML kaj PHP. 1263 01:07:16,000 --> 01:07:19,000 Ni povas purigi ĉi supren eventuale, sed por nun, 1264 01:07:19,000 --> 01:07:22,000 ĝi estas speco de konvinkaj maniero de eraro kontrolanta la formo. 1265 01:07:22,000 --> 01:07:25,000 >> Nun, mi diras ke vi ne vere registrita ĉar evidente ni faris nenion krom la datumo, 1266 01:07:25,000 --> 01:07:28,000 do ni vere provas fari ion cool. 1267 01:07:28,000 --> 01:07:33,000 En froshims3 la sola diferenco estas ke mi tuj sendi al register3, 1268 01:07:33,000 --> 01:07:35,000 tial la HTML tie estas la sama. 1269 01:07:35,000 --> 01:07:38,000 En register3 rimarki tion. 1270 01:07:38,000 --> 01:07:40,000 Ĉi tiu estas speco de sexy. 1271 01:07:40,000 --> 01:07:44,000 Ĉe la supro Mi uzante postulas deklaron, do ĉi tiu estas kiel # include. 1272 01:07:44,000 --> 01:07:46,000 Ĉi-foje ĝi ne estas stdio.h aŭ io kiel tio. 1273 01:07:46,000 --> 01:07:50,000 Estas PHP biblioteko, kaj ĉi tiu estas nomata PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Kiel mi scias inkludi precize tiu citita kordoj? 1275 01:07:53,000 --> 01:07:56,000 Mi legis ĝin en la dokumentado, do kiam oni diris al mi metis ĉi sur la supro de la dosiero 1276 01:07:56,000 --> 01:08:00,000 se vi volas uzi specialan bibliotekon nomis PHPMailer kiu faras kion ĝi diras. 1277 01:08:00,000 --> 01:08:03,000 Ĝi permesas al vi sendi retpoŝton per PHP. 1278 01:08:03,000 --> 01:08:05,000 Nun ni rulumu malsupren plu. 1279 01:08:05,000 --> 01:08:08,000 >> Rimarku komenci mi en PHP modo ĉi tiu tuta tempo, 1280 01:08:08,000 --> 01:08:11,000 tial nun rimarkas cxi tie post importante ke biblioteko, 1281 01:08:11,000 --> 01:08:13,000  por tiel diri, mi faras iujn prudento ĉekoj. 1282 01:08:13,000 --> 01:08:16,000 Se temas pri la kazo tiu nomo ne estas malplena 1283 01:08:16,000 --> 01:08:19,000 kaj sekso ne estas malplenaj rimarki la ekkrio poentoj- 1284 01:08:19,000 --> 01:08:24,000 kaj dormejo ne estas malplena, tiam la uzanto logike plenigis la formularon, almenaŭ sufiĉe. 1285 01:08:24,000 --> 01:08:28,000 Mi ne zorgas se ili estas kapitano aŭ ne. Mi nur bezonas ilia nomo, sekso, kaj dormejo. 1286 01:08:28,000 --> 01:08:31,000 Se ili plenigis tiuj el tiel ke neniu el tiuj kampoj estas malplenaj 1287 01:08:31,000 --> 01:08:33,000 ĉi tiu estas iomete nova sintakso. 1288 01:08:33,000 --> 01:08:36,000 PHP, kiel flanken, estas objektema programlingvo 1289 01:08:36,000 --> 01:08:39,000 kiu iuj el vi infanoj povas memori el APCS aŭ similaj. 1290 01:08:39,000 --> 01:08:42,000 Nuntempe, se ne konas, nur scias, ke por uzi tiun bibliotekon 1291 01:08:42,000 --> 01:08:45,000 vi devas skribi linion de kodo kiel ĉi uzante nova ŝlosilvorto, 1292 01:08:45,000 --> 01:08:47,000 laŭvorte nova ŝlosilvorto nomita nova. 1293 01:08:47,000 --> 01:08:50,000 Sed preter tio, ni havas iom familiara sintakso. 1294 01:08:50,000 --> 01:08:54,000 Estas sago operatoro, kiu estas simila al kion ni uzas por structs en la kunteksto de punteros. 1295 01:08:54,000 --> 01:08:57,000 Por hodiaŭ PHP ne havas punteros, 1296 01:08:57,000 --> 01:09:01,000 sed sciu nun ke ene de la poŝto variablo 1297 01:09:01,000 --> 01:09:05,000 estas esence speco de puntero al speciala biblioteko 1298 01:09:05,000 --> 01:09:08,000 ke iu alia skribis, kaj se mi volas aliri al specifaj funcionalidad 1299 01:09:08,000 --> 01:09:12,000 ene de tiu biblioteko mi, kiel en C, uzu la sago operatoro, 1300 01:09:12,000 --> 01:09:14,000 kvankam ĉi tiuj estas ne reale punteros. 1301 01:09:14,000 --> 01:09:16,000 Estas iel PHP propra versio de gxi. 1302 01:09:16,000 --> 01:09:20,000 Tio signifas iri en la biblioteko kaj alvoki IsSMTP funkcio. 1303 01:09:20,000 --> 01:09:23,000 SMTP, revokon, de nia Soldatoj de la Reto raportas al email, 1304 01:09:23,000 --> 01:09:28,000 kaj tio nur signifas uzi retpoŝton servilo por ĉi Frosh IMS registriĝo. 1305 01:09:28,000 --> 01:09:30,000 >> Kio gastiganto mi volas uzi? 1306 01:09:30,000 --> 01:09:34,000 Nu, Harvard, se vi Google ĉirkaŭe, havas retpoŝtan servilon nomis smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Se vi ludas kune hejme aŭ vi loĝas sur Comcast reto 1308 01:09:37,000 --> 01:09:40,000 gxi estu io kiel smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Ĝin plene dependas de kie vi loĝas kaj kiu via ISP estas. 1310 01:09:43,000 --> 01:09:47,000 Post tio mi iros al Mian el adreso arbitre esti jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Mi tiam tuj fiksis la trakti esti jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 La sola maniero mi sciis, ke tiuj funkcioj estis nomita SetFrom kaj AddAddress 1313 01:09:55,000 --> 01:09:57,000 estas, denove, mi legis la dokumentaron. 1314 01:09:57,000 --> 01:09:59,000 Ĉi tiu ne estas speco de magie konata al ĉiuj programistoj. 1315 01:09:59,000 --> 01:10:02,000 Tiam mi starigis temo al "registro". 1316 01:10:02,000 --> 01:10:07,000 Kaj nun ĉi tiu linio estas iom malbela pro kion la skalara operatoro signifas en PHP? 1317 01:10:07,000 --> 01:10:09,000 Anyone know? 1318 01:10:09,000 --> 01:10:11,000 Concatenate. 1319 01:10:11,000 --> 01:10:14,000 En C estas doloro en la kolo al concatenate 2 kordoj kune. 1320 01:10:14,000 --> 01:10:17,000 Vi devas trakti malloc aŭ realloc aŭ ĉiuj kiuj stuff 1321 01:10:17,000 --> 01:10:20,000 nur etendi la longo de linio. 1322 01:10:20,000 --> 01:10:22,000 En PHP, en JavaScript kaj aliaj lingvoj 1323 01:10:22,000 --> 01:10:24,000 vi povas kutime fari tion kun sola karaktero. 1324 01:10:24,000 --> 01:10:28,000 En ĉi tiu kazo, ĝi pentras signifas preni tiun ĉenon tie 1325 01:10:28,000 --> 01:10:30,000 kaj aldonas al ĝi tiun ĉenon. 1326 01:10:30,000 --> 01:10:32,000 >> Ho, kaj por la vojo, aldonas al ĝi tiun ĉenon, 1327 01:10:32,000 --> 01:10:34,000 kio okazas al esti variablo ene de tiu super tutmonda. 1328 01:10:34,000 --> 01:10:37,000 Tiam aldonas al ĝi novan linion, do ĉiuj tiuj punktoj simple signifas 1329 01:10:37,000 --> 01:10:39,000 teni farante pli kaj pli granda kaj pli granda ĉeno, 1330 01:10:39,000 --> 01:10:43,000 kaj vi ne devas prizorgi ajn pri malloc aŭ kiel en lingvo kiel ĉi tiu, 1331 01:10:43,000 --> 01:10:46,000 kaj tie estas aliaj manieroj por fari tion, sed tio estas unu el la plej rapida 1332 01:10:46,000 --> 01:10:48,000 manieroj meti ĝin. 1333 01:10:48,000 --> 01:10:50,000 Kio estas ĉi faras? 1334 01:10:50,000 --> 01:10:55,000 Oni kreas retmesaĝon korpo kiu tuj diri Nomo: Kapitano: Sekso: _Dorm_: 1335 01:10:55,000 --> 01:10:58,000 ĉiuj sur apartaj linioj, kaj poste laste, 1336 01:10:58,000 --> 01:11:00,000 unu linio de kodo, kaj mi iros por ignori tion por nun. 1337 01:11:00,000 --> 01:11:02,000 Se == malvera nur signifas, ke io estis malbone, 1338 01:11:02,000 --> 01:11:04,000 sed la magio okazas tie. 1339 01:11:04,000 --> 01:11:08,000 Sendi sendu signifas sendi tiun ĉi mesaĝon. 1340 01:11:08,000 --> 01:11:10,000 Ni vidu kion la pura rezulto estas. 1341 01:11:10,000 --> 01:11:13,000 Ĉe la malsupro de la dosiero, rimarkis tuj diros al vi estas registritaj vere 1342 01:11:13,000 --> 01:11:15,000 se mi havas tiun for. 1343 01:11:15,000 --> 01:11:18,000 Se, tamen, la uzanto ŝraŭboj supren, rimarki ke ni komencis tiun 1344 01:11:18,000 --> 01:11:21,000 se kondiĉo ĝis tie, se ĝi ne estas malplena kaj ne malplena 1345 01:11:21,000 --> 01:11:24,000 kaj ne malplenigos ni sendos la poŝto. 1346 01:11:24,000 --> 01:11:27,000 Alie ni tuj sendu jenan linion de kodo, 1347 01:11:27,000 --> 01:11:30,000 kiu tuj havos la efikon, kiel vi vidos en pset 7, de redireccionando la uzanto 1348 01:11:30,000 --> 01:11:35,000 reen al kie ili venis, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Fingroj transiris, alikaze tiu tuj estos la plej seniluziiga demo hodiaŭ. 1350 01:11:38,000 --> 01:11:40,000 Ĉi tie ni iru. 1351 01:11:40,000 --> 01:11:42,000 Lasu min malfermi mian retpoŝton enirkesto por jharvard en Gmail. 1352 01:11:42,000 --> 01:11:44,000 Neniu retpoŝto nun. Bone. 1353 01:11:44,000 --> 01:11:53,000 Nun lasu min malfermi froshims3, kiu estas la tria kaj lasta ekzemplo ni vidas tie. 1354 01:11:53,000 --> 01:11:55,000 Konsentite, jen ni iru. 1355 01:11:55,000 --> 01:12:00,000 Nate, li estos kapitano, virseksa, el, ekzemple, Apley. 1356 01:12:00,000 --> 01:12:04,000 Registriĝi. Okay, vi estas registrita vere. 1357 01:12:04,000 --> 01:12:07,000 Nun, se mi rulumi pli al mia retpoŝto, ho mia Dio. 1358 01:12:07,000 --> 01:12:09,000 Mi ĵus dinamike sendis retmesaĝon en la TTT. 1359 01:12:09,000 --> 01:12:11,000 >> Ni lasu en tiu noto. 1360 01:12:11,000 --> 01:12:16,000 Video estas venonta por la prelego ni maltrafis. Vidi vin proksima semajno. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]