1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Setmana 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Harvard University] 3 00:00:04,000 --> 00:00:07,000 [Aquesta és CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Benvingut de nou. 5 00:00:09,000 --> 00:00:11,000 Això és CS50, i aquest és el començament de la setmana 8. 6 00:00:11,000 --> 00:00:14,000 Fa un parell d'oportunitats aquesta setmana, 7 00:00:14,000 --> 00:00:17,000 entre ells aquesta xerrada aquí, en la qual alguns aliments seran servits. 8 00:00:17,000 --> 00:00:20,000 Per més detalls, fes un cop d'ull a les diapositives que estan en línia. 9 00:00:20,000 --> 00:00:24,000 I també un altre esdeveniment d'aquesta setmana pel nostre propi Carriero Thomas. 10 00:00:24,000 --> 00:00:27,000 És un dels exbecaris de Head CS50 d'ensenyament que ara està en Dropbox, 11 00:00:27,000 --> 00:00:29,000 i ell és el tipus que ens va connectar amb la saps què, 12 00:00:29,000 --> 00:00:36,000 així que si vols més que el cap de la seva xerrada d'aquesta tarda per Dropbox i més. 13 00:00:36,000 --> 00:00:38,000 CS50 dinar és aquest divendres. 14 00:00:38,000 --> 00:00:41,000 S'uneixen a nosaltres, si li és possible, 1:15, com sempre, en Fire and Ice. 15 00:00:41,000 --> 00:00:45,000 >> I ara ens submergim en una cosa anomenada Seminaris. 16 00:00:45,000 --> 00:00:49,000 Els nostres Seminaris CS50, record, són aquestes classes opcionals dirigides pels companys docents 17 00:00:49,000 --> 00:00:51,000 i els assistents del curs i amics del curs, 18 00:00:51,000 --> 00:00:55,000 gent d'un grup al campus anomenat ABCD, que és un grup de 19 00:00:55,000 --> 00:00:58,000 tecnòfils al campus, així com d'un grup anomenat HCS, 20 00:00:58,000 --> 00:01:02,000 la Harvard Computer Society, els estudiants que estan igualment interessats en la computació. 21 00:01:02,000 --> 00:01:08,000 Llista d'enguany inclou seminaris de seminaris sobre Android i iOS i JavaScript 22 00:01:08,000 --> 00:01:13,000 i PHP, Unix, Vim, i més, per adonar-se que aquests seminaris s'aproximen. 23 00:01:13,000 --> 00:01:16,000 Per fer reserves per qualsevol d'ells es dirigeixen a aquesta URL allà. 24 00:01:16,000 --> 00:01:20,000 A continuació, es publica a la pàgina web del curs dels temps i llocs, un cop es finalitzin. 25 00:01:20,000 --> 00:01:26,000 Però val la pena saber que hi ha 5 anys de seminaris anteriors disponibles en línia, 26 00:01:26,000 --> 00:01:29,000 molts dels quals estan encara molt actual en termes de tecnologies que podeu, 27 00:01:29,000 --> 00:01:36,000 vull jugar amb per als seus projectes finals, de manera que el cap allà per alguns vídeos disponibles d'aquest. 28 00:01:36,000 --> 00:01:39,000 >> CSS, aquells de vostès que estan familiaritzats amb CSS i, 29 00:01:39,000 --> 00:01:42,000 Què és en poques paraules? 30 00:01:42,000 --> 00:01:45,000 Què és CSS? 31 00:01:45,000 --> 00:01:48,000 Es fulls d'estil, i què significa això? 32 00:01:48,000 --> 00:01:53,000 Què és el que fan per nosaltres, CSS? 33 00:01:53,000 --> 00:01:57,000 Molt bé, anem a escalfar amb una més fàcil, HTML, llenguatge de marques d'hipertext. 34 00:01:57,000 --> 00:02:01,000 Què és el que fan per nosaltres? 35 00:02:01,000 --> 00:02:04,000 Qualsevol persona en absolut? 36 00:02:04,000 --> 00:02:07,000 S'està fent molt difícil fer aquestes preguntes. 37 00:02:07,000 --> 00:02:11,000 HTML, HyperText Markup Language. 38 00:02:11,000 --> 00:02:14,000 Sí? No? 39 00:02:14,000 --> 00:02:17,000 [Resposta dels estudiants inaudible] 40 00:02:17,000 --> 00:02:20,000 Bé, bé, que ens permet marcar text per mostrar en un navegador web. 41 00:02:20,000 --> 00:02:22,000 No és un llenguatge de programació. 42 00:02:22,000 --> 00:02:25,000 És realment un llenguatge de marques, el que significa que indica al navegador com mostrar 43 00:02:25,000 --> 00:02:28,000 informació, de manera que la simple encarnació d'aquesta com hem vist 44 00:02:28,000 --> 00:02:32,000 és una cosa super simple com boldfacing, obert abraçadora abraçadora tancada b diu 45 00:02:32,000 --> 00:02:36,000 fan d'aquest text en negreta, i que en realitat és només una de les moltes maneres 46 00:02:36,000 --> 00:02:39,000 en el qual podem fer això, i de fet, en aquests dies un millor enfocament 47 00:02:39,000 --> 00:02:42,000 per estilitzar la teva pàgina web, fent les coses en negreta i cursiva 48 00:02:42,000 --> 00:02:47,000 i centrat i justificat i similars, no es porta a terme a través de les etiquetes HTML només 49 00:02:47,000 --> 00:02:51,000 sinó més aviat amb una tècnica anomenada CSS, Cascading Style Sheets. 50 00:02:51,000 --> 00:02:53,000 Aquest és un llenguatge en si mateix. 51 00:02:53,000 --> 00:02:55,000 Això tampoc és un llenguatge de programació, però- 52 00:02:55,000 --> 00:02:58,000 a tots, aquest és Dan, que manté acompanyar avui. 53 00:02:58,000 --> 00:03:01,000 Algunes dificultats tècniques. No és un problema. 54 00:03:01,000 --> 00:03:04,000 >> CSS ens permet estilitzar una pàgina 55 00:03:04,000 --> 00:03:07,000 mitjançant l'establiment del que es denominen propietats, així que anem a fer una ullada a això 56 00:03:07,000 --> 00:03:09,000 mitjançant alguns exemples bàsics. 57 00:03:09,000 --> 00:03:12,000 Déjame entrar en l'aparell avui. 58 00:03:12,000 --> 00:03:15,000 Tinc la font 8 Dilluns directori aquí, 59 00:03:15,000 --> 00:03:18,000 i jo vaig a anar a un directori anomenat CSS, on tenim un munt 60 00:03:18,000 --> 00:03:21,000 d'arxius que ens esperen aquí, 61 00:03:21,000 --> 00:03:27,000 i en aquesta carpeta tenim, per exemple, search0.html des de l'última vegada. 62 00:03:27,000 --> 00:03:31,000 Ara, recordo amb search0 de partir en aquesta nota 63 00:03:31,000 --> 00:03:35,000 per tipus d'implementació de Google o en realitat només la part davantera per a una setmana o així que fa, 64 00:03:35,000 --> 00:03:38,000 i l'avís que teníem algunes etiquetes noves allà. 65 00:03:38,000 --> 00:03:41,000 Vam tenir h1 per un títol gran, en negreta, 66 00:03:41,000 --> 00:03:45,000 manera, el que ens va permetre tenen de fet un formulari HTML per entrada d'usuari. 67 00:03:45,000 --> 00:03:48,000 Acció, quin va ser el significat d'un atribut d'acció 68 00:03:48,000 --> 00:03:52,000 en l'etiqueta de formulari HTML? 69 00:03:52,000 --> 00:03:58,000 Quin era el significat d'aquesta acció? 70 00:03:58,000 --> 00:04:00,000 Vaig a fer això avui. 71 00:04:00,000 --> 00:04:03,000 L'acció és la destinació a on la forma serà sotmès. 72 00:04:03,000 --> 00:04:07,000 El fet que l'acció que diu = "google.com / recerca" 73 00:04:07,000 --> 00:04:10,000 significa que quan l'usuari fa clic al botó d'enviar o equivalent 74 00:04:10,000 --> 00:04:14,000 independentment de la forma que van omplir els camps seran enviats al nostre servidor no 75 00:04:14,000 --> 00:04:17,000 o el nostre aparell, sinó més aviat a la adreça explícita a Google. 76 00:04:17,000 --> 00:04:19,000 I el mètode que utilitzarà s'anomena aconseguir, 77 00:04:19,000 --> 00:04:25,000 i obtenir, per ara, és només una tècnica per passar informació al llarg d'un servidor web 78 00:04:25,000 --> 00:04:29,000 a través de la URL, així que anem a fer un ràpid cop d'ull a com funciona això. 79 00:04:29,000 --> 00:04:31,000 >> Tingueu en compte que hi ha una entrada el nom és q 80 00:04:31,000 --> 00:04:35,000 el tipus és text i després una segona entrada del tipus de presentar 81 00:04:35,000 --> 00:04:39,000 el valor és CS50 Search, i de fet, si ens obrim aquest arxiu aquí 82 00:04:39,000 --> 00:04:42,000 search0.html, és una forma súper simple, 83 00:04:42,000 --> 00:04:45,000 i si busco alguna cosa com la informàtica 84 00:04:45,000 --> 00:04:50,000 i després prem enter o feu clic a Cerca CS50 85 00:04:50,000 --> 00:04:53,000 compte que el que passa és més enllà d'arribar a Google 86 00:04:53,000 --> 00:04:56,000 He específicament acabar en aquest URL a la part superior, 87 00:04:56,000 --> 00:05:01,000 google.com / search? q = ordinador + ciència, 88 00:05:01,000 --> 00:05:04,000 i ciències de la computació és, òbviament, el que he escrit polz 89 00:05:04,000 --> 00:05:06,000 El + només significa que és on un caràcter d'espai era, 90 00:05:06,000 --> 00:05:10,000 i es fa pel navegador només per assegurar-se que no hi ha 91 00:05:10,000 --> 00:05:13,000 confusió i l'espai en blanc a l'adreça URL real. 92 00:05:13,000 --> 00:05:15,000 I llavors q, és clar, és el nom del paràmetre. 93 00:05:15,000 --> 00:05:20,000 No hem vist com, el programador, en realitat es pot accedir q encara. 94 00:05:20,000 --> 00:05:23,000 Podem suposar que Google sap què fer amb això aquí, 95 00:05:23,000 --> 00:05:25,000 però arribarem al moment oportú avui. 96 00:05:25,000 --> 00:05:30,000 >> Però deixeu-me fer una ullada en comptes de search1.html, 97 00:05:30,000 --> 00:05:34,000 que s'assembla una mica diferent perquè he decidit que aquesta forma aquí estava una mica coix. 98 00:05:34,000 --> 00:05:36,000 Vull dir, que està a la part superior esquerra. 99 00:05:36,000 --> 00:05:40,000 En realitat no hi ha estètica a la mateixa, i per això vull estilitzar aquesta 100 00:05:40,000 --> 00:05:43,000 una mica més com Google, la pàgina d'inici, recordar, 101 00:05:43,000 --> 00:05:47,000 encara que és possible que no el visiten molt sovint, es veu així avui per Halloween. 102 00:05:47,000 --> 00:05:53,000 Si en lloc d'obrir una versió d'aquest arxiu, 1.html recerca, m'he centrat. 103 00:05:53,000 --> 00:05:57,000 , Still bastant lleig, però almenys ara he començat a controlar l'estètica d'aquesta pàgina 104 00:05:57,000 --> 00:06:00,000 no només per marcar fins dels mateixos. 105 00:06:00,000 --> 00:06:04,000 Fem una ullada a una recerca, i no hi ha realment només una diferència aquí, 106 00:06:04,000 --> 00:06:06,000 que podria saltar a la vista, o potser no, 107 00:06:06,000 --> 00:06:11,000 però quina és la línia d'un fragment o de la diferència? 108 00:06:11,000 --> 00:06:14,000 >> Hi ha un atribut d'estil, pel que resulta que en HTML 109 00:06:14,000 --> 00:06:19,000 la majoria dels elements, la majoria de les etiquetes poden tenir un atribut d'estil en ells, 110 00:06:19,000 --> 00:06:23,000 i dins d'aquest atribut style és una cadena entre cometes, 111 00:06:23,000 --> 00:06:26,000 i que la cadena entre cometes és CSS. 112 00:06:26,000 --> 00:06:29,000 Vostè pot posar fulles d'estil en cascada allà 113 00:06:29,000 --> 00:06:32,000 especificant com un nom de propietat 114 00:06:32,000 --> 00:06:34,000 seguit de dos punts seguit d'un valor. 115 00:06:34,000 --> 00:06:37,000 Això és una mica d'una decisió de disseny desafortunat fa alguns anys 116 00:06:37,000 --> 00:06:40,000 que CSS és un llenguatge en si mateix, 117 00:06:40,000 --> 00:06:43,000 però sintàcticament és molt diferent d'HTML. 118 00:06:43,000 --> 00:06:46,000 En aquest cas, veiem que dins de la meva pàgina web, que és HTML, 119 00:06:46,000 --> 00:06:51,000 Tinc CSS dins d'aquestes cites, i la convenció de CSS 120 00:06:51,000 --> 00:06:55,000 és que vostè té el que s'anomena una propietat seguit, novament, dos punts, 121 00:06:55,000 --> 00:06:58,000 seguit pel valor d'aquesta propietat, així que no hi ha signe igual. 122 00:06:58,000 --> 00:07:00,000 No hi ha cites més. 123 00:07:00,000 --> 00:07:03,000 És només està separada per dos punts parell de valors clau, 124 00:07:03,000 --> 00:07:05,000 i la línia de text fa exactament el que diu. 125 00:07:05,000 --> 00:07:09,000 S'alinea el text en el cos de la pàgina, que és realment el coratge de la pàgina, 126 00:07:09,000 --> 00:07:11,000 al centre. 127 00:07:11,000 --> 00:07:13,000 >> D'acord, llavors el resultat final, per ser clars, és aquest. 128 00:07:13,000 --> 00:07:17,000 No tot el que més sexy, però almenys està centrat i una mica més al real de Google. 129 00:07:17,000 --> 00:07:21,000 Però, i si en comptes obrir la versió 2 d'aquest 130 00:07:21,000 --> 00:07:25,000 i assenyalar aquí una nova etiqueta en total? 131 00:07:25,000 --> 00:07:30,000 Ara, a la capçalera de la meva pàgina, que abans només havia de etiqueta 132 00:07:30,000 --> 00:07:32,000 en tots els exemples anteriors? 133 00:07:32,000 --> 00:07:34,000 S'acaba de tenir això, el títol. 134 00:07:34,000 --> 00:07:38,000 Fa un moment l'etiqueta del cap es veia així. 135 00:07:38,000 --> 00:07:40,000 Ara, en canvi, té un estil dins de l'etiqueta de la mateixa, 136 00:07:40,000 --> 00:07:44,000 i això també, demano disculpes, sintàcticament es veu molt diferent d'HTML, 137 00:07:44,000 --> 00:07:47,000 però t'acostumes a ell, per la qual cosa dins de l'etiqueta d'estil 138 00:07:47,000 --> 00:07:50,000 Ara puc factoritzar el que era fa un moment 139 00:07:50,000 --> 00:07:54,000 un atribut, l'atribut d'estil, i ho puc posar a la part superior de la meva pàgina. 140 00:07:54,000 --> 00:07:56,000 >> Per què? 141 00:07:56,000 --> 00:08:00,000 Bé, aquest és un pas cap netejant les coses, igual que en l'escriptura de codi C 142 00:08:00,000 --> 00:08:04,000 nosaltres de vegades escriure funcions per factoritzar la funcionalitat comuna. 143 00:08:04,000 --> 00:08:07,000 És només una mica més net per iniciar factoring coses com l'estètica 144 00:08:07,000 --> 00:08:11,000 a un lloc central en lloc de tenir-ho tot s'intercalen al llarg de la seva HTML. 145 00:08:11,000 --> 00:08:14,000 Això també fa el que diu, encara que hi ha una mica de nova sintaxi. 146 00:08:14,000 --> 00:08:19,000 Això aquí és un selector, i el cos només significa seleccionar l'element del cos 147 00:08:19,000 --> 00:08:21,000 i aplicar les propietats a la mateixa. 148 00:08:21,000 --> 00:08:23,000 Doncs bé, la propietat és exactament el mateix. 149 00:08:23,000 --> 00:08:25,000 Per si de cas he afegit un punt i coma al final, 150 00:08:25,000 --> 00:08:29,000 que tendeix a ser la convenció, i m'he embolicat tot aquest immoble 151 00:08:29,000 --> 00:08:33,000 entre claus perquè jo podia tenir coses diferents aquí. 152 00:08:33,000 --> 00:08:39,000 De fet, em podria dir alguna cosa com a color: blue; 153 00:08:39,000 --> 00:08:42,000 >> Ara bé, això tampoc serà un pas cap al no res tot el que més bonic, 154 00:08:42,000 --> 00:08:47,000 però si ara tornar a la versió 2 que he fet com a mínim ara el cos de la meva 155 00:08:47,000 --> 00:08:49,000 pàgina de text de tot blau. 156 00:08:49,000 --> 00:08:51,000 El botó es manté igual perquè és una entrada. No és pur text. 157 00:08:51,000 --> 00:08:56,000 Però tota la resta que és text, com CS50 Cerca a la part alta, és de color blau fet. 158 00:08:56,000 --> 00:09:01,000 Un cop més, tot el que hem fet ara és eliminar del cos de l'etiqueta, rètol, 159 00:09:01,000 --> 00:09:04,000 l'atribut d'estil, i hem factoritzat un cop d'ull aquí. 160 00:09:04,000 --> 00:09:08,000 Això no és una gran millora, però si prenem un pas més enllà 161 00:09:08,000 --> 00:09:10,000 adonar-se del que podem fer en aquesta tercera versió aquí. 162 00:09:10,000 --> 00:09:14,000 >> A search3.html la pàgina web és gairebé idèntic 163 00:09:14,000 --> 00:09:17,000 a excepció del que nou tag ara? 164 00:09:17,000 --> 00:09:20,000 Link, de manera que aquest no està molt ben anomenat 165 00:09:20,000 --> 00:09:24,000 perquè no es va a associar en el sentit d'un enllaç clicable. 166 00:09:24,000 --> 00:09:28,000 Més aviat, estàs de sort fent l'equivalent de # include en C 167 00:09:28,000 --> 00:09:31,000 de manera que l'etiqueta d'enllaç amb un atribut href 168 00:09:31,000 --> 00:09:34,000 i un atribut rel diu que endavant 169 00:09:34,000 --> 00:09:39,000 còpia i enganxa el contingut d'un arxiu anomenat search3.css aquí, essencialment. 170 00:09:39,000 --> 00:09:42,000 No tot això, però aquest és l'esperit de la mateixa. 171 00:09:42,000 --> 00:09:45,000 Diu que anar obert aquest arxiu, search3.css, 172 00:09:45,000 --> 00:09:49,000 i tractar-la com si l'usuari hagués escrit aquí mateix a la capçalera de la pàgina 173 00:09:49,000 --> 00:09:51,000 igual que ho va fer en l'exemple anterior. 174 00:09:51,000 --> 00:09:54,000 Search3.css, per la seva banda, és bastant simple. 175 00:09:54,000 --> 00:09:58,000 En realitat, només es guarden el que estava fa un moment 176 00:09:58,000 --> 00:10:03,000 en l'etiqueta d'estil, però no tinc factoritzar un cop d'ull aquí al seu propi arxiu. 177 00:10:03,000 --> 00:10:07,000 >> Tot i que no he passat molt de temps en absolut en HTML o programació web 178 00:10:07,000 --> 00:10:11,000 només intuïtivament el que és la motivació, potser, per factoritzar 179 00:10:11,000 --> 00:10:14,000 aquest petit fragment de CSS, fins i tot en el seu propi arxiu 180 00:10:14,000 --> 00:10:19,000 i després fins i tot amb aquesta etiqueta link aquí? 181 00:10:19,000 --> 00:10:21,000 [Resposta dels estudiants inaudible] 182 00:10:21,000 --> 00:10:25,000 Bé, és més fàcil de llegir en el sentit que té la CSS en un arxiu CSS. 183 00:10:25,000 --> 00:10:28,000 Vostè té el seu codi HTML a l'arxiu HTML, pel que és més fàcil de llegir en aquest sentit. 184 00:10:28,000 --> 00:10:30,000 Quina altra cosa podria ser convincent? Si. 185 00:10:30,000 --> 00:10:32,000 [Resposta dels estudiants inaudible] 186 00:10:32,000 --> 00:10:35,000 Sí, perquè pugui incloure'l en moltes ocasions, de manera que ara estem fent aquests 187 00:10:35,000 --> 00:10:38,000 exemples bàsics amb arxius individuals, però suposo que en realitat estàs fent 188 00:10:38,000 --> 00:10:42,000 un lloc web real com la teva voluntat per pset 7 o el projecte final potser, 189 00:10:42,000 --> 00:10:45,000 i desitja tenir diverses pàgines web, com és bastant comú en 190 00:10:45,000 --> 00:10:48,000 la web actual Wide, i seria una espècie de esguerrat 191 00:10:48,000 --> 00:10:52,000 a haver de copiar i enganxar el mateix color blau 192 00:10:52,000 --> 00:10:56,000 i el mateix text alineat centre en cadascuna d'aquestes pàgines. 193 00:10:56,000 --> 00:10:59,000 Més aviat, té més sentit per excloure, com hem fet en C 194 00:10:59,000 --> 00:11:02,000 amb l'arxiu. h, el va posar en un lloc central, 195 00:11:02,000 --> 00:11:06,000 en aquest cas search3.css, i després permetre que qualsevol arxiu 196 00:11:06,000 --> 00:11:11,000 a la seva pàgina web per incloure aquest arxiu en realitat a través d'aquesta etiqueta aquí a la línia 16. 197 00:11:11,000 --> 00:11:14,000 Com sol ser el cas, vam començar amb la versió 0, quin tipus d'obres 198 00:11:14,000 --> 00:11:18,000 però no és necessàriament la millor, i amb cada pas, 199 00:11:18,000 --> 00:11:21,000 recerca d'una recerca de 2, 3 i ara busca que hem pres aquests passos de nadó 200 00:11:21,000 --> 00:11:26,000 cap dissenys que són una mica més netes i són més preparatòria 201 00:11:26,000 --> 00:11:30,000 per les pàgines més complexes que podem fer en el futur. 202 00:11:30,000 --> 00:11:33,000 >> Permetin-me obrir un últim exemple aquí només per mostrar 203 00:11:33,000 --> 00:11:36,000 una pàgina encara més estilitzat, però primer anem a veure el codi HTML. 204 00:11:36,000 --> 00:11:41,000 Això és search4.html, i noti que estructuralment és gairebé el mateix 205 00:11:41,000 --> 00:11:44,000 excepte per la introducció d'una nova etiqueta, DIV. 206 00:11:44,000 --> 00:11:48,000 Div és una etiqueta que introdueix una divisió de la pàgina. 207 00:11:48,000 --> 00:11:51,000 Vostè pot pensar en això com un rectangle invisible. 208 00:11:51,000 --> 00:11:54,000 D'alguna manera crea una franja d'àrea en la pàgina web 209 00:11:54,000 --> 00:11:56,000 que es pot estilitzar tots alhora. 210 00:11:56,000 --> 00:11:58,000 El que he fet aquí és la següent. 211 00:11:58,000 --> 00:12:01,000 A l'interior del meu cos de l'etiqueta, que ha estat allà tot el temps, 212 00:12:01,000 --> 00:12:05,000 Dic crear una divisió de la pàgina aquí a través de les línies 45 a la 47, 213 00:12:05,000 --> 00:12:09,000 i això significa essencialment donar-me un rectangle invisible al llarg de la part superior de la pàgina. 214 00:12:09,000 --> 00:12:14,000 Llavors dóna'm un segon rectangle, encara que invisible, més avall, 215 00:12:14,000 --> 00:12:16,000 i s'identifiquen pel nom de contingut i, a continuació, finalment, 216 00:12:16,000 --> 00:12:19,000 dóna'm una tercera divisió de la pàgina a la part inferior 217 00:12:19,000 --> 00:12:21,000 anomenat ID. 218 00:12:21,000 --> 00:12:23,000 Anem a veure què he fet això en un moment, 219 00:12:23,000 --> 00:12:26,000 però conceptualment Tinc una divisió de capçalera. 220 00:12:26,000 --> 00:12:30,000 Tinc una divisió de continguts, i tinc una divisió peu de pàgina de la pàgina 221 00:12:30,000 --> 00:12:32,000 tot i que aquests són només en el marcat. 222 00:12:32,000 --> 00:12:35,000 L'usuari no va a veure 3 rectangles, 223 00:12:35,000 --> 00:12:37,000 però tipus d'estructura hi ha darrere de les escenes 224 00:12:37,000 --> 00:12:39,000 que estan realment presents. 225 00:12:39,000 --> 00:12:41,000 >> Ara, què hi fa? Per què ho fan realment? 226 00:12:41,000 --> 00:12:43,000 Tota la resta a la pàgina és el mateix que hem vist abans. 227 00:12:43,000 --> 00:12:47,000 Aquesta és la meva manera. Aquí està la meva entrada, la meva entrada, un salt de línia i així successivament. 228 00:12:47,000 --> 00:12:50,000 Aquí està una imatge, però, així que ja veurem on va sortir en un moment. 229 00:12:50,000 --> 00:12:52,000 Aquí hi ha un peu de pàgina, que és nou, només perquè volia introduir 230 00:12:52,000 --> 00:12:54,000 contingut una mica més aquí. 231 00:12:54,000 --> 00:12:58,000 Si ens desplacem fins notar que l'ID d'aquest div és capçalera. 232 00:12:58,000 --> 00:13:02,000 La identificació d'aquest div és el contingut i la identificació d'aquesta és peu de pàgina. 233 00:13:02,000 --> 00:13:05,000 I com el seu nom ho indica, quan es té un atribut ID 234 00:13:05,000 --> 00:13:09,000 en HTML, per definició, ha d'identificar exclusivament 235 00:13:09,000 --> 00:13:12,000 un dels elements, una de les etiquetes a la pàgina. 236 00:13:12,000 --> 00:13:16,000 La responsabilitat recau totalment en vostè recordar que té un ID de capçalera ja. 237 00:13:16,000 --> 00:13:19,000 Vostè té un peu de pàgina. Vostè té un ID de contingut ja. 238 00:13:19,000 --> 00:13:22,000 L'equip no va a entendre el que és una identificació disponible per a vostè, 239 00:13:22,000 --> 00:13:27,000 de manera que accidentalment podria donar una identificació 2 etiquetes de capçalera, 240 00:13:27,000 --> 00:13:29,000 i això seria un error. 241 00:13:29,000 --> 00:13:31,000 >> Cal tenir en compte el que han creat, 242 00:13:31,000 --> 00:13:34,000 però una vegada que hagis fet això fixa't en el que podem fer aquí. 243 00:13:34,000 --> 00:13:38,000 Ara pot especificar en la meva etiqueta d'estil en la part superior 244 00:13:38,000 --> 00:13:41,000 o equivalentment en el meu arxiu CSS, si jo encara estava fent servir aquesta versió, 245 00:13:41,000 --> 00:13:46,000 Puc dir # header, i és el que vol dir que qualsevol etiqueta 246 00:13:46,000 --> 00:13:49,000 en aquesta pàgina web té un ID de capçalera 247 00:13:49,000 --> 00:13:53,000 i #, només per convenció humana, representa l'ID. 248 00:13:53,000 --> 00:13:56,000 El signe de sostingut o la lliura signe representa identificació. 249 00:13:56,000 --> 00:13:58,000 Capçalera és el nom que li vaig donar. 250 00:13:58,000 --> 00:14:01,000 Això vol dir aplicar aquesta propietat CSS 251 00:14:01,000 --> 00:14:04,000 a qualsevol variable d'aquesta pàgina té un ID de capçalera. 252 00:14:04,000 --> 00:14:06,000 El mateix passa aquí. 253 00:14:06,000 --> 00:14:09,000 Aplicar aquesta propietat, que passa a ser el mateix, a qualsevol element 254 00:14:09,000 --> 00:14:11,000 amb identificador el contingut, i després aquí 255 00:14:11,000 --> 00:14:14,000 adonar que tinc una mica més de luxe amb peu de pàgina. 256 00:14:14,000 --> 00:14:18,000 Qualsevol element el ID és peu de pàgina, de la qual no pot ser només un, per definició, 257 00:14:18,000 --> 00:14:21,000 seguir endavant i fer la seva mida de font més petit, 258 00:14:21,000 --> 00:14:24,000 seva font en negreta pes, el seu marge de 20 píxels. 259 00:14:24,000 --> 00:14:26,000 >> Què significa això? 260 00:14:26,000 --> 00:14:28,000 És només un marge a la part superior, inferior, esquerra i el de dreta. 261 00:14:28,000 --> 00:14:31,000 Això vol donar-me un marge de 20-píxel invisible al seu voltant 262 00:14:31,000 --> 00:14:35,000 només per empènyer tota la resta fora una mica, que es pot fer en Word, 263 00:14:35,000 --> 00:14:37,000 Microsoft Word o Pages o similar. 264 00:14:37,000 --> 00:14:39,000 I després alinear text central. 265 00:14:39,000 --> 00:14:43,000 Anem a veure el resultat final, i després anem a tornar fins el fragment restant de CSS allà. 266 00:14:43,000 --> 00:14:48,000 Aquesta és la versió 4, l'últim dels exemples de recerca, i és molt més sexy, molt. 267 00:14:48,000 --> 00:14:54,000 Ara, per ser justos, només Google "font generador google logo". 268 00:14:54,000 --> 00:14:58,000 I això em va permetre crear un GIF, un format d'imatge, que sembla que no. 269 00:14:58,000 --> 00:15:00,000 De fet, vostè pot fer això també. 270 00:15:00,000 --> 00:15:03,000 Tenim "google logo generador fonts." 271 00:15:03,000 --> 00:15:05,000 >> A veure si podem fer això. 272 00:15:05,000 --> 00:15:07,000 Bé, crec que aquest és el lloc web que he fet servir. 273 00:15:07,000 --> 00:15:11,000 Podem dir Ec 10, per exemple, i fer que el seu propi. 274 00:15:11,000 --> 00:15:13,000 Vostè pot jugar amb això tot el dia i després a la dreta feu clic 275 00:15:13,000 --> 00:15:16,000 i després descarregar el GIF real, que és tot el que vaig fer. 276 00:15:16,000 --> 00:15:19,000 I de fet, és per això que en el meu HTML, recordar, aquí 277 00:15:19,000 --> 00:15:22,000 Jo tenia una etiqueta d'imatge, que vam veure breument la setmana passada 278 00:15:22,000 --> 00:15:24,000 la font és logo.gif. 279 00:15:24,000 --> 00:15:28,000 I el que de nou va ser la motivació per tenir aquest atribut alt, 280 00:15:28,000 --> 00:15:31,000 aquest atribut alternativa? 281 00:15:31,000 --> 00:15:33,000 Si. 282 00:15:33,000 --> 00:15:35,000 [Resposta dels estudiants inaudible] 283 00:15:35,000 --> 00:15:37,000 Bé, de manera que 2 raons realment, si el navegador no pot aixecar la imatge 284 00:15:37,000 --> 00:15:40,000 perquè vostè té una connexió de xarxa lenta o la imatge està danyada 285 00:15:40,000 --> 00:15:44,000 o alguna cosa així com que almenys l'ésser humà pot veure "CS50 recerca" 286 00:15:44,000 --> 00:15:46,000 i després també per raons d'accessibilitat. 287 00:15:46,000 --> 00:15:48,000 Si vostè té un usuari que és cec i utilitza un lector de pantalla 288 00:15:48,000 --> 00:15:50,000 de manera que, òbviament, no pot veure les imatges almenys poden 289 00:15:50,000 --> 00:15:52,000 escoltar el text si el seu ordinador se'ls parla. 290 00:15:52,000 --> 00:15:56,000 >> En general, aquesta és la millor pràctica quan es tracta de l'accessibilitat de les pàgines 291 00:15:56,000 --> 00:16:00,000 perquè els usuaris fins i tot en aquesta situació pot sentir o veure, per dir-ho, 292 00:16:00,000 --> 00:16:03,000 què és el que està a la seva pàgina. 293 00:16:03,000 --> 00:16:05,000 Hi ha una altra cosa que el vaig fer aquí 294 00:16:05,000 --> 00:16:09,000 que és una mica interessant, i veurem més sobre això en conjunt de problemes 7 295 00:16:09,000 --> 00:16:12,000 a través d'un dels curts dirigits per un dels companys docents. 296 00:16:12,000 --> 00:16:15,000 Però # contingut es refereix a l'etiqueta 297 00:16:15,000 --> 00:16:20,000 amb identificador el contingut, però després hi ha un espai en blanc, i després hi ha la paraula d'entrada. 298 00:16:20,000 --> 00:16:25,000 Bé, l'interessant de CSS és que es pot 299 00:16:25,000 --> 00:16:29,000 es refereixen a les etiquetes en una pàgina classificar de forma jeràrquica, 300 00:16:29,000 --> 00:16:33,000 i el que això significa fragment de CSS és trobar l'etiqueta 301 00:16:33,000 --> 00:16:37,000 amb identificador el contingut, i després aplicar les següents propietats 302 00:16:37,000 --> 00:16:42,000 a totes les etiquetes d'entrada que són descendents de contingut, 303 00:16:42,000 --> 00:16:44,000 és a dir que s'aplica sagnia dins d'ella. 304 00:16:44,000 --> 00:16:48,000 Indentació, de nou, només és important per a l'equip, no a la humana, 305 00:16:48,000 --> 00:16:51,000 però per convenció guió coses a mesura que aprofundim en una pàgina, 306 00:16:51,000 --> 00:16:54,000 així que això significa aplicar un marge de 5 píxels a qualsevol element d'entrada 307 00:16:54,000 --> 00:16:57,000 que en algun lloc dins o niat dins 308 00:16:57,000 --> 00:16:59,000  l'element el ID és el contingut. 309 00:16:59,000 --> 00:17:01,000 >> Qui fa això s'aplica? 310 00:17:01,000 --> 00:17:03,000 Bé, en realitat hi ha només aquests 2 nois aquí. 311 00:17:03,000 --> 00:17:05,000 Tingueu en compte que a l'interior de la forma hi ha 2 entrades, 312 00:17:05,000 --> 00:17:07,000 ja que ha estat durant tots aquests exemples. 313 00:17:07,000 --> 00:17:11,000 Però cal notar que les 2 entrades succeeix que llisca per l'interior, 314 00:17:11,000 --> 00:17:13,000 encara que una mica profunda, un parell de capes de sangria, 315 00:17:13,000 --> 00:17:16,000 dins de l'etiqueta amb identificador el contingut. 316 00:17:16,000 --> 00:17:18,000 Què vol dir això? 317 00:17:18,000 --> 00:17:21,000 Si anem al navegador aquí es pot veure molt lleugerament- 318 00:17:21,000 --> 00:17:23,000 m'ho dius a mi apropar-que hi ha una mica de farciment entre el botó 319 00:17:23,000 --> 00:17:25,000 i entre el camp de text. 320 00:17:25,000 --> 00:17:27,000 >> Permetin-me temporalment apaga això. 321 00:17:27,000 --> 00:17:30,000 Deixa sortir el meu CSS, i em va deixar anar endavant i només 322 00:17:30,000 --> 00:17:34,000 canviar aquest marge de 5 píxels a 0 píxels. 323 00:17:34,000 --> 00:17:37,000 Deixa anar per davant i després i guardar l'arxiu, torni al motor de cerca 324 00:17:37,000 --> 00:17:40,000 i tornar a carregar i veure el centre de la pàgina. 325 00:17:40,000 --> 00:17:43,000 Tot es comprimeixen junts, i quan per primera vegada assotat aquest exemple fins 326 00:17:43,000 --> 00:17:46,000 Vaig pensar que es veia estúpid amb el camp de text i després en el botó immediatament sota. 327 00:17:46,000 --> 00:17:50,000 Volia coixinet ell una mica, així que va introduir marges. 328 00:17:50,000 --> 00:17:55,000 El que no farà a classe és anar a través de les diverses dotzenes 329 00:17:55,000 --> 00:17:58,000 CSS propietats que existeixen perquè, de nou, hi ha coses com la mida de font, 330 00:17:58,000 --> 00:18:02,000 pes de la font, marges, alinear el text, i una dotzena d'altres pocs, 331 00:18:02,000 --> 00:18:06,000 i li refereixen en conjunt de problemes 7 a diversos tutorials en línia 332 00:18:06,000 --> 00:18:08,000 i les referències que li permeten recollir aquestes coses. 333 00:18:08,000 --> 00:18:10,000 Però el que realment importa al final del dia 334 00:18:10,000 --> 00:18:12,000 >> és entendre com aquestes coses s'apliquen. 335 00:18:12,000 --> 00:18:15,000 Un cop més, si tenim l'estil dins de l'etiqueta dels quals 336 00:18:15,000 --> 00:18:19,000 pot anar als selectors, el tipus d'identificadors que especifiquen 337 00:18:19,000 --> 00:18:21,000 A qui desitja aplicar aquestes propietats, 338 00:18:21,000 --> 00:18:24,000 i després de posar les propietats com parell de valors clau 339 00:18:24,000 --> 00:18:28,000 separats per dos punts i va acabar amb un punt i coma, 340 00:18:28,000 --> 00:18:32,000 o es pot extreure de tot això i posar-ho en un arxiu CSS 341 00:18:32,000 --> 00:18:35,000 en si mateix. 342 00:18:35,000 --> 00:18:39,000 Molt bé, qualsevol pregunta sobre els conceptes 343 00:18:39,000 --> 00:18:41,000 o el gran quadre de CSS? 344 00:18:41,000 --> 00:18:43,000 Tu nou veurem més d'ell en pset 7, 345 00:18:43,000 --> 00:18:47,000 però seguirem en general bastant simple. 346 00:18:47,000 --> 00:18:49,000 No? Està bé. 347 00:18:49,000 --> 00:18:51,000 És hora que un llenguatge de programació real, 348 00:18:51,000 --> 00:18:54,000 i tornarem a una mica de CSS en forma d'un exemple. 349 00:18:54,000 --> 00:18:58,000 PHP és en realitat un llenguatge meravellosament accessible 350 00:18:58,000 --> 00:19:02,000 en què estigui sintàcticament gairebé equivalent a C. 351 00:19:02,000 --> 00:19:06,000 En altres paraules, si vostè sap C, ja saps PHP per a la major part, 352 00:19:06,000 --> 00:19:08,000 almenys sintàcticament, tot i que hi ha algunes noves característiques 353 00:19:08,000 --> 00:19:10,000 i alguns conceptes nous que haurem de mirar. 354 00:19:10,000 --> 00:19:13,000 >> No obstant això, per a la major part, ara que la transició de C a PHP 355 00:19:13,000 --> 00:19:16,000 la major part del nou material és realment en el panorama general, 356 00:19:16,000 --> 00:19:19,000 com s'utilitza un llenguatge de programa al web en lloc de 357 00:19:19,000 --> 00:19:23,000 en la línia d'ordres o en un missatge parpellejant, ja que hem estat fent fins ara. 358 00:19:23,000 --> 00:19:27,000 Com a referència, especialment amb pset 7 i el projecte final en endavant, 359 00:19:27,000 --> 00:19:31,000 s'aprofiten d'aquesta URL aquí si voleu llegir sobre les formalitats de PHP. 360 00:19:31,000 --> 00:19:34,000 De fet, és com un llibre de text en línia gratis amb eficàcia, 361 00:19:34,000 --> 00:19:37,000 i vostè també trobareu que el que és realment bo de PHP 362 00:19:37,000 --> 00:19:41,000 és que hi ha centenars de funcions que vénen amb el mateix, 363 00:19:41,000 --> 00:19:44,000 mentre que en C que no necessàriament tenen accés a 364 00:19:44,000 --> 00:19:47,000 més funcions que estaven a la biblioteca matemàtica, la biblioteca CS50. 365 00:19:47,000 --> 00:19:51,000 En PHP i un munt de llengües modernes, Python i Ruby, entre ells, 366 00:19:51,000 --> 00:19:54,000 , Tindrà accés a tantes funcions més, el que significa que has d'escriure 367 00:19:54,000 --> 00:19:57,000 molt menys codi, ja que pot estar dret sobre les espatlles dels altres 368 00:19:57,000 --> 00:19:59,000 que ja han escrit algunes coses per a tu. 369 00:19:59,000 --> 00:20:03,000 >> Fem un ràpid recorregut per la sintaxi de PHP i després escriure alguns exemples. 370 00:20:03,000 --> 00:20:06,000 El millor de PHP, abans que res, 371 00:20:06,000 --> 00:20:08,000 és que no hi ha funció principal. 372 00:20:08,000 --> 00:20:10,000 Per escriure un programa en PHP que acaba de començar a escriure codi, 373 00:20:10,000 --> 00:20:12,000 i vostè no s'ha de preocupar de principal. 374 00:20:12,000 --> 00:20:14,000 No hi ha int. No hi ha retorn. 375 00:20:14,000 --> 00:20:17,000 No hi ha argv, argc que es requereix quan s'escriu el programa. 376 00:20:17,000 --> 00:20:20,000 Més aviat pot simplement començar a escriure codi, i això és en part 377 00:20:20,000 --> 00:20:23,000 pel fet que PHP és el que s'anomena un llenguatge interpretat. 378 00:20:23,000 --> 00:20:26,000 C va ser compilat, i que va ser compilat en el sentit que s'iniciï 379 00:20:26,000 --> 00:20:29,000 amb el codi font, s'executa a través de Clang, que és un compilador, 380 00:20:29,000 --> 00:20:33,000 i, finalment, després d'una certa quantitat de passos que obtenir el codi objecte, 0s i 1s. 381 00:20:33,000 --> 00:20:36,000 PHP i Python i Ruby i Pearl i altres 382 00:20:36,000 --> 00:20:39,000 diferents tipus d'idiomes que no els compilar. 383 00:20:39,000 --> 00:20:42,000 No et vas a partir del codi font de 0s i 1s. 384 00:20:42,000 --> 00:20:45,000 Vostè acaba d'executar el codi font, i s'executa el codi font 385 00:20:45,000 --> 00:20:49,000 escrivint en un arxiu de text normal, acabat en. php en aquest cas 386 00:20:49,000 --> 00:20:53,000 en lloc de. c, i el que fa el programa en el seu ordinador 387 00:20:53,000 --> 00:20:57,000 s'interpreta literalment el codi línia per línia per línia. 388 00:20:57,000 --> 00:21:00,000 >> En altres paraules, en lloc d'escriure un programa i executar el programa 389 00:21:00,000 --> 00:21:04,000 directament en el seu lloc escriure un programa amb un arxiu amb extensió. php. 390 00:21:04,000 --> 00:21:09,000 A continuació, s'executa un programa anomenat php.exe, si estàs en Windows, 391 00:21:09,000 --> 00:21:12,000 PHP o simplement si estàs en Mac OS o Linux, 392 00:21:12,000 --> 00:21:17,000 i es proporciona com a entrada al programa PHP seu propi codi font, 393 00:21:17,000 --> 00:21:20,000 i el seu propòsit en la vida és llegir el seu codi de dalt a baix, d'esquerra a dreta, 394 00:21:20,000 --> 00:21:23,000 i fer el que he dit. 395 00:21:23,000 --> 00:21:25,000 >> Vegem el que això voldrà dir sintàcticament. 396 00:21:25,000 --> 00:21:27,000 En PHP tenim condicions. 397 00:21:27,000 --> 00:21:29,000 Aquesta diapositiva és idèntic al que vam veure a la setmana 1 398 00:21:29,000 --> 00:21:33,000 perquè sintàcticament condicions, IFS i IFS else i else en PHP 399 00:21:33,000 --> 00:21:35,000 exactament així. 400 00:21:35,000 --> 00:21:38,000 Quan es tracta d'expressions booleanes que seran exactament així. 401 00:21:38,000 --> 00:21:43,000 Quan es tracta de Anding coses junts com booleans que serà exactament així. 402 00:21:43,000 --> 00:21:46,000 Canvia el mateix aspecte, i vostè té el benefici afegit en PHP 403 00:21:46,000 --> 00:21:51,000 que els interruptors en C només podia encendre un char o int. 404 00:21:51,000 --> 00:21:53,000 No es podia encendre un valor de cadena. 405 00:21:53,000 --> 00:21:55,000 En PHP vostè pot realment tenir una expressió 406 00:21:55,000 --> 00:21:58,000 que és una variable el contingut és una cadena, 407 00:21:58,000 --> 00:22:01,000 i en realitat es pot fer la comparació de cadenes a la forma intuïtiva real, 408 00:22:01,000 --> 00:22:06,000 No punter comparació, per tal de decidir si fer cas i j o una altra cosa. 409 00:22:06,000 --> 00:22:09,000 Veurem que possiblement en poc temps. 410 00:22:09,000 --> 00:22:11,000 >> Loops massa meravellosament són els mateixos. 411 00:22:11,000 --> 00:22:15,000 Per bucles tenen una inicialització, una condició, i un cert nombre de canvis. 412 00:22:15,000 --> 00:22:18,000 Encara que també existeixen bucles en PHP. 413 00:22:18,000 --> 00:22:21,000 És bucles while també existeixen en PHP, 414 00:22:21,000 --> 00:22:26,000 i existeixen matrius en PHP, però aquí és on la sintaxi comença a ser una mica diferent, 415 00:22:26,000 --> 00:22:29,000 però els conceptes són els mateixos, i els conceptes realment són els mateixos 416 00:22:29,000 --> 00:22:32,000 com ho van ser en 0 Setmana amb Scratch. 417 00:22:32,000 --> 00:22:34,000 En primer lloc hi ha el signe $. 418 00:22:34,000 --> 00:22:37,000 Aquesta va ser una decisió de disseny en PHP de manera que qualsevol variable 419 00:22:37,000 --> 00:22:41,000 en PHP de disseny comença amb signe $. 420 00:22:41,000 --> 00:22:46,000 No hi ha més X, I, Z. És ara $ x, $ i, $ Z perquè sí. 421 00:22:46,000 --> 00:22:49,000 És una cosa a tenir en compte, i ara en el costat dret 422 00:22:49,000 --> 00:22:52,000 això és similar a una matriu, 423 00:22:52,000 --> 00:22:54,000 però estem usant claudàtors aquí. 424 00:22:54,000 --> 00:22:57,000 En PHP i JavaScript, ja que finalment veurà, 425 00:22:57,000 --> 00:23:01,000 per declarar una matriu de fer claudàtor obert i tancat claudàtor, 426 00:23:01,000 --> 00:23:04,000 i llavors vostè té una llista separada per comes de valors, ja sigui sencers 427 00:23:04,000 --> 00:23:09,000 o cadenes de caràcters, o el que vulguis, dins d'aquesta expressió hi. 428 00:23:09,000 --> 00:23:11,000 >> Ara, com fem alguna cosa com això en C? 429 00:23:11,000 --> 00:23:16,000 Quina és la sintaxi per declarar estàticament una matriu de nombres coneguts? 430 00:23:16,000 --> 00:23:19,000 Va ser claus, la diferència tan petita aquí, però tant en PHP 431 00:23:19,000 --> 00:23:22,000 i, finalment, que només utilitza JavaScript claudàtors, pel que realment 432 00:23:22,000 --> 00:23:25,000 l'únic detall interessant és el signe $ per al nom de la variable 433 00:23:25,000 --> 00:23:28,000 i també els claudàtors, i hi ha una cosa curiosa 434 00:23:28,000 --> 00:23:32,000 que s'ha omès també al costat de l'esquerra del signe =. 435 00:23:32,000 --> 00:23:36,000 El que cal que hem estat requerint des de fa setmanes? Si. 436 00:23:36,000 --> 00:23:38,000 [Resposta dels estudiants inaudible] 437 00:23:38,000 --> 00:23:41,000 La mida, de manera que no hi ha cap menció de la mida de la matriu. 438 00:23:41,000 --> 00:23:45,000 Francament, no hi ha menció de claudàtors a la banda esquerra 439 00:23:45,000 --> 00:23:47,000 del signe =, i el que més falta en la línia? 440 00:23:47,000 --> 00:23:49,000 Si. >> [Inaudible resposta dels estudiants] 441 00:23:49,000 --> 00:23:52,000 El tipus, així que el que és interessant en particular sobre PHP 442 00:23:52,000 --> 00:23:56,000 és que no és un llenguatge fortament tipat com C és, 443 00:23:56,000 --> 00:23:58,000 i això és inflexible en el sentit que cal dir char, 444 00:23:58,000 --> 00:24:00,000 ha de dir int, ha de dir flotador. 445 00:24:00,000 --> 00:24:03,000 >> Cada vegada que desitgi una variable que ha de dir-li al seu Clang quin tipus és. 446 00:24:03,000 --> 00:24:05,000 PHP és una mica mandrós. 447 00:24:05,000 --> 00:24:08,000 S'escriuen lliurement en el sentit que 448 00:24:08,000 --> 00:24:11,000 vostè pot tenir flotadors i caràcters i cadenes 449 00:24:11,000 --> 00:24:14,000 i INT i així successivament, però el propi idioma 450 00:24:14,000 --> 00:24:17,000 en realitat no importa el que vostè posa dins d'una variable. 451 00:24:17,000 --> 00:24:20,000 No ha d'informar per endavant quin tipus de dades 452 00:24:20,000 --> 00:24:22,000 va en una variable. 453 00:24:22,000 --> 00:24:24,000 És totalment de vostè, així que és agradable 454 00:24:24,000 --> 00:24:27,000 en què vostè no ha de preocupar tant sobre les dades a escriure 455 00:24:27,000 --> 00:24:29,000 i preocupant el que els seus arguments són i així successivament. 456 00:24:29,000 --> 00:24:32,000 Això també significa que, finalment, les funcions en PHP serà capaç de tornar 457 00:24:32,000 --> 00:24:36,000 o bé més d'un int el temps, i un cop que potser en tant 458 00:24:36,000 --> 00:24:40,000 van a tornar un bool, un valor lògic fals, per exemple, per significar que alguna cosa va sortir malament. 459 00:24:40,000 --> 00:24:44,000 Això ens dóna algunes Upsides, sinó que també ens farà per tipus de disseny 460 00:24:44,000 --> 00:24:47,000 una mica més fluix quan es tracta de tipus de dades. 461 00:24:47,000 --> 00:24:50,000 >> Què més cal tenir en compte aquí? 462 00:24:50,000 --> 00:24:54,000 Variables mirar com això, així que $ s = "hola, món". 463 00:24:54,000 --> 00:24:57,000 Aquesta és potser inferir a partir de l'exemple anterior, 464 00:24:57,000 --> 00:24:59,000 i tenim un altre tipus de bucle. 465 00:24:59,000 --> 00:25:02,000 Aquesta realitat ens veurem de tant en tant, ja que és bastant pràctic, 466 00:25:02,000 --> 00:25:04,000 construir un foreach. 467 00:25:04,000 --> 00:25:11,000 En aquest cas, el bucle foreach porta dins dels seus parèntesi 3 paraules típicament, 468 00:25:11,000 --> 00:25:16,000 $ Una cosa en primer lloc, que és el que vols array per iterar sobre els membres, 469 00:25:16,000 --> 00:25:19,000 llavors, literalment, la paraula clau com, a continuació, finalment, 470 00:25:19,000 --> 00:25:21,000 altre nom de variable que pots triar. 471 00:25:21,000 --> 00:25:23,000 Pot ser foo, bar, o element, 472 00:25:23,000 --> 00:25:26,000 i el que aquesta construcció no 473 00:25:26,000 --> 00:25:29,000 és si la matriu $ conté 10 elements 474 00:25:29,000 --> 00:25:34,000 en cada iteració d'aquest conjunt-ho sento, en cada iteració d'aquest bucle 475 00:25:34,000 --> 00:25:37,000 l'element variable anomenada serà actualitzada 476 00:25:37,000 --> 00:25:40,000 per ser el primer element de la matriu, llavors el segon element de la matriu, 477 00:25:40,000 --> 00:25:44,000 a continuació, el tercer element de la matriu, evitant així la necessitat 478 00:25:44,000 --> 00:25:46,000 per fer el suport de notació quadrada lleugerament molest i 479 00:25:46,000 --> 00:25:49,000 $ I a fi d'índex en una matriu. 480 00:25:49,000 --> 00:25:53,000 PHP fa tot aquest treball per vostè i en cada iteració 481 00:25:53,000 --> 00:25:55,000 només et lliura el següent element de la matriu 482 00:25:55,000 --> 00:26:01,000 sense que hagi de conèixer o preocupar-se per la seva posició d'índex numèric. 483 00:26:01,000 --> 00:26:04,000 >> I després, finalment, per ara, no hi ha una altra característica de PHP 484 00:26:04,000 --> 00:26:08,000 que serà enormement útil, especialment quan vam començar la programació al web, 485 00:26:08,000 --> 00:26:10,000 i que es coneix com una matriu associativa. 486 00:26:10,000 --> 00:26:13,000 Els arranjaments que coneixem fins ara com de 20 segons fa 487 00:26:13,000 --> 00:26:17,000 i durant els últims 8 setmanes es indexat numèricament arrays, 488 00:26:17,000 --> 00:26:20,000 tipus d'arranjaments tradicionals, on els índexs són sencers, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, tot el camí cap amunt. 490 00:26:23,000 --> 00:26:25,000 Les matrius associatives són molt més poderosos. 491 00:26:25,000 --> 00:26:28,000 Et permeten tenir claus arbitràries, 492 00:26:28,000 --> 00:26:31,000 índexs arbitraris i valors arbitraris. 493 00:26:31,000 --> 00:26:34,000 Mentre que en una matriu tradicional és 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 en una matriu associativa que pot tenir un índex 495 00:26:37,000 --> 00:26:41,000 o una tecla de foo el valor és bar. 496 00:26:41,000 --> 00:26:46,000 A continuació, pot tenir una altra clau el nom és baz i el valor és qux. 497 00:26:46,000 --> 00:26:49,000 >> Un cop més, estúpids informàtics genèrics noms de les variables aquí, 498 00:26:49,000 --> 00:26:55,000 però el punt és que aquesta sèrie no té suport 0 o suport 1. 499 00:26:55,000 --> 00:26:59,000 Està vegada tindrà suport foo i baz suport. 500 00:26:59,000 --> 00:27:03,000 Això és molt més versàtil en què serem capaços d'associar 501 00:27:03,000 --> 00:27:07,000 paraules amb altres paraules, les claus amb valors completament arbitrària, 502 00:27:07,000 --> 00:27:12,000 i serem capaços d'obtenir aquests valors en el temps constant 503 00:27:12,000 --> 00:27:14,000 per sota de la caputxa del que és un array associatiu 504 00:27:14,000 --> 00:27:16,000 realment és una taula hash. 505 00:27:16,000 --> 00:27:20,000 Recordem que una taula hash li permet posar en alguna entrada 506 00:27:20,000 --> 00:27:25,000 com posar en la paraula David si desitja inserir David en una mena de diccionari, 507 00:27:25,000 --> 00:27:27,000 i després tornar algun valor típicament. 508 00:27:27,000 --> 00:27:29,000 En el cas de l'ortografia, veritable o falsa. 509 00:27:29,000 --> 00:27:33,000 David o qualsevol paraula que estigui o no és al diccionari. 510 00:27:33,000 --> 00:27:36,000 Una matriu associativa és en realitat una taula hash, 511 00:27:36,000 --> 00:27:38,000 però és una encarnació d'usuari molt més amigable d'aquesta. 512 00:27:38,000 --> 00:27:41,000 Com veurem, això permetrà que fem algunes coses 513 00:27:41,000 --> 00:27:43,000 molt, molt fàcilment. 514 00:27:43,000 --> 00:27:45,000 >> Fem una ullada a alguns bàsics PHP 515 00:27:45,000 --> 00:27:47,000 exemples i veure el que podem fer amb aquest llenguatge. 516 00:27:47,000 --> 00:27:51,000 Deixin-me seguir endavant i obrir en el nostre directori d'origen avui 517 00:27:51,000 --> 00:27:54,000 un arxiu anomenat hello1.php. 518 00:27:54,000 --> 00:27:57,000 Aquest arxiu és més un comentari del que és el codi real, 519 00:27:57,000 --> 00:28:00,000 així que realment em tregui tots els comentaris a l'arxiu 520 00:28:00,000 --> 00:28:05,000 i presentar a vostè potser el programa més simple PHP aquí. 521 00:28:05,000 --> 00:28:07,000 5 línies, i alguns dels que són els espais en blanc, 522 00:28:07,000 --> 00:28:09,000 així notar algunes diferències clau aquí. 523 00:28:09,000 --> 00:28:12,000 L'arxiu es diu hello1.php. 524 00:28:12,000 --> 00:28:16,000 La primera línia, però, és 00:28:18,000 D'esperit similar a l'HTML, 526 00:28:18,000 --> 00:28:21,000 seqüència de caràcters que indica a l'ordinador 527 00:28:21,000 --> 00:28:25,000 "Hey, ordinador, aquí ve un programa que estem en en PHP." 528 00:28:25,000 --> 00:28:28,000 S'assegura que no està confós que és algun altre idioma. 529 00:28:28,000 --> 00:28:30,000 Línia 2 és un espai en blanc interessant. 530 00:28:30,000 --> 00:28:32,000 La línia 3 és el nostre vell amic printf, 531 00:28:32,000 --> 00:28:34,000 aquesta vegada en el context de PHP. 532 00:28:34,000 --> 00:28:37,000 PHP té la seva pròpia versió de printf que es comporta exactament igual, 533 00:28:37,000 --> 00:28:39,000 així que això és només voleu imprimir "hola, món". 534 00:28:39,000 --> 00:28:46,000 I llavors aquesta etiqueta contrari aquí,>, significa que és per a mi codi PHP. 535 00:28:46,000 --> 00:28:48,000 >> Anem a veure com manejar això. 536 00:28:48,000 --> 00:28:50,000 Vaig a tornar a la meva finestra de terminal aquí. 537 00:28:50,000 --> 00:28:52,000 Vaig a entrar al meu directori PHP. 538 00:28:52,000 --> 00:28:56,000 Recordeu que tenim un munt d'arxius, el primer dels quals és hello.php. 539 00:28:56,000 --> 00:29:01,000 Deixin-me seguir endavant i executar aquest hello1.php, entrar. 540 00:29:01,000 --> 00:29:03,000 Permís denegat. Bé. 541 00:29:03,000 --> 00:29:06,000 Com ens hem fixat aquest tipus de coses en el passat? 542 00:29:06,000 --> 00:29:08,000 Què és això? >> [Resposta dels estudiants inaudible] 543 00:29:08,000 --> 00:29:11,000 Necessitem llegir i escriure, però em deixa fer ls-l. 544 00:29:11,000 --> 00:29:14,000 Recordi que aquesta sortida una mica críptica qual hello1 545 00:29:14,000 --> 00:29:17,000 sembla ser de lectura i escriptura per mi 546 00:29:17,000 --> 00:29:19,000 però llegible per tots els altres. 547 00:29:19,000 --> 00:29:22,000 Resulta que aquest fet no és un pas en la direcció correcta. 548 00:29:22,000 --> 00:29:25,000 La diferència, de nou, amb un llenguatge interpretat 549 00:29:25,000 --> 00:29:27,000 és que no s'executi el programa directament. 550 00:29:27,000 --> 00:29:30,000 En el seu lloc, iniciar un intèrpret i lliurar el codi 551 00:29:30,000 --> 00:29:33,000 que has escrit perquè pugui interpretar línia per línia. 552 00:29:33,000 --> 00:29:36,000 En aquest cas, l'intèrpret o el programa que s'utilitza voleu executar 553 00:29:36,000 --> 00:29:38,000 és, literalment, anomenat PHP. 554 00:29:38,000 --> 00:29:41,000 >> En algun lloc d'aquest disc dur de la màquina hi ha un programa 555 00:29:41,000 --> 00:29:45,000 algú va escriure anomenat PHP, o en Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 El que vaig a fer aquí és que vaig a córrer realment PHP 557 00:29:48,000 --> 00:29:51,000 però el dóna com un argument de línia d'ordres el codi que he escrit, 558 00:29:51,000 --> 00:29:54,000 i després vaig a allunyar la imatge i prem enter. 559 00:29:54,000 --> 00:29:58,000 S'executa el meu programa per a mi, de dalt a baix, d'esquerra a dreta. 560 00:29:58,000 --> 00:30:01,000 Deixin-me seguir endavant i obrir una variació lleu d'això. 561 00:30:01,000 --> 00:30:05,000 En hello2.php avís que això també 562 00:30:05,000 --> 00:30:08,000 és majoritàriament comentaris, així que anem a desfer-me d'ells com una distracció, 563 00:30:08,000 --> 00:30:13,000 i el que és clarament diferent ara sobre aquest arxiu? 564 00:30:13,000 --> 00:30:15,000 Hi ha una nova línia, una mica críptica a la part superior. 565 00:30:15,000 --> 00:30:20,000 A la línia 1 és #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin és una convenció a Linux i Mac OS per binaris, 567 00:30:24,000 --> 00:30:27,000 de manera que / bin significa que és una carpeta que conté un munt d'arxius binaris 568 00:30:27,000 --> 00:30:29,000 que es programa, una de les quals és PHP. 569 00:30:29,000 --> 00:30:32,000 El #! És anomenat shebang, 570 00:30:32,000 --> 00:30:35,000 que és la forma més ràpida de dir-ho, i el que significa aquest 571 00:30:35,000 --> 00:30:40,000 és que quan s'executa aquest programa ara hi ha una al · lusió a la part superior de l'arxiu 572 00:30:40,000 --> 00:30:44,000 que li diu a l'ordinador quin intèrpret d'usar. 573 00:30:44,000 --> 00:30:47,000 >> Es posa una mica molest si has de dir als seus usuaris i clients 574 00:30:47,000 --> 00:30:50,000 "Hey, escrivim aquest programa anomenat hello1.php". 575 00:30:50,000 --> 00:30:54,000 Tot el que has de fer és córrer PHP per sempre i després el nom d'aquest programa. 576 00:30:54,000 --> 00:30:58,000 Francament, no seria més que agradable per córrer hello1.php, 577 00:30:58,000 --> 00:31:00,000 i, de fet, podem si fem el següent. 578 00:31:00,000 --> 00:31:05,000 Deixin-me seguir endavant i fer ls-l, i l'avís a hello2 encara és només de lectura i escriptura 579 00:31:05,000 --> 00:31:10,000 i després llegir llegir, així que encara no puc fer això, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Però hem introduït aquesta molt breument l'última vegada, la comanda chmod. 581 00:31:15,000 --> 00:31:20,000 Si ho faig chmod a + x, el que significa tot executabilitat plus, 582 00:31:20,000 --> 00:31:26,000 i després hello2.php i després fer ls-l de nou notar el que ha canviat. 583 00:31:26,000 --> 00:31:29,000 Un, Linux em mostra el nom del fitxer en verd per transmetre la idea 584 00:31:29,000 --> 00:31:32,000 que és executable, però que és més important, a la banda esquerra 585 00:31:32,000 --> 00:31:36,000 compte que el bit que representa per x executable ha estat fixada. 586 00:31:36,000 --> 00:31:42,000 El que això significa és ara puc córrer ./hello2.php com de costum, 587 00:31:42,000 --> 00:31:45,000 prem enter, ia causa de tot l'assumpte a la part superior de l'arxiu 588 00:31:45,000 --> 00:31:48,000 que hi ha una pista, un cop més, que diu a Linux 589 00:31:48,000 --> 00:31:51,000 utilitzar aquest intèrpret per executar aquest comandament. 590 00:31:51,000 --> 00:31:54,000 No et preocupis per fer que la persona realment escriure. 591 00:31:54,000 --> 00:31:57,000 >> I el que és bo és que és una cosa irrellevant als meus clients o els meus amics 592 00:31:57,000 --> 00:32:01,000 idioma que vaig escriure aquest programa, així que em pot seguir endavant amb mv 593 00:32:01,000 --> 00:32:04,000 i canviar el nom d'aquesta cosa hello2, per exemple. 594 00:32:04,000 --> 00:32:07,000 I ara si m'ho ./hello2 595 00:32:07,000 --> 00:32:10,000 i allunyar meu programa segueix funcionant. 596 00:32:10,000 --> 00:32:13,000 Aquestes extensions d'arxiu són una convenció humana que cal 597 00:32:13,000 --> 00:32:15,000 per a alguna cosa com Clang i fer de buscar. 598 00:32:15,000 --> 00:32:18,000 Però per a PHP, jo podria anomenar això qualsevol cosa extensió d'arxiu que vull. 599 00:32:18,000 --> 00:32:22,000 Podia enganyar al món fent-li creure que sóc realment bo en Ruby, 600 00:32:22,000 --> 00:32:25,000 i jo podria escriure hello2.rb i després executar-lo, 601 00:32:25,000 --> 00:32:28,000 i llest, ara tinc la versió de Ruby, que és una completa mentida. 602 00:32:28,000 --> 00:32:30,000 No obstant això, les extensions dels arxius no tenen sentit 603 00:32:30,000 --> 00:32:35,000 si l'arxiu és executable i té aquesta pista especial a la part superior de l'arxiu. 604 00:32:35,000 --> 00:32:38,000 >> Ara, en un apart, permetin-me mostrar ràpidament la versió 3, 605 00:32:38,000 --> 00:32:40,000 que és una mena de truc útil conèixer. 606 00:32:40,000 --> 00:32:45,000 En hello3 vaig fer una cosa una mica malament 607 00:32:45,000 --> 00:32:47,000 que vaig a actualitzar la línia de codi font. 608 00:32:47,000 --> 00:32:50,000 En la versió 3, és que en la majoria de sistemes Linux 609 00:32:50,000 --> 00:32:53,000 hi ha un programa anomenat env per al medi ambient, 610 00:32:53,000 --> 00:32:56,000 i el que pots fer aquí és que si vostè no té cap idea d'on PHP 611 00:32:56,000 --> 00:33:00,000 està instal · lat al disc dur local, ja que en realitat podria variar en funció de l'ordinador 612 00:33:00,000 --> 00:33:03,000 que algú està fent servir, env només diu executi env, 613 00:33:03,000 --> 00:33:07,000 que es troba en la majoria dels sistemes, i esbrinar on PHP és. 614 00:33:07,000 --> 00:33:11,000 Només un truc comú pel que no s'ha de preocupar de saber que un programa és. 615 00:33:11,000 --> 00:33:14,000 Però si t'importa per saber on és un programa i no s'ha atès fins ara 616 00:33:14,000 --> 00:33:16,000 pot utilitzar la comanda que. 617 00:33:16,000 --> 00:33:19,000 >> Permetin-me fer un zoom cap a fora i quin tipus php, 618 00:33:19,000 --> 00:33:23,000 i noti que em diu que és en realitat en usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 És una espècie de mentida. També en sortida. 620 00:33:25,000 --> 00:33:27,000 Es m'acaba de mostrar el primer cop. 621 00:33:27,000 --> 00:33:31,000 Si t'has preguntat on Clang és a dir, que Clang, que està en usr / bin / clang, 622 00:33:31,000 --> 00:33:34,000 de fer, usr / bin / make, i el que això significa és que tot aquest temps 623 00:33:34,000 --> 00:33:38,000 que podria haver estat escrivint usr / bin / clang Intro per executar Clang, 624 00:33:38,000 --> 00:33:41,000 però és una mica tediós per fer-ho, de manera que algunes carpetes 625 00:33:41,000 --> 00:33:44,000 com usr / bin bin i se suposa que són valors predeterminats 626 00:33:44,000 --> 00:33:50,000 de manera que l'equip sap de mirar en ells per a vostè. 627 00:33:50,000 --> 00:33:53,000 Qualsevol pregunta sobre com escriure un super, super senzill programa Hello World 628 00:33:53,000 --> 00:33:55,000 en PHP i després l'executa? 629 00:33:55,000 --> 00:33:59,000 Perquè ara començarem a introduir la sintaxi més convincents. 630 00:33:59,000 --> 00:34:01,000 Molt bé, aquí anem. 631 00:34:01,000 --> 00:34:03,000 Aquests programes que hem vist a tots ells abans. 632 00:34:03,000 --> 00:34:07,000 >> Si obro, per exemple, farem beer1.php, 633 00:34:07,000 --> 00:34:09,000 no anirem a través de diverses versions d'això, però el que vaig fer 634 00:34:09,000 --> 00:34:13,000 Em vaig asseure i va vessar o es converteixen 635 00:34:13,000 --> 00:34:15,000 el meu codi C per al codi PHP aquí. 636 00:34:15,000 --> 00:34:18,000 La major part de la part superior de l'arxiu és comentaris aquí. 637 00:34:18,000 --> 00:34:20,000 Resulta que hi ha una nova funció que necessitem anomenada readline. 638 00:34:20,000 --> 00:34:23,000 GetString, el record, des de la setmana 0 en endavant va ser una cosa CS50. 639 00:34:23,000 --> 00:34:27,000 PHP ve amb el seu propi fàcil d'usar funció anomenada readline 640 00:34:27,000 --> 00:34:30,000 que pren un argument que especifica l'indicador 641 00:34:30,000 --> 00:34:33,000 que vol mostrar a l'usuari, i fa el que readline 642 00:34:33,000 --> 00:34:35,000 es retorna tot el que l'usuari escriu polz 643 00:34:35,000 --> 00:34:39,000 En aquest cas, estic declarant una variable anomenada $ n. 644 00:34:39,000 --> 00:34:42,000 Estic emmagatzemant-hi el valor de retorn de readline 645 00:34:42,000 --> 00:34:44,000 després de preguntar a l'usuari amb aquesta cadena. 646 00:34:44,000 --> 00:34:47,000 Simplement còpia de seguretat, per executar realment aquesta cosa, deixa anar per davant 647 00:34:47,000 --> 00:34:50,000 i executar beer1.php php. 648 00:34:50,000 --> 00:34:53,000 Quantes ampolles hi haurà? Anem a fer aquesta vegada 2. 649 00:34:53,000 --> 00:34:55,000 Retorn. Això és tot. 650 00:34:55,000 --> 00:34:59,000 >> El programa és funcionalment idèntica a la versió C de setmanes enrere. 651 00:34:59,000 --> 00:35:01,000 Però sintàcticament anem a veure el que és diferent. 652 00:35:01,000 --> 00:35:05,000 Després d'obtenir un int partir de la notificació d'usuari que estic fent una mica de comprovació d'errors, 653 00:35:05,000 --> 00:35:08,000 i si n és menor que 1 vaig deixar i em imprimir 654 00:35:08,000 --> 00:35:11,000 un missatge no per a l'usuari i amb la sortida 1. 655 00:35:11,000 --> 00:35:13,000 Això també és una mica diferent. 656 00:35:13,000 --> 00:35:16,000  En C, què vam fer? En C vam tornar 1. 657 00:35:16,000 --> 00:35:20,000 En PHP sortir amb 1, que, francament, crec que és una mica més intuïtiu 658 00:35:20,000 --> 00:35:22,000 perquè estàs literalment sortir del programa. 659 00:35:22,000 --> 00:35:25,000 Molt bé, i llavors aquí la cançó molesta és sintàcticament idèntic 660 00:35:25,000 --> 00:35:29,000 a excepció de la variable, de manera que aquí baix, en la línia 24 en endavant 661 00:35:29,000 --> 00:35:31,000 compte del meu bucle for és gairebé el mateix, 662 00:35:31,000 --> 00:35:34,000 però tinc $ davant i i n, 663 00:35:34,000 --> 00:35:37,000 i el que és també falta de la línia 26 que hem tingut en el passat 664 00:35:37,000 --> 00:35:39,000 quan es declara una variable i? 665 00:35:39,000 --> 00:35:41,000 No hi ha cap tipus. 666 00:35:41,000 --> 00:35:43,000 No és correcte dir que en PHP int. 667 00:35:43,000 --> 00:35:45,000 Simplement no cal fer això. 668 00:35:45,000 --> 00:35:48,000 La computadora, l'intèrpret PHP és prou intel · ligent per adonar-se 669 00:35:48,000 --> 00:35:51,000 que si es posa un nombre en $ I aquest serà tractat 670 00:35:51,000 --> 00:35:53,000 com un nombre per a tu. 671 00:35:53,000 --> 00:35:57,000 I aquí ens connecti $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Tot això és el mateix, i llavors aquí fem una "Wow, això és molest" printf 673 00:36:00,000 --> 00:36:02,000 i després sortir (0). 674 00:36:02,000 --> 00:36:05,000 >> Un cop més, el menjar per emportar és que tot i que passarem relativament 675 00:36:05,000 --> 00:36:09,000 poc temps en PHP, sens dubte enfront del que vam fer a C, 676 00:36:09,000 --> 00:36:12,000 que és gairebé el mateix, i així ho farem avui i la setmana que ve 677 00:36:12,000 --> 00:36:14,000 i més enllà és realment centrar-se en algunes de les noves idees. 678 00:36:14,000 --> 00:36:17,000 Només per veure que una altra cosa es tradueix per sobre de C, 679 00:36:17,000 --> 00:36:20,000 Aquest va ser un programa super simple que vam fer a la Setmana 1 680 00:36:20,000 --> 00:36:22,000 o 2 en cubs que un valor. 681 00:36:22,000 --> 00:36:25,000 Però l'interessant en el moment d'aquest programa és que 682 00:36:25,000 --> 00:36:28,000 introduir la noció d'una funció personalitzada escrit que nosaltres mateixos hem escrit. 683 00:36:28,000 --> 00:36:31,000 La sintaxi de PHP és gairebé el mateix. 684 00:36:31,000 --> 00:36:33,000 Aquí està el meu programa fins a la part superior. 685 00:36:33,000 --> 00:36:35,000 Noti un cop més absent és qualsevol noció de principal. 686 00:36:35,000 --> 00:36:39,000 Començo a escriure codi, i això és el que va a aconseguir executat per l'intèrpret. 687 00:36:39,000 --> 00:36:42,000 Puc imprimir x ara és 2, és de suposar. 688 00:36:42,000 --> 00:36:44,000 Llavors em diuen cubicar ... 689 00:36:44,000 --> 00:36:47,000 Llavors crida a la funció cub i passi $ x 690 00:36:47,000 --> 00:36:50,000 i assigni el valor retornat a $ x. 691 00:36:50,000 --> 00:36:53,000 Llavors em diuen que està en cubs, i després em diuen això, que és d'esperar 692 00:36:53,000 --> 00:36:55,000 direm que x és ara 8. 693 00:36:55,000 --> 00:36:59,000 La sintaxi de la funció en PHP és molt lleugerament diferent. 694 00:36:59,000 --> 00:37:01,000 Un cop més falta és el tipus de retorn. 695 00:37:01,000 --> 00:37:05,000 Un cop més falta és el tipus de retorn i també és el que falta un altre tipus? 696 00:37:05,000 --> 00:37:07,000 [Resposta dels estudiants inaudible] 697 00:37:07,000 --> 00:37:10,000 Bé, està bé, això és bo. Anem a tornar a això en un segon. 698 00:37:10,000 --> 00:37:12,000 >> No tenim, per exemple, int aquí. 699 00:37:12,000 --> 00:37:15,000 No tenim, per exemple, han int aquí perquè, de nou, en PHP 700 00:37:15,000 --> 00:37:18,000 simplement no és necessari i no ha de fer això, 701 00:37:18,000 --> 00:37:20,000 sinó que hi ha aquesta nova paraula clau es diu funció. 702 00:37:20,000 --> 00:37:23,000 En PHP és gairebé una mica més clar, perquè quan es desitja una funció 703 00:37:23,000 --> 00:37:26,000 que literalment diuen funció, li dones un nom i una llista separada per comes 704 00:37:26,000 --> 00:37:28,000 si algun dels seus arguments. 705 00:37:28,000 --> 00:37:32,000 No cal dir nul · la o alguna cosa així, i després de retorn és el mateix, 706 00:37:32,000 --> 00:37:35,000 $ A * a * $ $ a. 707 00:37:35,000 --> 00:37:38,000 El que també falta? Sammy assenyalem aquí. 708 00:37:38,000 --> 00:37:43,000 A la part superior de l'arxiu completament absent en PHP també és un prototip. 709 00:37:43,000 --> 00:37:45,000 Això també és per disseny. 710 00:37:45,000 --> 00:37:48,000 Idiomes i intèrprets com PHP són més intel · ligents que mai ho va ser C 711 00:37:48,000 --> 00:37:50,000 en els compiladors com Clang. 712 00:37:50,000 --> 00:37:53,000 >> Recordem que Clang, si no ho dic que existeix cub, 713 00:37:53,000 --> 00:37:56,000 si no ho dic que printf existeix com un prototip 714 00:37:56,000 --> 00:38:00,000 o amb un # include, bé, havia de cridar a vostè i ni tan sols compilar el codi. 715 00:38:00,000 --> 00:38:03,000 PHP i altres idiomes moderns són molt més intel · ligents quan es tracta d'això. 716 00:38:03,000 --> 00:38:07,000 Ells s'encarreguen de llegir a través de tot el codi 717 00:38:07,000 --> 00:38:11,000 i després criden a vostè només si es troba en cap part del cub. 718 00:38:11,000 --> 00:38:15,000 Tant se val si és galleda a la part inferior o la part superior o fins i tot en algun arxiu separat. 719 00:38:15,000 --> 00:38:18,000 Llenguatges PHP i similars són ara prou intel · ligent com per mirar cap endavant 720 00:38:18,000 --> 00:38:26,000 en tot considerant que abans per haver comès un error. 721 00:38:26,000 --> 00:38:28,000 On ens deixa això? 722 00:38:28,000 --> 00:38:32,000 >> Anem a fer un últim exemple aquí a les condicions, 723 00:38:32,000 --> 00:38:35,000 i si obro avís conditions2.php massa 724 00:38:35,000 --> 00:38:37,000 sintaxi aquí és gairebé el mateix. 725 00:38:37,000 --> 00:38:40,000 Estic usant readline en lloc de GetString, però aquesta línia és la mateixa que abans, 726 00:38:40,000 --> 00:38:42,000 "M'agradaria un enter per favor." 727 00:38:42,000 --> 00:38:45,000 Després, hi ha una condició si, una persona si, a continuació, una persona, 728 00:38:45,000 --> 00:38:48,000 però funcionalment aquest programa també és idèntic al que vam fer setmanes enrere, 729 00:38:48,000 --> 00:38:51,000 així que si em quedo això, php de Condiciones2, 730 00:38:51,000 --> 00:38:54,000 i li dono un nombre com 23 - 731 00:38:54,000 --> 00:38:57,000 Vaig triar un nombre positiu. Si li dono -1 vaig agafar un nombre negatiu. 732 00:38:57,000 --> 00:39:00,000 Si li dono 0 Jo a la veritat recollir 0. 733 00:39:00,000 --> 00:39:02,000 Llavors, qui es preocupa de tot això? 734 00:39:02,000 --> 00:39:06,000 Bé, un de la classe de diversió exercicis aquí 735 00:39:06,000 --> 00:39:10,000 almenys per a mi era anar cap enrere i veure la rapidesa amb què podria posar en pràctica pset 5, 736 00:39:10,000 --> 00:39:12,000 el conjunt de processadors faltes d'ortografia. 737 00:39:12,000 --> 00:39:15,000 Recordem que hi havia un arxiu anomenat speller.c, 738 00:39:15,000 --> 00:39:17,000 i hi havia un arxiu anomenat dictionary.c. 739 00:39:17,000 --> 00:39:20,000 El que jo vaig fer va ser una mica gastat uns minuts i em vaig convertir el codi C 740 00:39:20,000 --> 00:39:23,000 de codi PHP, i no anem a passar molt temps en Speller 741 00:39:23,000 --> 00:39:26,000 perquè igual que en el conjunt de processadors 5 vostè realment no necessita 742 00:39:26,000 --> 00:39:29,000 passen molt de temps en ortografia si mateix perquè la seva atenció estava en diccionari. 743 00:39:29,000 --> 00:39:32,000 >> Només cal dir que si vostè llegeix a través d'ortografia, 744 00:39:32,000 --> 00:39:35,000 aquest arxiu aquí, que és més o menys equivalent al codi C 745 00:39:35,000 --> 00:39:37,000 li va donar per pset 5. 746 00:39:37,000 --> 00:39:39,000 Acabo d'afegir una mica de $ en els llocs. 747 00:39:39,000 --> 00:39:43,000 He canviat alguns noms de funció si no existeix en PHP. 748 00:39:43,000 --> 00:39:45,000 Hi ha una cosa addicional aquí, preg_match, 749 00:39:45,000 --> 00:39:48,000 que és la forma una mica més elegant de fer alguna cosa, però anem a tornar a aquest temps. 750 00:39:48,000 --> 00:39:51,000 Però en fi, ortografia és gairebé idèntic, i si ens fixem en la part inferior 751 00:39:51,000 --> 00:39:54,000 el que finalment escup és això aquí, 752 00:39:54,000 --> 00:39:57,000 paraules mal escrites, les paraules en el diccionari, les paraules en el text. 753 00:39:57,000 --> 00:40:00,000 Molt bé, així que l'interessant ara és la següent. 754 00:40:00,000 --> 00:40:05,000 A la part superior del meu arxiu que estic requerint dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Igual que C ha # include PHP permet una cosa anomenada requereixen 756 00:40:09,000 --> 00:40:14,000 que més o menys fa el mateix, requereixen un arxiu anomenat dictionary.php. 757 00:40:14,000 --> 00:40:18,000 Com puc anar sobre l'aplicació pset 5? 758 00:40:18,000 --> 00:40:21,000 Deixin-me seguir endavant i obrir un arxiu aquí. 759 00:40:21,000 --> 00:40:24,000 Permetin-me prendre una petita referència aquí. 760 00:40:24,000 --> 00:40:29,000 I em deixa crear un nou arxiu i començar a trucar a aquest dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Permetin-me dir-ho d'una altra carpeta perquè puguem fer això en viu. 762 00:40:31,000 --> 00:40:33,000 I ara vaig a fer un zoom in 763 00:40:33,000 --> 00:40:37,000 Vaig a començar meu arxiu PHP amb suport obert php tancat suport. 764 00:40:37,000 --> 00:40:40,000 I llavors aquí hi ha algunes funcions que es necessiten per posar en pràctica per pset 5, 765 00:40:40,000 --> 00:40:42,000 així que començarem a aplicar algunes de les persones, 766 00:40:42,000 --> 00:40:47,000 així que la funció de verificació, que va haver de prendre una paraula com a argument. 767 00:40:47,000 --> 00:40:49,000 Farem això i tornar-hi en un moment. 768 00:40:49,000 --> 00:40:53,000 >> Es carrega la funció, que va tenir en el que com un argument? 769 00:40:53,000 --> 00:40:56,000 Diccionari, per la qual cosa l'arxiu que jo realment volia carregar. 770 00:40:56,000 --> 00:41:00,000 Hi havia mida de la funció, que no pren cap argument 771 00:41:00,000 --> 00:41:04,000 i no hi havia funció, què era allò altre? 772 00:41:04,000 --> 00:41:06,000 Unload, que no pren cap argument tampoc. 773 00:41:06,000 --> 00:41:10,000 Aquestes són les 4 funcions que haurien d'aplicar ara en PHP, 774 00:41:10,000 --> 00:41:13,000 i el que vaig a fer és seguir endavant i fer-ho. 775 00:41:13,000 --> 00:41:16,000 Molts de vosaltres utilitza una taula hash en pset 5, 776 00:41:16,000 --> 00:41:21,000 així que vaig a seguir endavant i crear una taula hash en PHP. 777 00:41:21,000 --> 00:41:23,000 Fet. 778 00:41:23,000 --> 00:41:25,000 Això em dóna una taula hash. Bé, per què? 779 00:41:25,000 --> 00:41:30,000 Una, la variable es diu $ taula, només per evocar la idea d'una taula hash. 780 00:41:30,000 --> 00:41:34,000 Els claudàtors, però, recordar, representen què? 781 00:41:34,000 --> 00:41:37,000 Una matriu, però a una matriu PHP no ha de ser indexat numèricament. 782 00:41:37,000 --> 00:41:41,000 També poden ser matrius associatives, 783 00:41:41,000 --> 00:41:44,000 el que significa que vostè pot tenir claus arbitràries i valors. 784 00:41:44,000 --> 00:41:49,000 >> Igual que en pset 5, aquells de vostès que van fer implementacions taula hash 785 00:41:49,000 --> 00:41:53,000 probablement s'insereix la paraula i després s'insereix en una cadena de llistes enllaçades, 786 00:41:53,000 --> 00:41:56,000 o emmagatzemada en algun lloc del valor de veritat o alguna cosa per l'estil. 787 00:41:56,000 --> 00:41:59,000 D'alguna manera recorda el fet que la paraula hi era. 788 00:41:59,000 --> 00:42:01,000 Per ara, això serà la meva taula hash, 789 00:42:01,000 --> 00:42:06,000 i el que ara anar sobre l'aplicació de la funció de comprovació 790 00:42:06,000 --> 00:42:09,000 Només he de mirar dins d'aquesta taula hash 791 00:42:09,000 --> 00:42:11,000 i veure si una paraula hi és. 792 00:42:11,000 --> 00:42:15,000 El que vaig a fer és que vaig a dir si- 793 00:42:15,000 --> 00:42:20,000 diguem isset, que és una funció PHP que literalment vol dir és el conjunt de claus, 794 00:42:20,000 --> 00:42:24,000 així isset ($ taula [$ paraula], 795 00:42:24,000 --> 00:42:29,000 i si és així tornar true. 796 00:42:29,000 --> 00:42:32,000 Això és tot. Això és pset 5 en PHP. 797 00:42:32,000 --> 00:42:34,000 Bé, per ser justos, està bé. 798 00:42:34,000 --> 00:42:37,000 Else return false, de manera que no hi és. 799 00:42:37,000 --> 00:42:39,000 El que realment està passant aquí? 800 00:42:39,000 --> 00:42:42,000 Bé, si la taula de taula o hash aquí més general- 801 00:42:42,000 --> 00:42:46,000 és una matriu associativa que significa que pot indexar-hi 802 00:42:46,000 --> 00:42:50,000 amb una paraula com "paraula", i cal tornar algun valor. 803 00:42:50,000 --> 00:42:52,000 >> Som una espècie d'aconseguir un pas per davant de nosaltres mateixos. 804 00:42:52,000 --> 00:42:56,000 Seria una cosa bonica si en realitat carrega el primer arxiu, 805 00:42:56,000 --> 00:42:58,000 així que la càrrega no és tan simple, però m'ho dius a mi seguir endavant i batre 806 00:42:58,000 --> 00:43:00,000  una implementació molt ràpida de la càrrega. 807 00:43:00,000 --> 00:43:07,000 Deixin-me seguir endavant i dir paraules Diccionari arxiu. 808 00:43:07,000 --> 00:43:10,000 La funció d'arxiu en PHP obre un arxiu 809 00:43:10,000 --> 00:43:12,000 i torna a vostè una gran varietat de totes les paraules en aquest arxiu, 810 00:43:12,000 --> 00:43:14,000 només els dóna a vostès. 811 00:43:14,000 --> 00:43:16,000 Aquest va ser un dolor massa gran, no? 812 00:43:16,000 --> 00:43:21,000 Ara foreach, aquesta és la nostra nova construcció, foreach ($ paraules es $ paraula). 813 00:43:21,000 --> 00:43:25,000 Aquest cicle començarà a iterar sobre les paraules de la matriu 814 00:43:25,000 --> 00:43:30,000 i assignar a la variable $ paraula cada paraula a l'arxiu 815 00:43:30,000 --> 00:43:32,000 des de la primera a la segona a la tercera a la quarta tot el camí 816 00:43:32,000 --> 00:43:35,000 així que no has de fer el molest [i] notació i similars. 817 00:43:35,000 --> 00:43:38,000 I el que estic simplement faràs per cadascuna d'aquestes paraules 818 00:43:38,000 --> 00:43:43,000 es el guardi a la meva taula d'indexació a la taula 819 00:43:43,000 --> 00:43:47,000 i després fent així perquè cal recordar 820 00:43:47,000 --> 00:43:50,000 que una paraula està al meu diccionari l'únic que realment hem de fer 821 00:43:50,000 --> 00:43:55,000 és una espècie de tornada una mica i dir aquesta paraula en la meva taula hash hi és, és cert. 822 00:43:55,000 --> 00:43:58,000 I si no hi és, no he de posar explícitament falsa, 823 00:43:58,000 --> 00:44:01,000 en cas contrari, hauria de posar fals per a totes les paraules possibles en l'univers. 824 00:44:01,000 --> 00:44:05,000 >> És suficient per a mi només per donar un valor d'índex 825 00:44:05,000 --> 00:44:09,000 en true si una paraula està en realitat en el meu taula hash. 826 00:44:09,000 --> 00:44:12,000 Ara, em vaig a tallar un parell de corbes aquí que vaig a agitar les mans menys per ara, 827 00:44:12,000 --> 00:44:15,000 però ara la funció de càrrega es realitza. 828 00:44:15,000 --> 00:44:18,000 Em càrrega totes les paraules a l'arxiu en una matriu. 829 00:44:18,000 --> 00:44:21,000 I iterar sobre aquesta matriu, i per a cada paraula de la matriu 830 00:44:21,000 --> 00:44:24,000 El connecto al meu taula hash amb una línia de codi. 831 00:44:24,000 --> 00:44:26,000 Això és divertit. Saps com es pot implementar mida ara? 832 00:44:26,000 --> 00:44:28,000 Doncs bé, la mida és sempre molt fàcil, per ser justos. 833 00:44:28,000 --> 00:44:32,000 Aquí només puc fer recompte de tornar de taula. 834 00:44:32,000 --> 00:44:34,000 Això és bastant fàcil també, compti el nombre de coses a la taula. 835 00:44:34,000 --> 00:44:36,000 Això és en realitat una mica no és el més eficient. 836 00:44:36,000 --> 00:44:39,000 Probablement hauria de tenir una mida variable anomenada perquè el puguem fer 837 00:44:39,000 --> 00:44:41,000 en temps constant, però això és bastant fàcil. 838 00:44:41,000 --> 00:44:45,000 Ah, i després descàrrega, si de veritat volem ser anal aquí 839 00:44:45,000 --> 00:44:47,000 podem dir que és com es descarrega alguna cosa. 840 00:44:47,000 --> 00:44:49,000 Vostè acaba de fixar una variable igual a un conjunt buit, 841 00:44:49,000 --> 00:44:51,000 i es desfà de tot el que hi era. 842 00:44:51,000 --> 00:44:53,000 No hi ha necessitat de cridar lliure. 843 00:44:53,000 --> 00:44:56,000 >> Un cop més, he tallat alguns revolts, i em disculpo per conjunt de problemes assignant 5 844 00:44:56,000 --> 00:45:00,000 potser al carrer, però si ara seguir endavant i executar això, 845 00:45:00,000 --> 00:45:02,000 Vaig a córrer en realitat la versió que vaig escriure amb antelació 846 00:45:02,000 --> 00:45:05,000 només perquè jo no he comès cap error de sintaxi que sigui. 847 00:45:05,000 --> 00:45:08,000 Deixin-me seguir endavant i executar corrector ortogràfic. L'ús és el mateix. 848 00:45:08,000 --> 00:45:12,000 Aquí hi ha un arxiu de diccionari que només conté la paraula foo. 849 00:45:12,000 --> 00:45:15,000 Aquí hi ha un arxiu de text que conté només foo bar. 850 00:45:15,000 --> 00:45:19,000 Anem a revisar l'ortografia d'això, així ortografia, utilitzant l'arxiu de diccionari a l'arxiu de text. 851 00:45:19,000 --> 00:45:21,000 Hi ha una paraula mal escrita, bar, i llest. 852 00:45:21,000 --> 00:45:23,000 Fet amb pset 5. 853 00:45:23,000 --> 00:45:30,000 Anem a prendre un descans de 5 minuts aquí, i anem a tornar i més en PHP. 854 00:45:30,000 --> 00:45:32,000 D'acord, estem de tornada. 855 00:45:32,000 --> 00:45:34,000 Farem-m'odies per un temps. 856 00:45:34,000 --> 00:45:37,000 Ara anem a veure realment si això no era un positiu 857 00:45:37,000 --> 00:45:39,000 l'aplicació real d'aquesta cosa en PHP. 858 00:45:39,000 --> 00:45:43,000 Per descomptat, ens va prendre 45 segons per implementar. 859 00:45:43,000 --> 00:45:45,000 >> Però seguirem endavant ara i manejar les coses. 860 00:45:45,000 --> 00:45:49,000 Deixin-me seguir endavant i executar una versió de C 861 00:45:49,000 --> 00:45:52,000 d'ortografia, i anem a córrer en un dels majors arxius, 862 00:45:52,000 --> 00:45:54,000 que és la Bíblia King James. 863 00:45:54,000 --> 00:45:57,000 I aquí és on anem a entrar a la nostra carpeta de C, 864 00:45:57,000 --> 00:46:01,000 Speller a King James la 5 ª. 865 00:46:01,000 --> 00:46:03,000 Una gran quantitat de paraules mal escrites. 866 00:46:03,000 --> 00:46:06,000 Molt bé, així que aquesta és la sortida que probablement es va fer encara si els temps són una mica diferents, 867 00:46:06,000 --> 00:46:09,000 si tens tot funcionant correctament, i el temps el que en total per corregir l'ortografia 868 00:46:09,000 --> 00:46:13,000 la Bíblia King James va ser 0,38 segons, així que prou bé amb aquesta implementació. 869 00:46:13,000 --> 00:46:16,000 Ara vaig a anar a la versió de PHP, que acaba d'escriure. 870 00:46:16,000 --> 00:46:18,000 Deixa córrer ortografia a King James. 871 00:46:18,000 --> 00:46:21,000 Vaja, ignorar aquest error. Estic al directori equivocat. 872 00:46:21,000 --> 00:46:24,000 Speller sobre King James la 5 ª. 873 00:46:46,000 --> 00:46:48,000 Ja està gairebé fet. 874 00:46:48,000 --> 00:46:51,000 >> Bé, l'astut observador s'adonarà que era més de 3 segons allà. 875 00:46:51,000 --> 00:46:54,000 Aquest és el veritable temps en funcionament. 876 00:46:54,000 --> 00:46:58,000 Resulta que es necessita temps per escopir gran quantitat de text fora 877 00:46:58,000 --> 00:47:00,000 causa de buffer temes, però de curta llarga història, 878 00:47:00,000 --> 00:47:04,000 que va ser de 3,15 segons de temps de màquina, temps de CPU, 879 00:47:04,000 --> 00:47:07,000 enfront del que era fa un moment? 880 00:47:07,000 --> 00:47:09,000 Igual que 0,3. 881 00:47:09,000 --> 00:47:11,000 Vull dir, és un ordre de magnitud més lent, així que ¿on són aquests 882 00:47:11,000 --> 00:47:14,000 desacceleració ridícul venint? 883 00:47:14,000 --> 00:47:17,000 Doncs bé, com ha estat el cas amb la majoria de les decisions de disseny que hem fet 884 00:47:17,000 --> 00:47:21,000 a la classe durant les últimes 9 setmanes gairebé sempre aquest equilibri. 885 00:47:21,000 --> 00:47:24,000 De vegades, només entre l'espai, de vegades entre l'espai i el temps, 886 00:47:24,000 --> 00:47:27,000 espai, temps i esforç de desenvolupament, i de fet aquí, encara 887 00:47:27,000 --> 00:47:31,000 ens estalviem una gran quantitat de temps, potser potencialment 10.20.30 hores 888 00:47:31,000 --> 00:47:34,000 el temps de desenvolupament de l'aplicació del corrector ortogràfic 889 00:47:34,000 --> 00:47:36,000 amb assots que en tan sols 45 segons amb aquest llenguatge 890 00:47:36,000 --> 00:47:40,000 el preu que es paga és que es tracta d'un ordre de magnitud més lent com a resultat, 891 00:47:40,000 --> 00:47:43,000 i aquest és generalment el cas amb la majoria de qualsevol llenguatge interpretat, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl o altres pel qual 893 00:47:46,000 --> 00:47:49,000 si vostè va a executar a través d'un intèrpret i que es llegeixi el codi 894 00:47:49,000 --> 00:47:52,000 línia per línia, de dalt a baix, d'esquerra a dreta, 895 00:47:52,000 --> 00:47:55,000 intermediari que es va a portar el seu temps propi, 896 00:47:55,000 --> 00:47:59,000 i el que se sent aquí en els 3 segons davant 0,3 segons 897 00:47:59,000 --> 00:48:02,000 és el fet que existeix aquest intermediari que s'ha d'interpretar literalment el nostre codi 898 00:48:02,000 --> 00:48:05,000 línia per línia, i Déu no ho vulgui, si vostè està dins d'un bucle 899 00:48:05,000 --> 00:48:08,000 amb un arxiu enorme que conté centenars de milers de paraules. 900 00:48:08,000 --> 00:48:11,000 >> Aquest recàrrec es va a sumar i sumar i sumar i sumar. 901 00:48:11,000 --> 00:48:16,000 Per obtenir una eina com aquesta probablement no sigui el millor llenguatge a utilitzar per a l'aplicació de 902 00:48:16,000 --> 00:48:20,000 un corrector ortogràfic si immediatesa és d'interès per als seus usuaris i per a tu. 903 00:48:20,000 --> 00:48:23,000 Però el luxe que tenim en aquest moment és si 904 00:48:23,000 --> 00:48:27,000 utilitzar un llenguatge com PHP o una gran quantitat de llenguatges interpretats 905 00:48:27,000 --> 00:48:30,000 en el context de la web, per al cas, que té el benefici 906 00:48:30,000 --> 00:48:34,000 que Internet és molt més lent que la majoria de les computadores. 907 00:48:34,000 --> 00:48:38,000 Vostè té una CPU GHz a l'equip, 2 GHz, potser fins i tot més en aquests dies. 908 00:48:38,000 --> 00:48:41,000 Però la realitat és que a Internet hi ha una gran quantitat de latència 909 00:48:41,000 --> 00:48:45,000 de manera que per a un navegador per parlar amb un servidor, tot i que vam veure la setmana passada 910 00:48:45,000 --> 00:48:47,000 que això és bastant ràpid, la meitat d'una mil · lèsima de segon més o menys, 911 00:48:47,000 --> 00:48:51,000 que també se suma, i si vostè està descarregant coses com una imatge 912 00:48:51,000 --> 00:48:54,000 o una foto de Facebook o rebre missatges instantanis a través de xerrada Facebook, 913 00:48:54,000 --> 00:48:57,000 Gchat o similars, tots d'aquests temps d'anada i tornada 914 00:48:57,000 --> 00:49:00,000 entre el navegador i el servidor d'inici de sumar, 915 00:49:00,000 --> 00:49:03,000 que fa que la seva elecció particular de la llengua en molts casos 916 00:49:03,000 --> 00:49:07,000 no és tan rellevant, pel que està molt bé utilitzar un llenguatge lleugerament més lent 917 00:49:07,000 --> 00:49:10,000 com PHP o Python o Ruby 918 00:49:10,000 --> 00:49:13,000 però per als que no són Upsides grans per a vostè i els seus col · legues 919 00:49:13,000 --> 00:49:17,000 i els seus amics, ja que pot posar en pràctica les coses així, molt més ràpid. 920 00:49:17,000 --> 00:49:20,000 I d'altra banda, té molt menys risc de certs defectes de seguretat. 921 00:49:20,000 --> 00:49:22,000 No hi ha punters en PHP. 922 00:49:22,000 --> 00:49:25,000 No hi ha cap error seg que fàcilment poden induir 923 00:49:25,000 --> 00:49:27,000 de la mateixa manera que es pugui en C. 924 00:49:27,000 --> 00:49:29,000 Amb C que està súper prop del maquinari. 925 00:49:29,000 --> 00:49:33,000 Amb llenguatges PHP i similars que ets una mena de nivell superior, per dir-ho, 926 00:49:33,000 --> 00:49:37,000 amb un munt de defenses entre vostè i el que realment està passant 927 00:49:37,000 --> 00:49:39,000 a l'interior de la màquina, i és només una compensació. 928 00:49:39,000 --> 00:49:42,000 >> Hem arribat al punt de tenir aquests més moderns llenguatges d'alt nivell 929 00:49:42,000 --> 00:49:47,000 com PHP causa de les lliçons apreses en llenguatges com PHP en C. 930 00:49:47,000 --> 00:49:50,000 Però si vostè no entén el que està passant sota la caputxa de tot aquest temps 931 00:49:50,000 --> 00:49:53,000 que sens dubte no pot prendre les decisions de disseny correctes, 932 00:49:53,000 --> 00:49:56,000 i, certament, quan es tracta de treballar en un lloc com Facebook o Google 933 00:49:56,000 --> 00:49:59,000 o en qualsevol d'aquests llocs que són cada vegada més jugant amb grans conjunts de dades 934 00:49:59,000 --> 00:50:01,000 fins i tot si vostè torna i es Premed i estem treballant amb algunes de les EM 935 00:50:01,000 --> 00:50:04,000 en alguns gran conjunt de dades amb pacients i metges 936 00:50:04,000 --> 00:50:08,000 i similars, usant les eines adequades és enormement atractiva 937 00:50:08,000 --> 00:50:11,000 perquè en cas contrari l'anàlisi d'un conjunt de dades pot trigar uns segons, 938 00:50:11,000 --> 00:50:14,000 o que, literalment, pot portar hores. 939 00:50:14,000 --> 00:50:17,000 Aquest és només un exemple, no per frustrar amb quant esforç més 940 00:50:17,000 --> 00:50:21,000 va ser en C, però que l'ajudaran a apreciar que quan es posen en pràctica alguna cosa en C 941 00:50:21,000 --> 00:50:24,000 que realment entenen, o en teoria, comprendre realment 942 00:50:24,000 --> 00:50:28,000 com tot el que és o hauria d'estar treballant, i vostè té un control gairebé complet 943 00:50:28,000 --> 00:50:31,000 sobre el que està passant sota la caputxa, i amb aquests llenguatges d'alt nivell 944 00:50:31,000 --> 00:50:34,000 vostè ha de renunciar a un major control de les persones que els inventats 945 00:50:34,000 --> 00:50:37,000 i estan subjectes més a les seves decisions de disseny que la teva. 946 00:50:37,000 --> 00:50:41,000 Però si donem per fet que el rendiment 947 00:50:41,000 --> 00:50:44,000 no és tan important en la web a causa d'aquestes altres qüestions, 948 00:50:44,000 --> 00:50:47,000 només les velocitats de xarxa són una mica més lent que la velocitat de CPU de tota manera, 949 00:50:47,000 --> 00:50:50,000 perquè puguem triar de permetre el luxe d'utilitzar un llenguatge una mica més lenta 950 00:50:50,000 --> 00:50:55,000 si els upsides són les coses que podem desenvolupar 10 vegades més ràpid o més. 951 00:50:55,000 --> 00:50:57,000 >> Anem a veure com podem començar a utilitzar això. 952 00:50:57,000 --> 00:51:00,000 Deixa anar a una carpeta 953 00:51:00,000 --> 00:51:03,000 entre els exemples d'avui en dia anomenat frosh.ims, 954 00:51:03,000 --> 00:51:06,000 i això va ser realment personalment motivat pel fet que la primera cosa 955 00:51:06,000 --> 00:51:10,000 Vaig escriure per al web anys enrere després de prendre CS50 CS51 i 956 00:51:10,000 --> 00:51:14,000 és un lloc web per al programa de missatges instantanis Frosh, esports intramurs de primer any, 957 00:51:14,000 --> 00:51:16,000 que en aquest moment es tractava de bastants anys enrere, que en el moment 958 00:51:16,000 --> 00:51:19,000 no hi havia lloc per al programa, tot i que hi havia una web, 959 00:51:19,000 --> 00:51:22,000 i en el seu lloc hi havia un vigilant a Wigglesworth com si volgués 960 00:51:22,000 --> 00:51:26,000 per registrar-se per el voleibol o el futbol o el que vostè podria omplir un full de paper. 961 00:51:26,000 --> 00:51:28,000 A continuació, es camina pel pati. 962 00:51:28,000 --> 00:51:31,000 A continuació, podria trucar a la seva porta i llisquen a la seva porta oa la mà al procurador 963 00:51:31,000 --> 00:51:34,000 un tros de paper amb el seu nom en ell, siguin o no vols ser el capità de l'equip, 964 00:51:34,000 --> 00:51:37,000 Quin esport et volia fer, i el que es polz dormitori 965 00:51:37,000 --> 00:51:39,000 Era una mena de camí de la vella escola de fer les coses, i això va ser una de les principals 966 00:51:39,000 --> 00:51:41,000 oportunitat per automatitzar una gran part d'aquest procés. 967 00:51:41,000 --> 00:51:43,000 Vostè només ha d'anar a la pàgina web. Escrius alguna cosa polz 968 00:51:43,000 --> 00:51:46,000 Vostè rep un correu electrònic de confirmació, i el braç, ja està fet. 969 00:51:46,000 --> 00:51:49,000 >> Aquesta va ser la primera cosa que vaig fer, encara que en un llenguatge anomenat Pearl, 970 00:51:49,000 --> 00:51:52,000 però és relativament fàcil de fer en PHP, i això és una mena de representant 971 00:51:52,000 --> 00:51:55,000 dels problemes que vostè pot començar a resoldre quan pot expressar 972 00:51:55,000 --> 00:51:58,000 programació i no haver de dependre de coses com els llocs de Google 973 00:51:58,000 --> 00:52:01,000 o Excel o eines que es lliuren a tu. 974 00:52:01,000 --> 00:52:03,000 Vostès tenen ara la capacitat de fer coses com aquesta. 975 00:52:03,000 --> 00:52:06,000 Aquesta és una versió super lleig d'un formulari, 976 00:52:06,000 --> 00:52:09,000 però utilitzarem per a l'inici de la conversa mitjançant el qual es tracta de 977 00:52:09,000 --> 00:52:12,000 més o menys quina és la forma que semblava anys enrere per a nosaltres 978 00:52:12,000 --> 00:52:14,000 perquè les persones en la web per inscriure en Frosh missatges instantanis. 979 00:52:14,000 --> 00:52:18,000 Ens preguntem per un nom, una casella de verificació per saber si són o no volia ser capità, 980 00:52:18,000 --> 00:52:21,000 home o dona, i llavors, què dormitori en què estaven, 981 00:52:21,000 --> 00:52:23,000 i llavors s'enviï aquest formulari. 982 00:52:23,000 --> 00:52:27,000 Vegem primer sota la caputxa en el codi HTML que representa aquesta pàgina web. 983 00:52:27,000 --> 00:52:31,000 Déjame entrar froshims0, 984 00:52:31,000 --> 00:52:35,000 i en un apart, per pset 7 estic donant per fet 985 00:52:35,000 --> 00:52:37,000 els directoris i carpetes dels que estic posant les coses polz 986 00:52:37,000 --> 00:52:40,000 Li guiarem a través de coses exactament on ha d'anar a l'aparell, 987 00:52:40,000 --> 00:52:43,000 les comandes de mod que ha de córrer, així que no et preocupis per tot el 988 00:52:43,000 --> 00:52:46,000 detalls estúpids sincronització des del primer moment aquí. 989 00:52:46,000 --> 00:52:49,000 >> Molt bé, aquí està froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Permetin-me desplaçar-se cap avall, i el que és curiós aquí, 991 00:52:52,000 --> 00:52:56,000 s'indiquen fitxers PHP, però el que hi ha dins d'ella, amb claredat? 992 00:52:56,000 --> 00:52:59,000 És un munt d'HTML, PHP, i de fet els seus orígens 993 00:52:59,000 --> 00:53:02,000 realment eren per ser un llenguatge centrat en la web. 994 00:53:02,000 --> 00:53:04,000 Fa un moment l'utilitzem per posar en pràctica l'exemple de la cervesa, 995 00:53:04,000 --> 00:53:07,000 les condicions exemple, l'exemple hola, i això està bé. 996 00:53:07,000 --> 00:53:11,000 Podeu utilitzar PHP com a llenguatge de scripting 997 00:53:11,000 --> 00:53:15,000 on un script és en realitat la nomenclatura donada a un programa ràpid i brut 998 00:53:15,000 --> 00:53:19,000 o alguna cosa que s'escriu en un guió o més generalment un llenguatge interpretat. 999 00:53:19,000 --> 00:53:22,000 PHP és super útil per als que ja has vist amb quina rapidesa 1000 00:53:22,000 --> 00:53:24,000 relativament podem avivar programes en PHP. 1001 00:53:24,000 --> 00:53:27,000 Però va ser dissenyat realment per ser utilitzat per a la Web, 1002 00:53:27,000 --> 00:53:31,000 i dissenyat per a la Web, en el sentit que notar aquí a la part superior de l'arxiu 1003 00:53:31,000 --> 00:53:34,000 Començo amb 00:53:38,000 Llavors tinc un munt de comentaris inútils, és cert, però llavors tanco manera PHP. 1005 00:53:38,000 --> 00:53:41,000 Però després em deixi caure en mode HTML. 1006 00:53:41,000 --> 00:53:45,000 >> El que és interessant sobre PHP és tot i que l'arxiu acabat en. Php 1007 00:53:45,000 --> 00:53:48,000 és generalment destinat a ser barrejats amb HTML, 1008 00:53:48,000 --> 00:53:50,000 una mica de codi PHP, alguna cosa d'HTML. 1009 00:53:50,000 --> 00:53:53,000 I anem a veure amb el temps que podem començar a burlar-aquells a part 1010 00:53:53,000 --> 00:53:56,000 i mantenir la nostra HTML PHP separat del nostre conjunt, 1011 00:53:56,000 --> 00:53:59,000 però els orígens de PHP realment et donés aquesta flexibilitat, 1012 00:53:59,000 --> 00:54:02,000 que si vols alguna cosa d'HTML només l'escriu, i que serà 1013 00:54:02,000 --> 00:54:04,000 escopir idèntica al navegador. 1014 00:54:04,000 --> 00:54:07,000 Però si vostè necessita una mica de tècnica de programació, 1015 00:54:07,000 --> 00:54:12,000 algun codi de programació, també es pot posar a l'arxiu exactament el mateix, com aviat veurem. 1016 00:54:12,000 --> 00:54:14,000 Aquí està el meu HTML. 1017 00:54:14,000 --> 00:54:16,000 Tinc un títol d'aquest Frosh per missatges instantanis. 1018 00:54:16,000 --> 00:54:20,000 Tinc un cos de l'etiqueta que té una mica de CSS en el mateix centre de tot al centre, 1019 00:54:20,000 --> 00:54:23,000 i després per aquí Tinc un formulari que pel que sembla serà presentat 1020 00:54:23,000 --> 00:54:27,000 en un nou arxiu anomenat register0.php, així que ja veurem això en un moment. 1021 00:54:27,000 --> 00:54:31,000 Es tracta d'utilitzar un mètode anomenat post, que tornarem a també. 1022 00:54:31,000 --> 00:54:34,000 Llavors tinc algunes entrades de formulari, un nom anomenat, el tipus és text, 1023 00:54:34,000 --> 00:54:37,000 un el nom és el capità, el tipus és checkbox, 1024 00:54:37,000 --> 00:54:40,000 i això, no ho hem vist abans, però fa exactament el que diu. 1025 00:54:40,000 --> 00:54:42,000 Vostè rebrà una casella de verificació en lloc d'un quadre de text. 1026 00:54:42,000 --> 00:54:46,000 Aquí sota tens un botó de ràdio, que és un d'aquests botons circulars 1027 00:54:46,000 --> 00:54:48,000 que vostè pot triar aquest o aquell. 1028 00:54:48,000 --> 00:54:52,000 >> Recordeu que és deliberat que em va donar els dos botons de ràdio el nom del gènere. 1029 00:54:52,000 --> 00:54:55,000 Aquesta és la forma d'aconseguir l'exclusió mútua mitjançant el qual vostè ha de fer clic a 1030 00:54:55,000 --> 00:54:58,000 ja sigui aquest o aquell, i fent clic en l'altre 1031 00:54:58,000 --> 00:55:01,000 es desactiva l'altra, així que cal donar-los el mateix nom 1032 00:55:01,000 --> 00:55:03,000 si li agradaria que fossin mútuament excloents així. 1033 00:55:03,000 --> 00:55:07,000 I després, per dormitori, jo no crec que hàgim vist encara, però es tracta d'una selecta carta, un menú desplegable. 1034 00:55:07,000 --> 00:55:09,000 L'etiqueta perquè es selecciona. 1035 00:55:09,000 --> 00:55:11,000 A continuació, donar el menú desplegable un nom, 1036 00:55:11,000 --> 00:55:13,000 i llavors vostè té un munt d'aquestes opcions. 1037 00:55:13,000 --> 00:55:16,000 La primera, només per estètica, és una cadena buida. 1038 00:55:16,000 --> 00:55:20,000 Jo només volia el menú desplegable per estar en blanc per defecte, 1039 00:55:20,000 --> 00:55:22,000 i després hi Apley, Canaday, Grays, i així successivament. 1040 00:55:22,000 --> 00:55:24,000 I noti la dicotomia aquí. 1041 00:55:24,000 --> 00:55:27,000 L'opció del menú desplegable té un valor, 1042 00:55:27,000 --> 00:55:30,000 però llavors té un nom humà amb nens, que en aquest exemple 1043 00:55:30,000 --> 00:55:33,000 és idèntica, però si de veritat volia ser anal tenim podia 1044 00:55:33,000 --> 00:55:36,000 el valor d'aquest menú desplegable només ser la versió curta, 1045 00:55:36,000 --> 00:55:39,000 Grays, però podríem dir Grisos Hall que l'ésser humà realment veu, 1046 00:55:39,000 --> 00:55:43,000 però això no és tan interessant, així que em va mantenir simple i els va fer iguals. 1047 00:55:43,000 --> 00:55:46,000 A continuació, en el fons tenim un botó d'enviament 1048 00:55:46,000 --> 00:55:49,000 el que hem vist abans, però noto que només ens va donar una paraula diferent. 1049 00:55:49,000 --> 00:55:53,000 En lloc de buscar CS50 li vaig donar l'etiqueta de "Registre". 1050 00:55:53,000 --> 00:55:56,000 >> El resultat final és la pàgina aquí, i de nou, 1051 00:55:56,000 --> 00:56:00,000 On es presentarà a? 1052 00:56:00,000 --> 00:56:04,000 Es posa sotmesa a algun arxiu, el valor de l'atribut d'acció, 1053 00:56:04,000 --> 00:56:07,000 que era register0.php. 1054 00:56:07,000 --> 00:56:09,000 Anem a veure el que realment passa aquí. 1055 00:56:09,000 --> 00:56:13,000 Deixin-me seguir endavant i omplir el formulari, per exemple David, 1056 00:56:13,000 --> 00:56:16,000 mascle, Matthews, a continuació, vaig a dir registra't. 1057 00:56:16,000 --> 00:56:18,000 Permetin-me allunyar la imatge i feu clic a registrar-se. 1058 00:56:18,000 --> 00:56:22,000 Bé, alguna cosa inútil, però anem a veure el que realment està passant. 1059 00:56:22,000 --> 00:56:26,000 Tingueu en compte que la URL ha canviat per ser register0.php. 1060 00:56:26,000 --> 00:56:34,000 Què és curiosament absent de la URL, però, tot i que acaba d'enviar un formulari? 1061 00:56:34,000 --> 00:56:37,000 [Resposta dels estudiants inaudible] 1062 00:56:37,000 --> 00:56:39,000 Bé, això és ser amable usuari Chrome en aquests dies. 1063 00:56:39,000 --> 00:56:42,000 Això és realment allà. Acaben d'ocultar per estalviar espai. 1064 00:56:42,000 --> 00:56:44,000 Però el pensament bo, bon pensament. 1065 00:56:44,000 --> 00:56:46,000 Cap al altre extrem de la URL, però, el que falta? Si. 1066 00:56:46,000 --> 00:56:48,000 [Estudiant] La cadena de consulta. 1067 00:56:48,000 --> 00:56:51,000 La cadena, de manera que recordem dels nostres exemples senzills de cerca de Google. 1068 00:56:51,000 --> 00:56:54,000 Així que feu clic al botó d'enviar la URL 1069 00:56:54,000 --> 00:57:00,000 em va portar a Google, però després estava? q = ciències de la computació o el que sigui que jo havia escrit polz 1070 00:57:00,000 --> 00:57:04,000 Això és perquè utilitzem el mètode get amb l'exemple de recerca. 1071 00:57:04,000 --> 00:57:06,000 >> Aquesta vegada estem usant el mètode que en el seu lloc? 1072 00:57:06,000 --> 00:57:10,000 Publicar, i una de les distincions immediates 1073 00:57:10,000 --> 00:57:14,000 entre GET i POST és que després no posa la entrada de l'usuari a la URL. 1074 00:57:14,000 --> 00:57:16,000 És l'oculta. Encara l'envia. 1075 00:57:16,000 --> 00:57:19,000 De fet, el que estem veient en el navegador d'aquí, com anem a revelar en un moment 1076 00:57:19,000 --> 00:57:22,000 observant register0, és que estic sol veure el contingut 1077 00:57:22,000 --> 00:57:25,000 de la matriu que es van presentar des del navegador al servidor. 1078 00:57:25,000 --> 00:57:29,000 Però l'URL no té un?, No té cap paraula clau 1079 00:57:29,000 --> 00:57:31,000 o valors en ella, i per què és això? 1080 00:57:31,000 --> 00:57:35,000 Bé, després li permet enviar encara les dades del formulari a un servidor, 1081 00:57:35,000 --> 00:57:38,000 però no ho posa a la URL, així que quin tipus d'informació és post 1082 00:57:38,000 --> 00:57:41,000 particularment apropiat per potser quan vostè està demanant a l'usuari 1083 00:57:41,000 --> 00:57:44,000 escrigui en l'entrada a un formulari? 1084 00:57:44,000 --> 00:57:48,000 Una cosa així com una contrasenya, una mena de què més? 1085 00:57:48,000 --> 00:57:50,000 Números de targetes de crèdit. 1086 00:57:50,000 --> 00:57:53,000 Qualsevol cosa que sigui mitjanament sensible que probablement no vols acabar a la URL 1087 00:57:53,000 --> 00:57:56,000 si més no perquè significa que el seu company de quart o membre de la família només pot trolling a través de 1088 00:57:56,000 --> 00:57:59,000 seu historial d'Internet i, a continuació, literalment, veure les contrasenyes, 1089 00:57:59,000 --> 00:58:02,000 literalment veure els seus números de targeta de crèdit, perquè la majoria dels navegadors 1090 00:58:02,000 --> 00:58:05,000 Recordo que en la història el que les adreces URL que has estat en, 1091 00:58:05,000 --> 00:58:09,000 de manera que si només perquè això seria una mala idea. 1092 00:58:09,000 --> 00:58:11,000 Ús de cuirs missatge que detallen per part de l'usuari. 1093 00:58:11,000 --> 00:58:14,000 >> A més, com pujar una foto a Facebook? 1094 00:58:14,000 --> 00:58:17,000 Bé, els únics dos mecanismes que realment es pot utilitzar, 1095 00:58:17,000 --> 00:58:21,000 encara que hi ha alguns altres més complexes, és GET i POST. 1096 00:58:21,000 --> 00:58:26,000 Com pujar una foto possiblement a través d'una URL? 1097 00:58:26,000 --> 00:58:28,000 En realitat es pot fer. 1098 00:58:28,000 --> 00:58:30,000 Vostè pot prendre un mapa de bits o JPEG o GIF i es pot representar en hexadecimal 1099 00:58:30,000 --> 00:58:32,000 o alguna cosa que es diu base 64. 1100 00:58:32,000 --> 00:58:35,000 En lloc de base 16 s'utilitza la base 64, que essencialment s'assembla 1101 00:58:35,000 --> 00:58:38,000 Caràcters ASCII, i de fet pots pujar una foto a través d'una URL 1102 00:58:38,000 --> 00:58:41,000 després d'un signe d'interrogació, però en general hi ha límits de mida. 1103 00:58:41,000 --> 00:58:44,000 La majoria dels navegadors forçar URL a ser no més de 1.000 caràcters, 1104 00:58:44,000 --> 00:58:47,000 potser 2.000 caràcters o similars, de manera que no es pot carregar 1105 00:58:47,000 --> 00:58:50,000 octubre 1 MB de fotos de Facebook. 1106 00:58:50,000 --> 00:58:54,000 Perquè s'utilitza després també, així que per ara es posa els paràmetres a la URL, 1107 00:58:54,000 --> 00:58:57,000 la qual cosa és bo i útil de vegades, però per res sensible o gran 1108 00:58:57,000 --> 00:58:59,000 lloc és el camí a seguir. 1109 00:58:59,000 --> 00:59:02,000 Què fa en realitat register0 aquí? 1110 00:59:02,000 --> 00:59:05,000 Bé, si obro register0 avís que es tracta d'una simple pàgina super, 1111 00:59:05,000 --> 00:59:09,000 però està demostrant el fet que puc de barrejar, per bé o per mal, 1112 00:59:09,000 --> 00:59:12,000 HTML amb PHP. 1113 00:59:12,000 --> 00:59:15,000 Aquest arxiu complet, a excepció dels comentaris a la part superior, són HTML 1114 00:59:15,000 --> 00:59:19,000 a excepció d'aquest tipus aquí. 1115 00:59:19,000 --> 00:59:22,000 >> Observeu en el medi de la meva codi PHP, 1116 00:59:22,000 --> 00:59:26,000 a la meitat de la meva HTML, tinc sort de forma temporal 1117 00:59:26,000 --> 00:59:28,000 entrat en la manera PHP. 1118 00:59:28,000 --> 00:59:31,000 Vaig a trucar a una cosa anomenada impressió r. 1119 00:59:31,000 --> 00:59:34,000 Això significa imprimir recursiva, i el que fa és que imprimeix de forma recursiva 1120 00:59:34,000 --> 00:59:38,000 qualsevol variable de donar, punt i coma, fins a la sortida PHP manera. 1121 00:59:38,000 --> 00:59:40,000 I l'etiqueta pre li dóna pretext amb format, 1122 00:59:40,000 --> 00:59:43,000 text mico espai perquè cada espai que realment veure-ho. 1123 00:59:43,000 --> 00:59:46,000 No desapareix. Què és el missatge? 1124 00:59:46,000 --> 00:59:48,000 Bé, el que és interessant i convincent sobre PHP 1125 00:59:48,000 --> 00:59:52,000 és que cada vegada que envieu un formulari utilitzant get o post 1126 00:59:52,000 --> 00:59:56,000 qualsevol cosa que s'envia a vostè per un navegador 1127 00:59:56,000 --> 01:00:00,000 PHP mateix s'adona del que aquestes parelles de valors clau són, 1128 01:00:00,000 --> 01:00:02,000 s'adona que si hi ha signes d'igual, es dóna compte que si hi ha un signe d'interrogació. 1129 01:00:02,000 --> 01:00:07,000 Ho fa tot el treball dur per vostè, i després se li lliura una matriu associativa 1130 01:00:07,000 --> 01:00:10,000 conté tot el que l'usuari va escriure en el formulari. 1131 01:00:10,000 --> 01:00:12,000 Bé, què camps d'aquest formulari té? 1132 01:00:12,000 --> 01:00:14,000 >> Tenia quatre camps. 1133 01:00:14,000 --> 01:00:16,000 Es tractava d'un camp de text anomenat nom. 1134 01:00:16,000 --> 01:00:18,000 Un d'ells era una casella de verificació anomenada capità. 1135 01:00:18,000 --> 01:00:22,000 Un d'ells era un botó de ràdio anomenat gènere, 1136 01:00:22,000 --> 01:00:24,000 i un era un menú desplegable anomenat dormitori, 1137 01:00:24,000 --> 01:00:27,000 per notarà quan imprimeixo recursivament 1138 01:00:27,000 --> 01:00:29,000 el contingut d'aquesta variable especial. 1139 01:00:29,000 --> 01:00:34,000 Aquesta és una variable global anomenada especial, literalment, $ _POST, en majúscules. 1140 01:00:34,000 --> 01:00:39,000 Aquesta és una variable global especial que PHP només crea per a vostè 1141 01:00:39,000 --> 01:00:42,000 i les mans a vostè perquè vostè pot tenir accés a tot 1142 01:00:42,000 --> 01:00:45,000 que es va presentar a través d'un formulari per un usuari. 1143 01:00:45,000 --> 01:00:48,000 I cridant r impressió-hi, vostè no faria això en una aplicació normal. 1144 01:00:48,000 --> 01:00:50,000 Estem fent això per observar l'interior d'aquesta variable, 1145 01:00:50,000 --> 01:00:53,000 i el que hi ha dins d'ell, bé, 4 tecles, 1146 01:00:53,000 --> 01:00:56,000 4 http paràmetres, per dir-ho, 1147 01:00:56,000 --> 01:00:59,000 nom, capità, sexe, residència d'estudiants, i després els valors que l'usuari 1148 01:00:59,000 --> 01:01:01,000 introduir amb una excepció. 1149 01:01:01,000 --> 01:01:03,000 Vaig tipus D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Vaig revisar la caixa, però, per als homes, que pel que sembla va presentar un valor 1151 01:01:05,000 --> 01:01:07,000 de poc m per ser succint. 1152 01:01:07,000 --> 01:01:10,000 >> Quan seleccioneu Matthews aquest és el valor que he seleccionat, 1153 01:01:10,000 --> 01:01:12,000 i aquest és una mica estúpid, però és la convenció. 1154 01:01:12,000 --> 01:01:17,000 Quan em vaig registrar, la caixa, el valor on, "on", va quedar sotmès a la casella de verificació. 1155 01:01:17,000 --> 01:01:21,000 Si jo no ho havia comprovat, sense valor hauria estat enviat alguna. 1156 01:01:21,000 --> 01:01:26,000 Això se'ns acaba de donar idees sobre el que hi ha dins d'aquesta variable global especial, 1157 01:01:26,000 --> 01:01:29,000 i és tan especial que s'anomena una variable global super. 1158 01:01:29,000 --> 01:01:33,000 Hi ha a tot arreu perquè dins del seu codi de manera que en realitat es pot accedir a ell. 1159 01:01:33,000 --> 01:01:36,000 Això no és tan convincent, així que farem servir en realitat la superfície mundial 1160 01:01:36,000 --> 01:01:38,000 i realment tractar de registrar a algú. 1161 01:01:38,000 --> 01:01:41,000 En froshims1 vaig a fer un canvi. 1162 01:01:41,000 --> 01:01:44,000 Vaig a canviar l'acció a ser register1.php, 1163 01:01:44,000 --> 01:01:46,000 i estic fent una altra cosa. 1164 01:01:46,000 --> 01:01:48,000 Jo estava una mica avergonyit per la qualitat de la meva pàgina web allà. 1165 01:01:48,000 --> 01:01:52,000 És bastant horrible, de veritat, per la qual cosa resulta 1166 01:01:52,000 --> 01:01:56,000 que es pot utilitzar molt fàcilment a la web 1167 01:01:56,000 --> 01:01:59,000 aliè JavaScript, CSS altres persones 1168 01:01:59,000 --> 01:02:02,000 que he escrit i de codi obert i està disponible com una biblioteca, 1169 01:02:02,000 --> 01:02:06,000 per així dir-ho, i per exemple, aquí estic usant una biblioteca de lliure accés, 1170 01:02:06,000 --> 01:02:08,000 un munt de codi que algú més va escriure. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter va passar a escriure aquest codi, i es diu la biblioteca d'arrencada, 1172 01:02:11,000 --> 01:02:15,000 i és només un munt de fulls d'estil CSS, un munt de. css 1173 01:02:15,000 --> 01:02:19,000 que algú més va escriure i descobert la manera d'obtenir totes les coses bones i bonic 1174 01:02:19,000 --> 01:02:22,000 perquè la gent com nosaltres pot preocupar una mica menys per l'estètica i centrar molt més 1175 01:02:22,000 --> 01:02:24,000 en la lògica i la programació real. 1176 01:02:24,000 --> 01:02:30,000 Per la seva vinculació amb aquesta etiqueta, que és la mateixa etiqueta solia recordar per styles3.css abans, 1177 01:02:30,000 --> 01:02:34,000 Ara tinc accés a un arxiu anomenat bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min només significa que l'han minified i s'han desfet de tots els espais en blanc i així successivament 1179 01:02:37,000 --> 01:02:40,000 només per assegurar-se que no m'estan enviant més bytes del que realment necessita. 1180 01:02:40,000 --> 01:02:45,000 Però hi ha un munt de CSS, així que si ara obrir la versió 1 de Frosh IMS 1181 01:02:45,000 --> 01:02:49,000 adonar que el meu arxiu és definitivament més bonica. 1182 01:02:49,000 --> 01:02:54,000 Ara és encara només en blanc i negre, però noti que amb sols recórrer el seu full d'estil 1183 01:02:54,000 --> 01:02:58,000 i l'ús de certs trets d'ella en la meva manera no és sorprenent, 1184 01:02:58,000 --> 01:03:01,000 però sens dubte és més net que abans, i el projector no està fent justícia. 1185 01:03:01,000 --> 01:03:05,000 Hi ha petites línies de color gris al voltant dels botons i de tot el camp de text de la dreta aquí, 1186 01:03:05,000 --> 01:03:07,000 però sens dubte és més net del que era abans. 1187 01:03:07,000 --> 01:03:09,000 >> Ara, per ser justos, jo vaig haver de canviar la meva marcat una mica. 1188 01:03:09,000 --> 01:03:12,000 Aquesta és la versió 1, així que he utilitzat algunes etiquetes noves, 1189 01:03:12,000 --> 01:03:17,000 i honestament, no tenia ni idea de com fer això fins que vaig llegir la documentació 1190 01:03:17,000 --> 01:03:20,000 per a la biblioteca d'arrencada de Twitter, i em van dir que si vols utilitzar la nostra biblioteca 1191 01:03:20,000 --> 01:03:23,000 utilitzar un element fieldset dins de la seva forma, 1192 01:03:23,000 --> 01:03:27,000 posar la paraula que voleu mostrar al costat d'un camp dins d'una etiqueta de l'etiqueta, 1193 01:03:27,000 --> 01:03:30,000 després donar-li a la seva entrada un nom, igual que abans, 1194 01:03:30,000 --> 01:03:34,000 i després per la casella de verificació, no només vostè s'embolica en un element label, 1195 01:03:34,000 --> 01:03:36,000 utilitza una cosa anomenada una classe, així que no hem vist això abans, 1196 01:03:36,000 --> 01:03:39,000 però veuràs això en un conjunt de processadors de pantalons curts de 7. 1197 01:03:39,000 --> 01:03:43,000 Una classe en CSS li permet fer una cosa molt semblant a la identificació, 1198 01:03:43,000 --> 01:03:46,000 però abans, quan teníem una identificació amb el símbol # 1199 01:03:46,000 --> 01:03:48,000 que era per un i només únic element. 1200 01:03:48,000 --> 01:03:51,000 El millor d'una classe és que diversos elements poden tenir la mateixa classe 1201 01:03:51,000 --> 01:03:54,000 o el mateix material CSS aplicat a ell. 1202 01:03:54,000 --> 01:03:57,000 >> Però, de nou, més d'aquells en el curt, i la resta d'aquest és copiar i enganxar 1203 01:03:57,000 --> 01:04:00,000 de la documentació en la qual he afegit una etiqueta aquí i allà. 1204 01:04:00,000 --> 01:04:03,000 I al final, perquè he inclòs l'etiqueta a la part superior, 1205 01:04:03,000 --> 01:04:06,000 tot es veu més bonic automàticament 1206 01:04:06,000 --> 01:04:10,000 simplement per haver marcat la meva pàgina d'una manera que 1207 01:04:10,000 --> 01:04:12,000 Twitter s'esperava, i hi ha tantes maneres diferents 1208 01:04:12,000 --> 01:04:14,000 d'aquesta manera, i això és de fet molt apropiat. 1209 01:04:14,000 --> 01:04:17,000 En aquest punt en el semestre, com es veurà en les especificacions del conjunt de processadors 7, 1210 01:04:17,000 --> 01:04:20,000 Googling voltant, llegint sobre les biblioteques, l'ús de CSS dels altres 1211 01:04:20,000 --> 01:04:23,000 i JavaScript per solucionar els problemes secundaris 1212 01:04:23,000 --> 01:04:26,000 per al conjunt de problemes en si és, sens dubte encoratjat i és la manera 1213 01:04:26,000 --> 01:04:29,000 la web es basa en aquests dies, de peu sobre les espatlles dels altres 1214 01:04:29,000 --> 01:04:32,000 de manera que vostè pot concentrar-se en els problemes nous i interessants. 1215 01:04:32,000 --> 01:04:34,000 Però ara anem a centrar, una vegada més, la lògica. 1216 01:04:34,000 --> 01:04:38,000 >> Això va ser un ràpid desviament a l'estètica només per mostrar la direcció en què es pot anar. 1217 01:04:38,000 --> 01:04:40,000 Vaig a tornar a la més lletja un per ara només perquè 1218 01:04:40,000 --> 01:04:44,000 no hi ha distraccions amb coses de Twitter, i m'ho dius a mi seguir endavant i obrir 1219 01:04:44,000 --> 01:04:51,000 froshims2, que, de nou, només difereix en l'acció, register2.php, 1220 01:04:51,000 --> 01:04:55,000 i anem a fer una ullada al que l'efecte és aquí. 1221 01:04:55,000 --> 01:04:57,000 Deixin-me seguir endavant i escriure en David. 1222 01:04:57,000 --> 01:04:59,000 No seré capità d'aquest temps. 1223 01:04:59,000 --> 01:05:01,000 Diré masculí, Matthews registre. 1224 01:05:01,000 --> 01:05:05,000 Maleïda sigui. Bé, això és un cargol de dalt de la meva part. 1225 01:05:05,000 --> 01:05:07,000 En espera. 1226 01:05:07,000 --> 01:05:17,000 Registro2, línia 22, si està buit o ho sento. 1227 01:05:17,000 --> 01:05:19,000 Anem a recarregar. 1228 01:05:19,000 --> 01:05:22,000 Bé, en presentar aquest formulari el que ha passat? 1229 01:05:22,000 --> 01:05:25,000 He escrit en David, verificat masculí, fa clic a Matthews, registre. 1230 01:05:25,000 --> 01:05:27,000 S'ha registrat. (Bé, en realitat no.) 1231 01:05:27,000 --> 01:05:32,000 Això és clarament un pas més enllà d'imprimir el contingut d'alguna variable, 1232 01:05:32,000 --> 01:05:34,000 però el que està fent en realitat aquest arxiu? 1233 01:05:34,000 --> 01:05:37,000 En register2.php 1234 01:05:37,000 --> 01:05:40,000 adonar que tinc una mica de codi nou. 1235 01:05:40,000 --> 01:05:44,000 A l'interior del meu cos de l'etiqueta que tenen essencialment un if else, 1236 01:05:44,000 --> 01:05:47,000 sinó perquè estic col · barreja això amb una mica d'HTML 1237 01:05:47,000 --> 01:05:51,000 He de entrar i sortir de la manera PHP anada i tornada, així que anem a veure el que estic fent. 1238 01:05:51,000 --> 01:05:55,000 >> A la primera línia aquí que estic dient si és el cas 1239 01:05:55,000 --> 01:06:00,000 que el lloc està buit súper mundial per la clau de nom, 1240 01:06:00,000 --> 01:06:04,000 pel que en altres paraules, si l'usuari no em va donar un valor per al nom en la forma, 1241 01:06:04,000 --> 01:06:07,000 llavors buit tornarà true perquè el valor està buit. 1242 01:06:07,000 --> 01:06:11,000 O-note les barres verticals, si el gènere està buit 1243 01:06:11,000 --> 01:06:15,000 dins d'aquest mundial especial super, que, de nou, representa el contingut de la forma, 1244 01:06:15,000 --> 01:06:19,000 o el dormitori està buit, llavors jo seguiré endavant i cridar en l'usuari. 1245 01:06:19,000 --> 01:06:22,000 Com? Bé, fixa't que vaig a dir que vostè ha de proporcionar el seu nom, sexe, i residència d'estudiants. 1246 01:06:22,000 --> 01:06:24,000 Anem a induir realment aquest error. 1247 01:06:24,000 --> 01:06:27,000 Deixa tornar a la meva manera. Permetin-me tornar a carregar per desactivar-la. 1248 01:06:27,000 --> 01:06:30,000 I jo només vaig a donar-los David, i ells no necessiten saber on viu. 1249 01:06:30,000 --> 01:06:33,000 Registra't. Pel que sembla, cal que els digui on viu. 1250 01:06:33,000 --> 01:06:35,000 Vostè ha de proporcionar el seu nom, sexe i residència d'estudiants. Torna. 1251 01:06:35,000 --> 01:06:39,000 >> I podria clic per tornar a aquesta forma, però per què és això? 1252 01:06:39,000 --> 01:06:43,000 Bé, en aquest cas el nom no estava buida, però el sexe, i va ser residència d'estudiants, 1253 01:06:43,000 --> 01:06:47,000 pel que aquesta expressió avaluada com a veritable totalitat, i encara que la sintaxi és una mica nou, 1254 01:06:47,000 --> 01:06:51,000 de nou, entrar en mode PHP, familiar if, 1255 01:06:51,000 --> 01:06:54,000 però la novetat és precisament això còlon, i m'havia fotut al ometre un parèntesi 1256 01:06:54,000 --> 01:06:57,000 per accident, però observi els dos punts, i significa que 1257 01:06:57,000 --> 01:07:00,000 tot i que està sortint tot la manera PHP 1258 01:07:00,000 --> 01:07:03,000 que segueix ha escopir literalment al navegador 1259 01:07:03,000 --> 01:07:07,000 fins que vegi un bloc else, com ho fem aquí, 1260 01:07:07,000 --> 01:07:10,000 en què el seu lloc ha escopir això 1261 01:07:10,000 --> 01:07:13,000 fins que vegi la endif, de manera que algunes sintaxi lleugerament nou 1262 01:07:13,000 --> 01:07:16,000 que em permet passar d'HTML i PHP. 1263 01:07:16,000 --> 01:07:19,000 Podem netejar això amb el temps, però per ara, 1264 01:07:19,000 --> 01:07:22,000 és una espècie d'una manera convincent de comprovació d'errors del formulari. 1265 01:07:22,000 --> 01:07:25,000 >> Ara, jo dic que no està realment registrat perquè, òbviament, no hem fet res, però les dades, 1266 01:07:25,000 --> 01:07:28,000 així que en realitat tracten de fer alguna cosa fresc. 1267 01:07:28,000 --> 01:07:33,000 En froshims3 l'única diferència és que presentaré a register3, 1268 01:07:33,000 --> 01:07:35,000 de manera que l'HTML no és el mateix. 1269 01:07:35,000 --> 01:07:38,000 En register3 compte d'això. 1270 01:07:38,000 --> 01:07:40,000 Aquesta és una espècie de sexy. 1271 01:07:40,000 --> 01:07:44,000 A la part superior Estic utilitzant una instrucció requereix, així que això és com # include. 1272 01:07:44,000 --> 01:07:46,000 Aquesta vegada no és stdio.h ni res d'això. 1273 01:07:46,000 --> 01:07:50,000 És una llibreria PHP, i aquest es diu PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 Com vaig saber que inclogui precisament aquesta cadena entre cometes? 1275 01:07:53,000 --> 01:07:56,000 Ho vaig llegir en la documentació, així que quan em van dir que em posi això en la part superior de l'arxiu 1276 01:07:56,000 --> 01:08:00,000 si vol utilitzar una biblioteca especial anomenada PHPMailer que fa el que diu. 1277 01:08:00,000 --> 01:08:03,000 Permet enviar correu electrònic a través de PHP. 1278 01:08:03,000 --> 01:08:05,000 Ara anem a desplaçar més lluny. 1279 01:08:05,000 --> 01:08:08,000 >> Avís per començar estic en mode PHP tot aquest temps, 1280 01:08:08,000 --> 01:08:11,000 de manera que ara notar aquí després d'importar la biblioteca, 1281 01:08:11,000 --> 01:08:13,000  per dir-ho, estic fent algunes comprovacions de sanitat. 1282 01:08:13,000 --> 01:08:16,000 Si és el cas que el nom no està buit 1283 01:08:16,000 --> 01:08:19,000 i el gènere no és buida-notar els signes d'exclamació punts 1284 01:08:19,000 --> 01:08:24,000 dormitori i no està buit, llavors l'usuari lògicament ha omplert el formulari, si més no prou. 1285 01:08:24,000 --> 01:08:28,000 No m'importa si són o no capità. Només necessito el seu nom, sexe, i residència d'estudiants. 1286 01:08:28,000 --> 01:08:31,000 Si s'han omplert aquests endavant de manera que cap d'aquests camps estan buits 1287 01:08:31,000 --> 01:08:33,000 això és una mica nova sintaxi. 1288 01:08:33,000 --> 01:08:36,000 PHP, en un apart, és un llenguatge de programació orientat a objectes 1289 01:08:36,000 --> 01:08:39,000 que alguns de vosaltres pot recordar de SCCA o similars. 1290 01:08:39,000 --> 01:08:42,000 Per ara, sinó familiar, només sé que per utilitzar aquesta biblioteca 1291 01:08:42,000 --> 01:08:45,000 vostè ha d'escriure una línia de codi com aquest amb una nova paraula clau, 1292 01:08:45,000 --> 01:08:47,000 literalment una paraula clau nova anomenada nova. 1293 01:08:47,000 --> 01:08:50,000 Però més enllà d'això, tenim una sintaxi familiar. 1294 01:08:50,000 --> 01:08:54,000 És un operador de fletxa, que és similar al que hem utilitzat per les estructures en el context dels punters. 1295 01:08:54,000 --> 01:08:57,000 Per avui PHP no té punters, 1296 01:08:57,000 --> 01:09:01,000 però sabem per ara que dins de la variable mail 1297 01:09:01,000 --> 01:09:05,000 és essencialment un tipus de punter a una biblioteca especial 1298 01:09:05,000 --> 01:09:08,000 que algú més va escriure, i si vull accedir a la funcionalitat específica 1299 01:09:08,000 --> 01:09:12,000 dins d'aquesta biblioteca que sí, igual que en C, utilitzeu l'operador de fletxa, 1300 01:09:12,000 --> 01:09:14,000 tot i que aquestes no són en realitat punters. 1301 01:09:14,000 --> 01:09:16,000 És una espècie de versió pròpia de PHP d'aquest. 1302 01:09:16,000 --> 01:09:20,000 Això vol dir anar a la biblioteca i cridar a la funció IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, memòria, dels nostres guerrers de la Xarxa es refereix al correu electrònic, 1304 01:09:23,000 --> 01:09:28,000 i això només significa utilitzar un servidor de correu electrònic per a aquest registre Frosh missatges instantanis. 1305 01:09:28,000 --> 01:09:30,000 >> Què acollida és el que vull fer servir? 1306 01:09:30,000 --> 01:09:34,000 Bé, Harvard, si es busca a Google la volta, té un servidor de correu electrònic anomenat smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Si estàs jugant al llarg de a casa o viu en una xarxa de Comcast 1308 01:09:37,000 --> 01:09:40,000 pot ser que sigui alguna cosa com smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 És totalment depèn d'on vostè viu i qui és el seu proveïdor d'Internet és. 1310 01:09:43,000 --> 01:09:47,000 Després d'això em vaig a posar la meva adreça de manera arbitrària a ser jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Estic passant després a establir el abordar a ser jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 L'única manera que sabia que aquestes funcions van ser anomenats setFrom i AddAddress 1313 01:09:55,000 --> 01:09:57,000 És a dir, un cop més, he llegit la documentació. 1314 01:09:57,000 --> 01:09:59,000 Això no és una qüestió de màgia a conèixer a tots els programadors. 1315 01:09:59,000 --> 01:10:02,000 Llavors em vaig posar a objecte de "registre". 1316 01:10:02,000 --> 01:10:07,000 I ara, aquesta línia és una mica lleig, perquè el que fa l'operador de punt mitjà en PHP? 1317 01:10:07,000 --> 01:10:09,000 Algú sap? 1318 01:10:09,000 --> 01:10:11,000 Concatenar. 1319 01:10:11,000 --> 01:10:14,000 En C és un dolor al coll per concatenar dues cadenes juntes. 1320 01:10:14,000 --> 01:10:17,000 Has de lluitar amb malloc o realloc o totes aquestes coses 1321 01:10:17,000 --> 01:10:20,000 només per estendre la longitud d'una cadena. 1322 01:10:20,000 --> 01:10:22,000 En PHP, JavaScript i en altres idiomes 1323 01:10:22,000 --> 01:10:24,000 normalment es pot fer això amb un sol caràcter. 1324 01:10:24,000 --> 01:10:28,000 En aquest cas, punt significa prendre aquesta cadena aquí 1325 01:10:28,000 --> 01:10:30,000 i afegir a aquesta cadena. 1326 01:10:30,000 --> 01:10:32,000 >> Ah, i per cert, afegir a aquesta cadena, 1327 01:10:32,000 --> 01:10:34,000 que passa a ser una variable d'aquest interior súper global. 1328 01:10:34,000 --> 01:10:37,000 A continuació, afegir a una nova línia, de manera que tots aquests punts només significa 1329 01:10:37,000 --> 01:10:39,000 seguir fent una cadena més gran i més gran i més gran, 1330 01:10:39,000 --> 01:10:43,000 i vostè no ha de preocupar en absolut per malloc o similar, en un llenguatge com aquest, 1331 01:10:43,000 --> 01:10:46,000 i hi ha altres maneres de fer això, però aquest és un dels més ràpids 1332 01:10:46,000 --> 01:10:48,000 formes d'exposar. 1333 01:10:48,000 --> 01:10:50,000 Què fa això? 1334 01:10:50,000 --> 01:10:55,000 Es tracta de crear un cos de correu electrònic que dirà el nom: Capità: Sexe: Dorm: 1335 01:10:55,000 --> 01:10:58,000 tot en línies separades, i després, finalment, 1336 01:10:58,000 --> 01:11:00,000 una línia de codi, i jo vaig a fer cas omís d'això per ara. 1337 01:11:00,000 --> 01:11:02,000 Si és false == simplement vol dir que si alguna cosa sortia malament, 1338 01:11:02,000 --> 01:11:04,000 però la màgia que succeeix aquí. 1339 01:11:04,000 --> 01:11:08,000 Mail Enviar significa l'enviament d'aquest correu electrònic. 1340 01:11:08,000 --> 01:11:10,000 Anem a veure el que el resultat net és. 1341 01:11:10,000 --> 01:11:13,000 A la part inferior de l'arxiu, notarà que dirà que està registrat realment 1342 01:11:13,000 --> 01:11:15,000 si arribar tan lluny. 1343 01:11:15,000 --> 01:11:18,000 Si, però, l'usuari fica la pota, observi que vam començar aquest 1344 01:11:18,000 --> 01:11:21,000 si la condició fins aquí, si no està buit i no buit 1345 01:11:21,000 --> 01:11:24,000 i no buidar enviem per correu. 1346 01:11:24,000 --> 01:11:27,000 En cas contrari anem a enviar aquesta línia de codi, 1347 01:11:27,000 --> 01:11:30,000 que tindrà l'efecte, com es veurà en el conjunt de processadors 7, de redirigir l'usuari 1348 01:11:30,000 --> 01:11:35,000 de tornada a on van venir, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Creuem els dits, en cas contrari això serà la demostració més decebedora avui. 1350 01:11:38,000 --> 01:11:40,000 Aquí anem. 1351 01:11:40,000 --> 01:11:42,000 Permetin-me obrir el meu safata d'entrada de correu electrònic per jharvard a Gmail. 1352 01:11:42,000 --> 01:11:44,000 Cap correu electrònic ara mateix. Està bé. 1353 01:11:44,000 --> 01:11:53,000 Ara vaig a obrir froshims3, que és el tercer i últim exemple anem a veure aquí. 1354 01:11:53,000 --> 01:11:55,000 Bé, aquí anem. 1355 01:11:55,000 --> 01:12:00,000 Nate, que serà el capità, home, de, per exemple, Apley. 1356 01:12:00,000 --> 01:12:04,000 Registra't. Està bé, està registrat realment. 1357 01:12:04,000 --> 01:12:07,000 Ara, si em desplaço a la vostra adreça, oh, Déu meu. 1358 01:12:07,000 --> 01:12:09,000 Acabo dinàmicament va enviar un correu electrònic a la Web. 1359 01:12:09,000 --> 01:12:11,000 >> Anem a deixar-lo en aquesta nota. 1360 01:12:11,000 --> 01:12:16,000 Un vídeo és per a la propera conferència ens vam perdre. Ens veiem la setmana que ve. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]