1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [Semana 8] 2 00:00:02,000 --> 00:00:04,000 [David J Malan] [Harvard University] 3 00:00:04,000 --> 00:00:07,000 [Esta es CS50.] [CS50.TV] 4 00:00:07,000 --> 00:00:09,000 >> Bienvenido de nuevo. 5 00:00:09,000 --> 00:00:11,000 Esto es CS50, y este es el comienzo de la semana 8. 6 00:00:11,000 --> 00:00:14,000 Hace un par de oportunidades esta semana, 7 00:00:14,000 --> 00:00:17,000 entre ellos esta charla aquí, en la que algunos alimentos serán servidos. 8 00:00:17,000 --> 00:00:20,000 Para más detalles, echa un vistazo a las diapositivas que están en línea. 9 00:00:20,000 --> 00:00:24,000 Y también otro evento de esta semana por nuestro propio Carriero Thomas. 10 00:00:24,000 --> 00:00:27,000 Es uno de los ex becarios de Head CS50 de enseñanza que ahora está en Dropbox, 11 00:00:27,000 --> 00:00:29,000 y él es el tipo que nos conectó con la sabes qué, 12 00:00:29,000 --> 00:00:36,000 así que si quieres más de que la cabeza de su charla de esta tarde para Dropbox y más. 13 00:00:36,000 --> 00:00:38,000 CS50 almuerzo es este viernes. 14 00:00:38,000 --> 00:00:41,000 Se unen a nosotros, si le es posible, 1:15, como siempre, en Fire and Ice. 15 00:00:41,000 --> 00:00:45,000 >> Y ahora nos sumergimos en algo llamado Seminarios. 16 00:00:45,000 --> 00:00:49,000 Nuestros Seminarios CS50, recuerdo, son estas clases opcionales dirigidas por los compañeros docentes 17 00:00:49,000 --> 00:00:51,000 y los asistentes del curso y amigos del curso, 18 00:00:51,000 --> 00:00:55,000 gente de un grupo en el campus llamado ABCD, que es un grupo de 19 00:00:55,000 --> 00:00:58,000 tecnófilos en el campus, así como de un grupo llamado HCS, 20 00:00:58,000 --> 00:01:02,000 la Harvard Computer Society, los estudiantes que están igualmente interesados ​​en la computación. 21 00:01:02,000 --> 00:01:08,000 Lista de este año incluye seminarios de seminarios sobre Android y iOS y JavaScript 22 00:01:08,000 --> 00:01:13,000 y PHP, Unix, Vim, y más, para darse cuenta de que estos seminarios se aproximan. 23 00:01:13,000 --> 00:01:16,000 Si desea hacer reservaciones para cualquiera de ellos se dirigen a esa URL allí. 24 00:01:16,000 --> 00:01:20,000 A continuación, se publica en la página web del curso de los tiempos y lugares, una vez que se finalicen. 25 00:01:20,000 --> 00:01:26,000 Pero vale la pena saber que hay 5 años de seminarios anteriores disponibles en línea, 26 00:01:26,000 --> 00:01:29,000 muchos de los cuales están todavía muy actual en términos de tecnologías que posiblemente encuentre 27 00:01:29,000 --> 00:01:36,000 quiero jugar con para sus proyectos finales, por lo que la cabeza allí para algunos videos disponibles del mismo. 28 00:01:36,000 --> 00:01:39,000 >> CSS, aquellos de ustedes que están familiarizados con CSS ya, 29 00:01:39,000 --> 00:01:42,000 ¿qué es en pocas palabras? 30 00:01:42,000 --> 00:01:45,000 ¿Qué es CSS? 31 00:01:45,000 --> 00:01:48,000 Se hojas de estilo, y qué significa eso? 32 00:01:48,000 --> 00:01:53,000 ¿Qué es lo que hacen por nosotros, CSS? 33 00:01:53,000 --> 00:01:57,000 Muy bien, vamos a calentar con una más fácil, HTML, lenguaje de marcas de hipertexto. 34 00:01:57,000 --> 00:02:01,000 ¿Qué es lo que hacen por nosotros? 35 00:02:01,000 --> 00:02:04,000 Cualquier persona en absoluto? 36 00:02:04,000 --> 00:02:07,000 Se está haciendo muy difícil hacer estas preguntas. 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 [Respuesta de los estudiantes inaudible] 40 00:02:17,000 --> 00:02:20,000 Bueno, bueno, que nos permite marcar texto para mostrar en un navegador web. 41 00:02:20,000 --> 00:02:22,000 No es un lenguaje de programación. 42 00:02:22,000 --> 00:02:25,000 Es realmente un lenguaje de marcas, lo que significa que indica al navegador cómo mostrar 43 00:02:25,000 --> 00:02:28,000 información, por lo que la simple encarnación de esta como hemos visto 44 00:02:28,000 --> 00:02:32,000 es algo super simple como boldfacing, abierto abrazadera abrazadera cerrada b dice 45 00:02:32,000 --> 00:02:36,000 hacen de este texto en negrita, y que en realidad es sólo una de las muchas maneras 46 00:02:36,000 --> 00:02:39,000 en el que podemos hacer eso, y de hecho, en estos días un mejor enfoque 47 00:02:39,000 --> 00:02:42,000 para estilizar tu página web, haciendo las cosas en negrita y cursiva 48 00:02:42,000 --> 00:02:47,000 y centrado y justificado y similares, no se lleva a cabo a través de las etiquetas HTML solo 49 00:02:47,000 --> 00:02:51,000 sino más bien con una técnica llamada CSS, Cascading Style Sheets. 50 00:02:51,000 --> 00:02:53,000 Este es un lenguaje en sí mismo. 51 00:02:53,000 --> 00:02:55,000 Esto tampoco es un lenguaje de programación, pero- 52 00:02:55,000 --> 00:02:58,000 a todos, este es Dan, que mantiene acompañarnos hoy. 53 00:02:58,000 --> 00:03:01,000 Algunas dificultades técnicas. No es un problema. 54 00:03:01,000 --> 00:03:04,000 >> CSS nos permite estilizar una página 55 00:03:04,000 --> 00:03:07,000 mediante el establecimiento de lo que se denominan propiedades, así que vamos a echar un vistazo a esto 56 00:03:07,000 --> 00:03:09,000 por medio de algunos ejemplos básicos. 57 00:03:09,000 --> 00:03:12,000 Déjame entrar en el aparato hoy. 58 00:03:12,000 --> 00:03:15,000 Tengo la fuente 8 Lunes directorio aquí, 59 00:03:15,000 --> 00:03:18,000 y yo voy a ir en un directorio llamado CSS, donde tenemos un montón 60 00:03:18,000 --> 00:03:21,000 de archivos que nos esperan aquí, 61 00:03:21,000 --> 00:03:27,000 y en esta carpeta tenemos, por ejemplo, search0.html desde la última vez. 62 00:03:27,000 --> 00:03:31,000 Ahora, recuerdo con search0 de partir en esta nota 63 00:03:31,000 --> 00:03:35,000 por tipo de implementación de Google o en realidad sólo la parte delantera para una semana o así que hace, 64 00:03:35,000 --> 00:03:38,000 y el aviso de que teníamos algunas etiquetas nuevas allí. 65 00:03:38,000 --> 00:03:41,000 Tuvimos h1 por un título grande, en negrita, 66 00:03:41,000 --> 00:03:45,000 forma, lo que nos permitió tener en realidad un formulario HTML para entrada de usuario. 67 00:03:45,000 --> 00:03:48,000 Acción, ¿cuál fue el significado de un atributo de acción 68 00:03:48,000 --> 00:03:52,000 en la etiqueta de formulario HTML? 69 00:03:52,000 --> 00:03:58,000 ¿Cuál era el significado de esta acción? 70 00:03:58,000 --> 00:04:00,000 Voy a hacer esto hoy. 71 00:04:00,000 --> 00:04:03,000 La acción es el destino a donde la forma va a ser sometido. 72 00:04:03,000 --> 00:04:07,000 El hecho de que la acción que dice = "google.com / búsqueda" 73 00:04:07,000 --> 00:04:10,000 significa que cuando el usuario hace clic en el botón de enviar o equivalente 74 00:04:10,000 --> 00:04:14,000 independientemente de la forma que llenaron los campos van a ser enviados a nuestro servidor no 75 00:04:14,000 --> 00:04:17,000 o nuestro aparato, sino más bien a la URL específica en Google. 76 00:04:17,000 --> 00:04:19,000 Y el método que va a utilizar se llama conseguir, 77 00:04:19,000 --> 00:04:25,000 y obtener, por ahora, es sólo una técnica para pasar información a lo largo de un servidor web 78 00:04:25,000 --> 00:04:29,000 a través de la URL, así que vamos a echar un rápido vistazo a cómo funciona esto. 79 00:04:29,000 --> 00:04:31,000 >> Tenga en cuenta que hay una entrada cuyo nombre es q 80 00:04:31,000 --> 00:04:35,000 cuyo tipo es texto y luego una segunda entrada del tipo de presentar 81 00:04:35,000 --> 00:04:39,000 cuyo valor es CS50 Search, y de hecho, si nos abrimos este archivo aquí 82 00:04:39,000 --> 00:04:42,000 search0.html, es una forma súper simple, 83 00:04:42,000 --> 00:04:45,000 y si busco algo como la informática 84 00:04:45,000 --> 00:04:50,000 y luego pulsa enter o haga clic en Buscar CS50 85 00:04:50,000 --> 00:04:53,000 cuenta de que lo que sucede es más allá de llegar a Google 86 00:04:53,000 --> 00:04:56,000 He específicamente terminamos en este URL en la parte superior, 87 00:04:56,000 --> 00:05:01,000 google.com / search? q = ordenador + ciencia, 88 00:05:01,000 --> 00:05:04,000 y ciencias de la computación es, obviamente, lo que he escrito pulg 89 00:05:04,000 --> 00:05:06,000 El + sólo significa que es donde un carácter de espacio era, 90 00:05:06,000 --> 00:05:10,000 y se hace por el navegador sólo para asegurarse de que no hay 91 00:05:10,000 --> 00:05:13,000 confusión y el espacio en blanco en la dirección URL real. 92 00:05:13,000 --> 00:05:15,000 Y entonces q, por supuesto, es el nombre del parámetro. 93 00:05:15,000 --> 00:05:20,000 No hemos visto cómo, el programador, en realidad se puede acceder q todavía. 94 00:05:20,000 --> 00:05:23,000 Podemos suponer que Google sabe qué hacer con esto aquí, 95 00:05:23,000 --> 00:05:25,000 pero vamos a llegar a su debido tiempo hoy. 96 00:05:25,000 --> 00:05:30,000 >> Pero déjeme echar un vistazo en vez de search1.html, 97 00:05:30,000 --> 00:05:34,000 que se parece un poco diferente porque he decidido que esta forma aquí estaba un poco cojo. 98 00:05:34,000 --> 00:05:36,000 Quiero decir, que está en la parte superior izquierda. 99 00:05:36,000 --> 00:05:40,000 En realidad no hay estética a la misma, y ​​por eso quiero estilizar esta 100 00:05:40,000 --> 00:05:43,000 un poco más como Google, cuya página de inicio, recordar, 101 00:05:43,000 --> 00:05:47,000 aunque es posible que no lo visitan muy a menudo, se ve así hoy en Halloween. 102 00:05:47,000 --> 00:05:53,000 Si en lugar de abrir una versión de este archivo, 1.html búsqueda, me he centrado. 103 00:05:53,000 --> 00:05:57,000 , Still bastante feo, pero al menos ahora he empezado a controlar la estética de esta página 104 00:05:57,000 --> 00:06:00,000 no sólo para marcarlo hasta de los mismos. 105 00:06:00,000 --> 00:06:04,000 Echemos un vistazo a una búsqueda, y no hay realmente sólo una diferencia aquí, 106 00:06:04,000 --> 00:06:06,000 que podría saltar a la vista, o tal vez no, 107 00:06:06,000 --> 00:06:11,000 pero ¿cuál es la línea de un fragmento o de la diferencia? 108 00:06:11,000 --> 00:06:14,000 >> Hay un atributo de estilo, por lo que resulta que en HTML 109 00:06:14,000 --> 00:06:19,000 la mayoría de los elementos, la mayoría de las etiquetas pueden tener un atributo de estilo en ellos, 110 00:06:19,000 --> 00:06:23,000 y dentro de ese atributo style es una cadena entre comillas, 111 00:06:23,000 --> 00:06:26,000 y que la cadena entre comillas es CSS. 112 00:06:26,000 --> 00:06:29,000 Usted puede poner hojas de estilo en cascada allí 113 00:06:29,000 --> 00:06:32,000 especificándolo como un nombre de propiedad 114 00:06:32,000 --> 00:06:34,000 seguido de dos puntos seguido de un valor. 115 00:06:34,000 --> 00:06:37,000 Esto es un poco de una decisión de diseño desafortunado hace algunos años 116 00:06:37,000 --> 00:06:40,000 que CSS es un lenguaje en sí mismo, 117 00:06:40,000 --> 00:06:43,000 pero sintácticamente es muy diferente de HTML. 118 00:06:43,000 --> 00:06:46,000 En este caso, vemos que dentro de mi página web, que está escrito en HTML, 119 00:06:46,000 --> 00:06:51,000 Tengo CSS dentro de estas citas, y la convención de CSS 120 00:06:51,000 --> 00:06:55,000 es que usted tiene lo que se llama una propiedad seguido, nuevamente, dos puntos, 121 00:06:55,000 --> 00:06:58,000 seguido por el valor de esa propiedad, así que no hay signo igual. 122 00:06:58,000 --> 00:07:00,000 No hay citas adicionales. 123 00:07:00,000 --> 00:07:03,000 Es sólo esta separada por dos puntos par de valores clave, 124 00:07:03,000 --> 00:07:05,000 y la línea de texto hace exactamente lo que dice. 125 00:07:05,000 --> 00:07:09,000 Se alinea el texto en el cuerpo de la página, que es realmente el coraje de la página, 126 00:07:09,000 --> 00:07:11,000 en el centro. 127 00:07:11,000 --> 00:07:13,000 >> De acuerdo, entonces el resultado final, para ser claros, es este. 128 00:07:13,000 --> 00:07:17,000 No todo lo que más sexy, pero al menos está centrado y un poco más a lo real de Google. 129 00:07:17,000 --> 00:07:21,000 Pero ¿y si en vez abrir la versión 2 de este 130 00:07:21,000 --> 00:07:25,000 y señalar aquí una nueva etiqueta en total? 131 00:07:25,000 --> 00:07:30,000 Ahora, en la cabecera de mi página, que antes sólo tenía que etiqueta 132 00:07:30,000 --> 00:07:32,000 en todos los ejemplos anteriores? 133 00:07:32,000 --> 00:07:34,000 Se acaba de tener esto, el título. 134 00:07:34,000 --> 00:07:38,000 Hace un momento la etiqueta de la cabeza se veía así. 135 00:07:38,000 --> 00:07:40,000 Ahora, en cambio, tiene un estilo dentro de la etiqueta de la misma, 136 00:07:40,000 --> 00:07:44,000 y esto también, pido disculpas, sintácticamente se ve muy diferente de HTML, 137 00:07:44,000 --> 00:07:47,000 pero te acostumbras a él, por lo cual dentro de la etiqueta de estilo 138 00:07:47,000 --> 00:07:50,000 Ahora puedo factorizar lo que era hace un momento 139 00:07:50,000 --> 00:07:54,000 un atributo, el atributo de estilo, y lo puedo poner en la parte superior de mi página. 140 00:07:54,000 --> 00:07:56,000 >> ¿Por qué? 141 00:07:56,000 --> 00:08:00,000 Bueno, este es un paso hacia limpiando las cosas, al igual que en la escritura de código C 142 00:08:00,000 --> 00:08:04,000 nosotros a veces escribir funciones para factorizar la funcionalidad común. 143 00:08:04,000 --> 00:08:07,000 Es sólo un poco más limpio para iniciar factoring cosas como la estética 144 00:08:07,000 --> 00:08:11,000 a una ubicación central en vez de tenerlo todo intercalan a lo largo de su HTML. 145 00:08:11,000 --> 00:08:14,000 Esto también hace lo que dice, aunque hay un poco de nueva sintaxis. 146 00:08:14,000 --> 00:08:19,000 Esto aquí es un selector, y el cuerpo sólo significa seleccionar el elemento del cuerpo 147 00:08:19,000 --> 00:08:21,000 y aplicar las siguientes propiedades a la misma. 148 00:08:21,000 --> 00:08:23,000 Pues bien, la propiedad es exactamente lo mismo. 149 00:08:23,000 --> 00:08:25,000 Por si acaso he añadido un punto y coma al final, 150 00:08:25,000 --> 00:08:29,000 que tiende a ser la convención, y me he envuelto todo este inmueble 151 00:08:29,000 --> 00:08:33,000 entre llaves porque yo podía tener cosas diferentes aquí. 152 00:08:33,000 --> 00:08:39,000 De hecho, me podría decir algo como color: blue; 153 00:08:39,000 --> 00:08:42,000 >> Ahora bien, esto tampoco va a ser un paso hacia la nada todo lo que más bonito, 154 00:08:42,000 --> 00:08:47,000 pero si ahora volver a la versión 2 que he hecho por lo menos ahora el cuerpo de mi 155 00:08:47,000 --> 00:08:49,000 página de texto de todo azul. 156 00:08:49,000 --> 00:08:51,000 El botón se mantiene igual porque es una entrada. No es puro texto. 157 00:08:51,000 --> 00:08:56,000 Pero todo lo demás que es texto, como CS50 Búsqueda en lo alto, es de color azul hecho. 158 00:08:56,000 --> 00:09:01,000 Una vez más, todo lo que hemos hecho ahora es eliminar del cuerpo de la etiqueta, rótulo, 159 00:09:01,000 --> 00:09:04,000 el atributo de estilo, y hemos factorizado un vistazo aquí. 160 00:09:04,000 --> 00:09:08,000 Esto no es una gran mejora, pero si tomamos un paso más allá 161 00:09:08,000 --> 00:09:10,000 darse cuenta de lo que podemos hacer en esta tercera versión aquí. 162 00:09:10,000 --> 00:09:14,000 >> En search3.html la página web es casi idéntico 163 00:09:14,000 --> 00:09:17,000 a excepción de lo nuevo tag ahora? 164 00:09:17,000 --> 00:09:20,000 Link, por lo que éste no está muy bien llamado 165 00:09:20,000 --> 00:09:24,000 porque no se va a asociar en el sentido de un enlace clicable. 166 00:09:24,000 --> 00:09:28,000 Más bien, estás de suerte haciendo el equivalente de # include en C 167 00:09:28,000 --> 00:09:31,000 por lo que la etiqueta de enlace con un atributo href 168 00:09:31,000 --> 00:09:34,000 y un atributo rel dice que adelante 169 00:09:34,000 --> 00:09:39,000 copia y pega el contenido de un archivo llamado search3.css aquí, esencialmente. 170 00:09:39,000 --> 00:09:42,000 No todo eso, pero ese es el espíritu de la misma. 171 00:09:42,000 --> 00:09:45,000 Dice que ir abierto ese archivo, search3.css, 172 00:09:45,000 --> 00:09:49,000 y tratarla como si el usuario hubiera escrito aquí mismo en la cabecera de la página 173 00:09:49,000 --> 00:09:51,000 al igual que lo hizo en el ejemplo anterior. 174 00:09:51,000 --> 00:09:54,000 Search3.css, por su parte, es bastante simple. 175 00:09:54,000 --> 00:09:58,000 En realidad, sólo contiene exactamente lo que estaba hace un momento 176 00:09:58,000 --> 00:10:03,000 en la etiqueta de estilo, pero no tengo factorizar un vistazo aquí a su propio archivo. 177 00:10:03,000 --> 00:10:07,000 >> A pesar de que no he pasado mucho tiempo en absoluto en HTML o programación web 178 00:10:07,000 --> 00:10:11,000 sólo intuitivamente lo que es la motivación, tal vez, para factorizar 179 00:10:11,000 --> 00:10:14,000 este pequeño fragmento de CSS, incluso en su propio archivo 180 00:10:14,000 --> 00:10:19,000 y luego incluso con esta etiqueta link aquí? 181 00:10:19,000 --> 00:10:21,000 [Respuesta de los estudiantes inaudible] 182 00:10:21,000 --> 00:10:25,000 Bueno, es más fácil de leer en el sentido de que tiene la CSS en un archivo CSS. 183 00:10:25,000 --> 00:10:28,000 Usted tiene su código HTML en el archivo HTML, por lo que es más fácil de leer en ese sentido. 184 00:10:28,000 --> 00:10:30,000 ¿Qué otra cosa podría ser convincente? Si. 185 00:10:30,000 --> 00:10:32,000 [Respuesta de los estudiantes inaudible] 186 00:10:32,000 --> 00:10:35,000 Sí, para que pueda incluirlo en muchas ocasiones, por lo que ahora estamos haciendo estos 187 00:10:35,000 --> 00:10:38,000 ejemplos básicos con archivos individuales, pero supongo que en realidad estás haciendo 188 00:10:38,000 --> 00:10:42,000 un sitio web real como tu voluntad para pset 7 o el proyecto final tal vez, 189 00:10:42,000 --> 00:10:45,000 y desea tener varias páginas web, como es bastante común en 190 00:10:45,000 --> 00:10:48,000 la Web actual Wide, y sería una especie de lisiado 191 00:10:48,000 --> 00:10:52,000 a tener que copiar y pegar el mismo color azul 192 00:10:52,000 --> 00:10:56,000 y el mismo texto alineado centro en cada una de esas páginas. 193 00:10:56,000 --> 00:10:59,000 Más bien, tiene más sentido para excluir, al igual que hemos hecho en C 194 00:10:59,000 --> 00:11:02,000 con el archivo. h, lo puso en un lugar central, 195 00:11:02,000 --> 00:11:06,000 en este caso search3.css, y luego permitir que cualquier archivo 196 00:11:06,000 --> 00:11:11,000 en su página web para incluir ese archivo en realidad a través de esta etiqueta aquí en la línea 16. 197 00:11:11,000 --> 00:11:14,000 Como suele ser el caso, empezamos con la versión 0, que tipo de obras 198 00:11:14,000 --> 00:11:18,000 pero no es necesariamente la mejor, y con cada paso, 199 00:11:18,000 --> 00:11:21,000 búsqueda de una búsqueda de 2, 3 y ahora busca que hemos tomado estos pasos de bebé 200 00:11:21,000 --> 00:11:26,000 hacia diseños que son un poco más limpias y son más preparatoria 201 00:11:26,000 --> 00:11:30,000 para las páginas más complejas que podemos hacer en el futuro. 202 00:11:30,000 --> 00:11:33,000 >> Permítanme abrir un último ejemplo aquí sólo para mostrar 203 00:11:33,000 --> 00:11:36,000 una página aún más estilizado, pero primero vamos a ver el código HTML. 204 00:11:36,000 --> 00:11:41,000 Esto es search4.html, y note que estructuralmente es casi lo mismo 205 00:11:41,000 --> 00:11:44,000 excepto por la introducción de una nueva etiqueta, DIV. 206 00:11:44,000 --> 00:11:48,000 Div es una etiqueta que introduce una división de la página. 207 00:11:48,000 --> 00:11:51,000 Usted puede pensar en esto como un rectángulo invisible. 208 00:11:51,000 --> 00:11:54,000 De alguna manera crea una franja de área en la página web 209 00:11:54,000 --> 00:11:56,000 que se puede estilizar todos a la vez. 210 00:11:56,000 --> 00:11:58,000 Lo que he hecho aquí es la siguiente. 211 00:11:58,000 --> 00:12:01,000 En el interior de mi cuerpo de la etiqueta, que ha estado allí todo el tiempo, 212 00:12:01,000 --> 00:12:05,000 Digo crear una división de la página aquí a través de las líneas 45 a la 47, 213 00:12:05,000 --> 00:12:09,000 y eso significa esencialmente darme un rectángulo invisible a lo largo de la parte superior de la página. 214 00:12:09,000 --> 00:12:14,000 Entonces dame un segundo rectángulo, aunque invisible, más abajo, 215 00:12:14,000 --> 00:12:16,000 y se identifican por el nombre de contenido y, a continuación, por último, 216 00:12:16,000 --> 00:12:19,000 dame una tercera división de la página en la parte inferior 217 00:12:19,000 --> 00:12:21,000 llamado ID. 218 00:12:21,000 --> 00:12:23,000 Vamos a ver qué he hecho esto en un momento, 219 00:12:23,000 --> 00:12:26,000 pero conceptualmente Tengo una división de cabecera. 220 00:12:26,000 --> 00:12:30,000 Tengo una división de contenidos, y tengo una división pie de página de la página 221 00:12:30,000 --> 00:12:32,000 a pesar de que estos son sólo en el marcado. 222 00:12:32,000 --> 00:12:35,000 El usuario no va a ver 3 rectángulos, 223 00:12:35,000 --> 00:12:37,000 pero tipo de estructura hay detrás de las escenas 224 00:12:37,000 --> 00:12:39,000 que están realmente presentes. 225 00:12:39,000 --> 00:12:41,000 >> Ahora, ¿qué importa? ¿Por qué lo hacen realmente? 226 00:12:41,000 --> 00:12:43,000 Todo lo demás en la página es el mismo que hemos visto antes. 227 00:12:43,000 --> 00:12:47,000 Esta es mi forma. Aquí está mi entrada, mi entrada, un salto de línea y así sucesivamente. 228 00:12:47,000 --> 00:12:50,000 Aquí está una imagen, sin embargo, así que ya veremos dónde salió en un momento. 229 00:12:50,000 --> 00:12:52,000 Aquí hay un pie de página, que es nuevo, sólo porque quería introducir 230 00:12:52,000 --> 00:12:54,000 contenido un poco más aquí. 231 00:12:54,000 --> 00:12:58,000 Si nos desplazamos hasta notar que el ID de este div es cabecera. 232 00:12:58,000 --> 00:13:02,000 La identificación de este div es el contenido y el ID de ésta es pie de página. 233 00:13:02,000 --> 00:13:05,000 Y como su nombre lo indica, cuando se tiene un atributo ID 234 00:13:05,000 --> 00:13:09,000 en HTML, por definición, debe identificar exclusivamente 235 00:13:09,000 --> 00:13:12,000 uno de los elementos, una de las etiquetas en la página. 236 00:13:12,000 --> 00:13:16,000 La responsabilidad recae totalmente en usted recordar que tiene un ID de cabecera ya. 237 00:13:16,000 --> 00:13:19,000 Usted tiene un pie de página. Usted tiene un ID de contenido ya. 238 00:13:19,000 --> 00:13:22,000 El equipo no va a entender lo que es una identificación disponible para usted, 239 00:13:22,000 --> 00:13:27,000 por lo que accidentalmente podría dar una identificación 2 etiquetas de cabecera, 240 00:13:27,000 --> 00:13:29,000 y eso sería un error. 241 00:13:29,000 --> 00:13:31,000 >> Hay que tener en cuenta lo que han creado, 242 00:13:31,000 --> 00:13:34,000 pero una vez que hayas hecho esto fíjate en lo que podemos hacer aquí. 243 00:13:34,000 --> 00:13:38,000 Ahora puede especificar en mi etiqueta de estilo en la parte superior 244 00:13:38,000 --> 00:13:41,000 o equivalentemente en mi archivo CSS, si yo todavía estaba usando esa versión, 245 00:13:41,000 --> 00:13:46,000 Puedo decir # header, y es lo que quiere decir que cualquier etiqueta 246 00:13:46,000 --> 00:13:49,000 en esta página web tiene un ID de cabecera 247 00:13:49,000 --> 00:13:53,000 y #, sólo por convención humana, representa el ID. 248 00:13:53,000 --> 00:13:56,000 El signo de sostenido o la libra signo representa identificación. 249 00:13:56,000 --> 00:13:58,000 Cabecera es el nombre que le di. 250 00:13:58,000 --> 00:14:01,000 Esto significa aplicar esta propiedad CSS 251 00:14:01,000 --> 00:14:04,000 a cualquier variable de esta página tiene un ID de cabecera. 252 00:14:04,000 --> 00:14:06,000 Lo mismo pasa aquí. 253 00:14:06,000 --> 00:14:09,000 Aplicar esta propiedad, que pasa a ser el mismo, a cualquier elemento 254 00:14:09,000 --> 00:14:11,000 cuyo identificador es el contenido, y luego aquí 255 00:14:11,000 --> 00:14:14,000 cuenta de que tengo un poco más de lujo con pie de página. 256 00:14:14,000 --> 00:14:18,000 Cualquier elemento cuyo ID es pie de página, de la cual no puede ser sólo uno, por definición, 257 00:14:18,000 --> 00:14:21,000 seguir adelante y hacer su tamaño de fuente más pequeño, 258 00:14:21,000 --> 00:14:24,000 su fuente en negrita peso, su margen de 20 píxeles. 259 00:14:24,000 --> 00:14:26,000 >> ¿Qué significa eso? 260 00:14:26,000 --> 00:14:28,000 Es sólo un margen en la parte superior, inferior, izquierda y el de derecha. 261 00:14:28,000 --> 00:14:31,000 Esto quiere darme un margen de 20-pixel invisible a su alrededor 262 00:14:31,000 --> 00:14:35,000 sólo para empujar todo lo demás fuera de ella un poco, de que se puede hacer 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 Y luego alinear texto central. 265 00:14:39,000 --> 00:14:43,000 Vamos a ver el resultado final, y luego vamos a regresar hasta el fragmento restante de CSS allí. 266 00:14:43,000 --> 00:14:48,000 Esta es la versión 4, el último de los ejemplos de búsqueda, y es mucho más sexy, mucho. 267 00:14:48,000 --> 00:14:54,000 Ahora, para ser justos, sólo Google "fuente generador google logo". 268 00:14:54,000 --> 00:14:58,000 Y eso me permitió crear un GIF, un formato de imagen, que parece que no. 269 00:14:58,000 --> 00:15:00,000 De hecho, usted puede hacer esto también. 270 00:15:00,000 --> 00:15:03,000 Tenemos "google logo generador fuentes." 271 00:15:03,000 --> 00:15:05,000 >> Vamos a ver si podemos hacer esto. 272 00:15:05,000 --> 00:15:07,000 Bueno, creo que este es el sitio web que he usado. 273 00:15:07,000 --> 00:15:11,000 Podemos decir Ec 10, por ejemplo, y hacer que su propio. 274 00:15:11,000 --> 00:15:13,000 Usted puede jugar con esto todo el día y luego a la derecha haga clic en él 275 00:15:13,000 --> 00:15:16,000 y luego descargar el GIF real, que es todo lo que hice. 276 00:15:16,000 --> 00:15:19,000 Y de hecho, es por eso que en mi HTML, recordar, aquí 277 00:15:19,000 --> 00:15:22,000 Yo tenía una etiqueta de imagen, que vimos brevemente la semana pasada 278 00:15:22,000 --> 00:15:24,000 cuya fuente es logo.gif. 279 00:15:24,000 --> 00:15:28,000 Y lo que de nuevo fue la motivación para tener este atributo alt, 280 00:15:28,000 --> 00:15:31,000 este atributo alternativa? 281 00:15:31,000 --> 00:15:33,000 Si. 282 00:15:33,000 --> 00:15:35,000 [Respuesta de los estudiantes inaudible] 283 00:15:35,000 --> 00:15:37,000 Bueno, por lo que 2 razones realmente, si el navegador no puede levantar la imagen 284 00:15:37,000 --> 00:15:40,000 porque usted tiene una conexión de red lenta o la imagen está dañada 285 00:15:40,000 --> 00:15:44,000 o algo así como que al menos el ser humano puede ver "CS50 búsqueda" 286 00:15:44,000 --> 00:15:46,000 y luego también por razones de accesibilidad. 287 00:15:46,000 --> 00:15:48,000 Si usted tiene un usuario que es ciego y utiliza un lector de pantalla 288 00:15:48,000 --> 00:15:50,000 por lo que, obviamente, no puede ver las imágenes por lo menos pueden 289 00:15:50,000 --> 00:15:52,000 escuchar el texto si su computadora se les habla. 290 00:15:52,000 --> 00:15:56,000 >> En general, esta es la mejor práctica cuando se trata de la accesibilidad de las páginas 291 00:15:56,000 --> 00:16:00,000 para que los usuarios incluso en esa situación puede oír o ver, por así decirlo, 292 00:16:00,000 --> 00:16:03,000 qué es lo que está en su página. 293 00:16:03,000 --> 00:16:05,000 Hay otra cosa que lo hice aquí 294 00:16:05,000 --> 00:16:09,000 que es un poco interesante, y veremos más sobre esto en conjunto de problemas 7 295 00:16:09,000 --> 00:16:12,000 a través de uno de los cortos dirigidos por uno de los compañeros docentes. 296 00:16:12,000 --> 00:16:15,000 Pero # contenido se refiere a la etiqueta 297 00:16:15,000 --> 00:16:20,000 cuyo identificador es el contenido, pero luego hay un espacio en blanco, y luego está la palabra de entrada. 298 00:16:20,000 --> 00:16:25,000 Bueno, lo interesante de CSS es que se puede 299 00:16:25,000 --> 00:16:29,000 se refieren a las etiquetas en una página clasificar de forma jerárquica, 300 00:16:29,000 --> 00:16:33,000 y lo que esto significa fragmento de CSS es encontrar la etiqueta 301 00:16:33,000 --> 00:16:37,000 cuyo identificador es el contenido, y luego aplicar las siguientes propiedades 302 00:16:37,000 --> 00:16:42,000 a todas las etiquetas de entrada que son descendientes de contenido, 303 00:16:42,000 --> 00:16:44,000 es decir que se aplica sangría dentro de ella. 304 00:16:44,000 --> 00:16:48,000 Indentación, de nuevo, sólo es importante para el equipo, no a la humana, 305 00:16:48,000 --> 00:16:51,000 pero por convención guión cosas a medida que profundizamos en una página, 306 00:16:51,000 --> 00:16:54,000 así que esto significa aplicar un margen de 5 píxeles a cualquier elemento de entrada 307 00:16:54,000 --> 00:16:57,000 que en algún lugar dentro o anidado dentro de 308 00:16:57,000 --> 00:16:59,000  el elemento cuyo ID es el contenido. 309 00:16:59,000 --> 00:17:01,000 >> ¿Quién hace eso aplica? 310 00:17:01,000 --> 00:17:03,000 Bueno, en realidad hay sólo estos 2 chicos aquí. 311 00:17:03,000 --> 00:17:05,000 Tenga en cuenta que en el interior de la forma hay 2 entradas, 312 00:17:05,000 --> 00:17:07,000 ya que ha sido durante todos estos ejemplos. 313 00:17:07,000 --> 00:17:11,000 Pero nótese que las 2 entradas sucede que se desliza por el interior, 314 00:17:11,000 --> 00:17:13,000 aunque un poco profunda, un par de capas de sangría, 315 00:17:13,000 --> 00:17:16,000 dentro de la etiqueta cuyo identificador es el contenido. 316 00:17:16,000 --> 00:17:18,000 ¿Qué quiere decir esto? 317 00:17:18,000 --> 00:17:21,000 Si vamos al navegador aquí se puede ver muy ligeramente- 318 00:17:21,000 --> 00:17:23,000 déjame acercar-que hay un poco de relleno entre el botón 319 00:17:23,000 --> 00:17:25,000 y entre el campo de texto. 320 00:17:25,000 --> 00:17:27,000 >> Permítanme temporalmente apaga eso. 321 00:17:27,000 --> 00:17:30,000 Déjame ir a mi CSS, y me dejó ir adelante y sólo 322 00:17:30,000 --> 00:17:34,000 cambiar este margen de 5 píxeles a 0 píxeles. 323 00:17:34,000 --> 00:17:37,000 Déjame ir por delante y luego y guardar el archivo, vuelva al motor de búsqueda 324 00:17:37,000 --> 00:17:40,000 y volver a cargar y ver el centro de la página. 325 00:17:40,000 --> 00:17:43,000 Todo se comprimen juntos, y cuando por primera vez azotado este ejemplo hasta 326 00:17:43,000 --> 00:17:46,000 Pensé que se veía estúpido con el campo de texto y luego en el botón inmediatamente debajo. 327 00:17:46,000 --> 00:17:50,000 Quería almohadilla él un poco, así que introdujo márgenes. 328 00:17:50,000 --> 00:17:55,000 Lo que no va a hacer en clase es ir a través de las varias docenas 329 00:17:55,000 --> 00:17:58,000 CSS propiedades que existen porque, de nuevo, hay cosas como el tamaño de fuente, 330 00:17:58,000 --> 00:18:02,000 peso de la fuente, márgenes, alinear el texto, y una docena de otros pocos, 331 00:18:02,000 --> 00:18:06,000 y le refieren en conjunto de problemas 7 a diversos tutoriales en línea 332 00:18:06,000 --> 00:18:08,000 y las referencias que le permiten recoger estas cosas. 333 00:18:08,000 --> 00:18:10,000 Pero lo que realmente importa al final del día 334 00:18:10,000 --> 00:18:12,000 >> es entender cómo estas cosas se aplican. 335 00:18:12,000 --> 00:18:15,000 Una vez más, si tenemos el estilo dentro de la etiqueta de los cuales 336 00:18:15,000 --> 00:18:19,000 puede ir a los selectores, el tipo de identificadores que especifican 337 00:18:19,000 --> 00:18:21,000 ¿a quién desea aplicar estas propiedades, 338 00:18:21,000 --> 00:18:24,000 y después de poner las propiedades como par de valores clave 339 00:18:24,000 --> 00:18:28,000 separados por dos puntos y terminó con un punto y coma, 340 00:18:28,000 --> 00:18:32,000 o se puede extraer de todo eso y ponerlo en un archivo CSS 341 00:18:32,000 --> 00:18:35,000 en sí mismo. 342 00:18:35,000 --> 00:18:39,000 Muy bien, cualquier pregunta sobre los conceptos 343 00:18:39,000 --> 00:18:41,000 o el gran cuadro de CSS? 344 00:18:41,000 --> 00:18:43,000 Tú otra vez veremos más de él en pset 7, 345 00:18:43,000 --> 00:18:47,000 pero vamos a seguir por lo general bastante simple. 346 00:18:47,000 --> 00:18:49,000 No? Está bien. 347 00:18:49,000 --> 00:18:51,000 Es hora de que un lenguaje de programación real, 348 00:18:51,000 --> 00:18:54,000 y vamos a volver a un poco de CSS en forma de un ejemplo. 349 00:18:54,000 --> 00:18:58,000 PHP es en realidad un lenguaje maravillosamente accesible 350 00:18:58,000 --> 00:19:02,000 en que esté sintácticamente casi equivalente a C. 351 00:19:02,000 --> 00:19:06,000 En otras palabras, si usted sabe C, ya sabes PHP para la mayor parte, 352 00:19:06,000 --> 00:19:08,000 al menos sintácticamente, a pesar de que hay algunas nuevas características 353 00:19:08,000 --> 00:19:10,000 y algunos conceptos nuevos que tendremos que mirar. 354 00:19:10,000 --> 00:19:13,000 >> Sin embargo, para la mayor parte, ahora que la transición de C a PHP 355 00:19:13,000 --> 00:19:16,000 la mayor parte del nuevo material es realmente en el panorama general, 356 00:19:16,000 --> 00:19:19,000 cómo se utiliza un lenguaje de programa en la web en lugar de 357 00:19:19,000 --> 00:19:23,000 en la línea de comandos o en un mensaje parpadeando, ya que hemos estado haciendo hasta ahora. 358 00:19:23,000 --> 00:19:27,000 Como referencia, especialmente con pset 7 y el proyecto final en adelante, 359 00:19:27,000 --> 00:19:31,000 se aprovechan de esta URL aquí si desea leer sobre las formalidades de PHP. 360 00:19:31,000 --> 00:19:34,000 De hecho, es como un libro de texto en línea gratis con eficacia, 361 00:19:34,000 --> 00:19:37,000 y usted también encontrará que lo que es realmente bueno de PHP 362 00:19:37,000 --> 00:19:41,000 es que hay cientos de funciones que vienen con el mismo, 363 00:19:41,000 --> 00:19:44,000 mientras que en C que no necesariamente tienen acceso a 364 00:19:44,000 --> 00:19:47,000 más funciones que estaban en la biblioteca matemática, la biblioteca CS50. 365 00:19:47,000 --> 00:19:51,000 En PHP y un montón de lenguas modernas, Python y Ruby, entre ellos, 366 00:19:51,000 --> 00:19:54,000 , tendrá acceso a tantas funciones más, lo que significa que tienes que escribir 367 00:19:54,000 --> 00:19:57,000 mucho menos código, ya que puede estar de pie sobre los hombros de los demás 368 00:19:57,000 --> 00:19:59,000 que ya han escrito algunas cosas para ti. 369 00:19:59,000 --> 00:20:03,000 >> Echemos un rápido recorrido por la sintaxis de PHP y luego escribir algunos ejemplos. 370 00:20:03,000 --> 00:20:06,000 Lo bueno de PHP, ante todo, 371 00:20:06,000 --> 00:20:08,000 es que no hay función principal. 372 00:20:08,000 --> 00:20:10,000 Si desea escribir un programa en PHP que acaba de empezar a escribir código, 373 00:20:10,000 --> 00:20:12,000 y usted no tiene que preocuparse de principal. 374 00:20:12,000 --> 00:20:14,000 No hay int. No hay retorno. 375 00:20:14,000 --> 00:20:17,000 No hay argv, argc que se requiere cuando se escribe el programa. 376 00:20:17,000 --> 00:20:20,000 Más bien puede simplemente comenzar a escribir código, y esto es en parte 377 00:20:20,000 --> 00:20:23,000 debido a que PHP es lo que se llama un lenguaje interpretado. 378 00:20:23,000 --> 00:20:26,000 C fue compilado, y que fue compilado en el sentido de que se inicie 379 00:20:26,000 --> 00:20:29,000 con el código fuente, se ejecuta a través de Clang, que es un compilador, 380 00:20:29,000 --> 00:20:33,000 y, finalmente, después de una cierta cantidad de pasos que obtener el código objeto, 0s y 1s. 381 00:20:33,000 --> 00:20:36,000 PHP y Python y Ruby y Pearl y otros 382 00:20:36,000 --> 00:20:39,000 diferentes tipos de idiomas que no les compilar. 383 00:20:39,000 --> 00:20:42,000 No te vas a partir del código fuente de 0s y 1s. 384 00:20:42,000 --> 00:20:45,000 Usted acaba de ejecutar el código fuente, y se ejecuta el código fuente 385 00:20:45,000 --> 00:20:49,000 escribiendo en un archivo de texto normal, que termina en. php en este caso 386 00:20:49,000 --> 00:20:53,000 en lugar de. c, y lo que hace el programa en su ordenador 387 00:20:53,000 --> 00:20:57,000 se interpreta literalmente el código línea por línea por línea. 388 00:20:57,000 --> 00:21:00,000 >> En otras palabras, en lugar de escribir un programa y ejecutar el programa 389 00:21:00,000 --> 00:21:04,000 directamente en su lugar escribir un programa con un archivo con extensión. php. 390 00:21:04,000 --> 00:21:09,000 A continuación, se ejecuta un programa llamado php.exe, si estás en Windows, 391 00:21:09,000 --> 00:21:12,000 PHP o simplemente si estás en Mac OS o Linux, 392 00:21:12,000 --> 00:21:17,000 y se proporciona como entrada al programa PHP su propio código fuente, 393 00:21:17,000 --> 00:21:20,000 y su propósito en la vida es leer su código de arriba a abajo, de izquierda a derecha, 394 00:21:20,000 --> 00:21:23,000 y hacer lo que he dicho. 395 00:21:23,000 --> 00:21:25,000 >> Veamos lo que esto va a significar sintácticamente. 396 00:21:25,000 --> 00:21:27,000 En PHP tenemos condiciones. 397 00:21:27,000 --> 00:21:29,000 Esta diapositiva es idéntico a lo que vimos en la semana 1 398 00:21:29,000 --> 00:21:33,000 porque sintácticamente condiciones, IFS e IFS else y else en PHP 399 00:21:33,000 --> 00:21:35,000 exactamente así. 400 00:21:35,000 --> 00:21:38,000 Cuando se trata de expresiones booleanas que van a ser exactamente así. 401 00:21:38,000 --> 00:21:43,000 Cuando se trata de Anding cosas juntos como booleanos que va a ser exactamente así. 402 00:21:43,000 --> 00:21:46,000 Cambia el mismo aspecto, y usted tiene el beneficio añadido en PHP 403 00:21:46,000 --> 00:21:51,000 que los interruptores en C sólo podía encender un char o int. 404 00:21:51,000 --> 00:21:53,000 No se podía encender un valor de cadena. 405 00:21:53,000 --> 00:21:55,000 En PHP usted puede realmente tener una expresión 406 00:21:55,000 --> 00:21:58,000 que es una variable cuyo contenido es una cadena, 407 00:21:58,000 --> 00:22:01,000 y en realidad se puede hacer la comparación de cadenas en la forma intuitiva real, 408 00:22:01,000 --> 00:22:06,000 No puntero comparación, a fin de decidir si hacer caso i o j u otra cosa. 409 00:22:06,000 --> 00:22:09,000 Veremos que posiblemente en poco tiempo. 410 00:22:09,000 --> 00:22:11,000 >> Loops demasiado maravillosamente son los mismos. 411 00:22:11,000 --> 00:22:15,000 Para bucles tienen una inicialización, una condición, y un cierto número de cambios. 412 00:22:15,000 --> 00:22:18,000 Aunque también existen bucles en PHP. 413 00:22:18,000 --> 00:22:21,000 ¿Es bucles while también existen en PHP, 414 00:22:21,000 --> 00:22:26,000 y existen matrices en PHP, pero aquí es donde la sintaxis empieza a ser un poco diferente, 415 00:22:26,000 --> 00:22:29,000 pero los conceptos son los mismos, y los conceptos realmente son los mismos 416 00:22:29,000 --> 00:22:32,000 como lo fueron en 0 Semana con Scratch. 417 00:22:32,000 --> 00:22:34,000 En primer lugar está el signo $. 418 00:22:34,000 --> 00:22:37,000 Esta fue una decisión de diseño en PHP por lo que cualquier variable 419 00:22:37,000 --> 00:22:41,000 en PHP de diseño comienza con signo $. 420 00:22:41,000 --> 00:22:46,000 No hay más X, Y, Z. Es ahora $ x, $ y, $ Z porque sí. 421 00:22:46,000 --> 00:22:49,000 Es algo a tener en cuenta, y ahora en el lado derecho 422 00:22:49,000 --> 00:22:52,000 esto es similar a una matriz, 423 00:22:52,000 --> 00:22:54,000 pero estamos usando corchetes aquí. 424 00:22:54,000 --> 00:22:57,000 En PHP y JavaScript, ya que finalmente va a ver, 425 00:22:57,000 --> 00:23:01,000 para declarar una matriz que hacer corchete abierto y cerrado corchete, 426 00:23:01,000 --> 00:23:04,000 y entonces usted tiene una lista separada por comas de valores, ya sea enteros 427 00:23:04,000 --> 00:23:09,000 o cadenas de caracteres, o lo que quieras, dentro de esa expresión allí. 428 00:23:09,000 --> 00:23:11,000 >> Ahora, ¿cómo hacemos algo como esto en C? 429 00:23:11,000 --> 00:23:16,000 ¿Cuál es la sintaxis para declarar estáticamente una matriz de números conocidos? 430 00:23:16,000 --> 00:23:19,000 Fue llaves, la diferencia tan pequeña aquí, pero tanto en PHP 431 00:23:19,000 --> 00:23:22,000 y, finalmente, que sólo utiliza JavaScript corchetes, por lo que realmente 432 00:23:22,000 --> 00:23:25,000 el único detalle interesante es el signo $ para el nombre de la variable 433 00:23:25,000 --> 00:23:28,000 y también los corchetes, y hay una cosa curiosa 434 00:23:28,000 --> 00:23:32,000 que se ha omitido también en el lado de la izquierda del signo =. 435 00:23:32,000 --> 00:23:36,000 Lo que falta que hemos estado requiriendo desde hace semanas? Si. 436 00:23:36,000 --> 00:23:38,000 [Respuesta de los estudiantes inaudible] 437 00:23:38,000 --> 00:23:41,000 El tamaño, por lo que no hay ninguna mención del tamaño de la matriz. 438 00:23:41,000 --> 00:23:45,000 Francamente, no hay mención de corchetes en el lado izquierdo 439 00:23:45,000 --> 00:23:47,000 del signo =, y lo que más falta en la línea? 440 00:23:47,000 --> 00:23:49,000 Si. >> [Inaudible respuesta de los estudiantes] 441 00:23:49,000 --> 00:23:52,000 El tipo, así que lo que es interesante en particular sobre PHP 442 00:23:52,000 --> 00:23:56,000 es que no es un lenguaje fuertemente tipado como C es, 443 00:23:56,000 --> 00:23:58,000 y eso es inflexible en el sentido de que hay que decir char, 444 00:23:58,000 --> 00:24:00,000 debe decir int, debe decir flotador. 445 00:24:00,000 --> 00:24:03,000 >> Cada vez que desee una variable que tiene que decirle a su Clang qué tipo es. 446 00:24:03,000 --> 00:24:05,000 PHP es un poco perezoso. 447 00:24:05,000 --> 00:24:08,000 Se escriben libremente en el sentido de que 448 00:24:08,000 --> 00:24:11,000 usted puede tener flotadores y caracteres y cadenas 449 00:24:11,000 --> 00:24:14,000 y ints y así sucesivamente, pero el propio idioma 450 00:24:14,000 --> 00:24:17,000 en realidad no importa lo que usted pone dentro de una variable. 451 00:24:17,000 --> 00:24:20,000 Usted no tiene que informar de antemano qué tipo de datos 452 00:24:20,000 --> 00:24:22,000 va en una variable. 453 00:24:22,000 --> 00:24:24,000 Es totalmente de usted, así que es agradable 454 00:24:24,000 --> 00:24:27,000 en que usted no tiene que preocuparse tanto acerca de los datos a escribir 455 00:24:27,000 --> 00:24:29,000 y preocupante lo que sus argumentos son y así sucesivamente. 456 00:24:29,000 --> 00:24:32,000 Esto también significa que, finalmente, las funciones en PHP va a ser capaz de volver 457 00:24:32,000 --> 00:24:36,000 o bien más de un int el tiempo, y una vez que tal vez en cuando 458 00:24:36,000 --> 00:24:40,000 van a devolver un bool, un valor lógico falso, por ejemplo, para significar que algo salió mal. 459 00:24:40,000 --> 00:24:44,000 Esto nos da algunas Upsides, sino que también nos hará por tipo de diseño 460 00:24:44,000 --> 00:24:47,000 un poco más flojo cuando se trata de tipos de datos. 461 00:24:47,000 --> 00:24:50,000 >> ¿Qué más hay que tener en cuenta aquí? 462 00:24:50,000 --> 00:24:54,000 Variables mirar como esto, así que $ s = "hola, mundo". 463 00:24:54,000 --> 00:24:57,000 Esa es quizás inferirse a partir del ejemplo anterior, 464 00:24:57,000 --> 00:24:59,000 y tenemos otro tipo de bucle. 465 00:24:59,000 --> 00:25:02,000 Esta realidad nos veremos de vez en cuando, ya que es bastante práctico, 466 00:25:02,000 --> 00:25:04,000 construir un foreach. 467 00:25:04,000 --> 00:25:11,000 En este caso, el bucle foreach lleva dentro de sus paréntesis 3 palabras típicamente, 468 00:25:11,000 --> 00:25:16,000 $ Algo en primer lugar, que es lo que quieres array para iterar sobre los miembros, 469 00:25:16,000 --> 00:25:19,000 entonces, literalmente, la palabra clave como, a continuación, por último, 470 00:25:19,000 --> 00:25:21,000 otro nombre de variable que puedes elegir. 471 00:25:21,000 --> 00:25:23,000 Puede ser foo, bar, o elemento, 472 00:25:23,000 --> 00:25:26,000 y lo que esta construcción no 473 00:25:26,000 --> 00:25:29,000 es si el array $ contiene 10 elementos 474 00:25:29,000 --> 00:25:34,000 en cada iteración de este conjunto-lo siento, en cada iteración de este bucle 475 00:25:34,000 --> 00:25:37,000 el elemento variable llamada va a ser actualizada 476 00:25:37,000 --> 00:25:40,000 para ser el primer elemento de la matriz, entonces el segundo elemento de la matriz, 477 00:25:40,000 --> 00:25:44,000 a continuación, el tercer elemento de la matriz, evitando así la necesidad 478 00:25:44,000 --> 00:25:46,000 para hacer el soporte de notación cuadrada ligeramente molesto y 479 00:25:46,000 --> 00:25:49,000 $ I con el fin de índice en una matriz. 480 00:25:49,000 --> 00:25:53,000 PHP hace todo ese trabajo por usted y en cada iteración 481 00:25:53,000 --> 00:25:55,000 sólo te entrega el siguiente elemento de la matriz 482 00:25:55,000 --> 00:26:01,000 sin que tenga que conocer o preocuparse por su posición de índice numérico. 483 00:26:01,000 --> 00:26:04,000 >> Y luego, por último, por ahora, no hay otra característica de PHP 484 00:26:04,000 --> 00:26:08,000 que va a ser enormemente útil, especialmente cuando comenzamos la programación en la Web, 485 00:26:08,000 --> 00:26:10,000 y que se conoce como una matriz asociativa. 486 00:26:10,000 --> 00:26:13,000 Los arreglos que conocemos hasta ahora como de 20 segundos hace 487 00:26:13,000 --> 00:26:17,000 y durante los últimos 8 semanas se indexado numéricamente arrays, 488 00:26:17,000 --> 00:26:20,000 tipo de arreglos tradicionales, donde los índices son enteros, 489 00:26:20,000 --> 00:26:23,000 0, 1, 2, todo el camino hacia arriba. 490 00:26:23,000 --> 00:26:25,000 Las matrices asociativas son mucho más poderosos. 491 00:26:25,000 --> 00:26:28,000 Te permiten tener claves arbitrarias, 492 00:26:28,000 --> 00:26:31,000 índices arbitrarios y valores arbitrarios. 493 00:26:31,000 --> 00:26:34,000 Mientras que en una matriz tradicional es 0, 1, 2, 494 00:26:34,000 --> 00:26:37,000 en una matriz asociativa que puede tener un índice 495 00:26:37,000 --> 00:26:41,000 o una tecla de foo cuyo valor es bar. 496 00:26:41,000 --> 00:26:46,000 A continuación, puede tener otra clave cuyo nombre es baz y cuyo valor es qux. 497 00:26:46,000 --> 00:26:49,000 >> Una vez más, estúpidos informáticos genéricos nombres de las variables aquí, 498 00:26:49,000 --> 00:26:55,000 pero el punto es que esta serie no tiene soporte 0 o soporte 1. 499 00:26:55,000 --> 00:26:59,000 Está vez va a tener soporte foo y baz soporte. 500 00:26:59,000 --> 00:27:03,000 Esto es mucho más versátil en el que vamos a ser capaces de asociar 501 00:27:03,000 --> 00:27:07,000 palabras con otras palabras, las claves con valores completamente arbitraria, 502 00:27:07,000 --> 00:27:12,000 y vamos a ser capaces de obtener esos valores en el tiempo constante 503 00:27:12,000 --> 00:27:14,000 por debajo de la capucha lo que es un array asociativo 504 00:27:14,000 --> 00:27:16,000 realmente es una tabla hash. 505 00:27:16,000 --> 00:27:20,000 Recordemos que una tabla hash le permite poner en alguna entrada 506 00:27:20,000 --> 00:27:25,000 como poner en la palabra David si desea insertar David en una especie de diccionario, 507 00:27:25,000 --> 00:27:27,000 y luego volver algún valor típicamente. 508 00:27:27,000 --> 00:27:29,000 En el caso de la ortografía, verdadera o falsa. 509 00:27:29,000 --> 00:27:33,000 David o cualquier palabra que esté o no está en el diccionario. 510 00:27:33,000 --> 00:27:36,000 Una matriz asociativa es en realidad una tabla hash, 511 00:27:36,000 --> 00:27:38,000 pero es una encarnación de usuario mucho más amigable de la misma. 512 00:27:38,000 --> 00:27:41,000 Como veremos, esto va a permitir que hagamos algunas cosas 513 00:27:41,000 --> 00:27:43,000 muy, muy fácilmente. 514 00:27:43,000 --> 00:27:45,000 >> Echemos un vistazo a algunos básicos PHP 515 00:27:45,000 --> 00:27:47,000 ejemplos y ver lo que podemos hacer con este lenguaje. 516 00:27:47,000 --> 00:27:51,000 Déjenme seguir adelante y abrir en nuestro directorio de origen hoy 517 00:27:51,000 --> 00:27:54,000 un archivo llamado hello1.php. 518 00:27:54,000 --> 00:27:57,000 Este archivo es más un comentario de lo que es el código real, 519 00:27:57,000 --> 00:28:00,000 así que realmente me quite todos los comentarios en el archivo 520 00:28:00,000 --> 00:28:05,000 y presentar a usted tal vez el programa más simple PHP aquí. 521 00:28:05,000 --> 00:28:07,000 5 líneas, y algunos de los que son los espacios en blanco, 522 00:28:07,000 --> 00:28:09,000 así notar algunas diferencias clave aquí. 523 00:28:09,000 --> 00:28:12,000 El archivo se llama hello1.php. 524 00:28:12,000 --> 00:28:16,000 La primera línea, sin embargo, es 00:28:18,000 De espíritu similar al HTML, 526 00:28:18,000 --> 00:28:21,000 secuencia de caracteres que indica a la computadora 527 00:28:21,000 --> 00:28:25,000 "Hey, computadora, aquí viene un programa que estamos en en PHP." 528 00:28:25,000 --> 00:28:28,000 Se asegura de que no está confundido que es algún otro idioma. 529 00:28:28,000 --> 00:28:30,000 Línea 2 es un espacio en blanco interesante. 530 00:28:30,000 --> 00:28:32,000 La línea 3 es nuestro viejo amigo printf, 531 00:28:32,000 --> 00:28:34,000 esta vez en el contexto de PHP. 532 00:28:34,000 --> 00:28:37,000 PHP tiene su propia versión de printf que se comporta exactamente igual, 533 00:28:37,000 --> 00:28:39,000 así que esto es sólo va a imprimir "hola, mundo". 534 00:28:39,000 --> 00:28:46,000 Y entonces esta etiqueta contrario aquí,>, significa que es para mi código PHP. 535 00:28:46,000 --> 00:28:48,000 >> Vamos a ver cómo manejar esto. 536 00:28:48,000 --> 00:28:50,000 Voy a volver a mi ventana de terminal aquí. 537 00:28:50,000 --> 00:28:52,000 Voy a entrar en mi directorio PHP. 538 00:28:52,000 --> 00:28:56,000 Tenga en cuenta que tenemos un montón de archivos, el primero de los cuales es hello.php. 539 00:28:56,000 --> 00:29:01,000 Déjenme seguir adelante y ejecutar este hello1.php, entrar. 540 00:29:01,000 --> 00:29:03,000 Permiso denegado. Bien. 541 00:29:03,000 --> 00:29:06,000 ¿Cómo nos hemos fijado este tipo de cosas en el pasado? 542 00:29:06,000 --> 00:29:08,000 ¿Qué es eso? >> [Respuesta de los estudiantes inaudible] 543 00:29:08,000 --> 00:29:11,000 Necesitamos leer y escribir, pero me deja hacer ls-l. 544 00:29:11,000 --> 00:29:14,000 Recuerde que esta salida un tanto críptica cual hello1 545 00:29:14,000 --> 00:29:17,000 parece ser de lectura y escritura por mí 546 00:29:17,000 --> 00:29:19,000 pero legible por todos los demás. 547 00:29:19,000 --> 00:29:22,000 Resulta que este hecho no es un paso en la dirección correcta. 548 00:29:22,000 --> 00:29:25,000 La diferencia, de nuevo, con un lenguaje interpretado 549 00:29:25,000 --> 00:29:27,000 es que no se ejecute el programa directamente. 550 00:29:27,000 --> 00:29:30,000 Usted en vez ejecutar un intérprete y entregarla el código 551 00:29:30,000 --> 00:29:33,000 que has escrito para que pueda interpretarlo línea por línea. 552 00:29:33,000 --> 00:29:36,000 En este caso, el intérprete o el programa que realmente desea ejecutar 553 00:29:36,000 --> 00:29:38,000 es, literalmente, llamado PHP. 554 00:29:38,000 --> 00:29:41,000 >> En algún lugar de este disco duro de la máquina hay un programa 555 00:29:41,000 --> 00:29:45,000 alguien escribió llamado PHP, o en Windows php.exe. 556 00:29:45,000 --> 00:29:48,000 Lo que voy a hacer aquí es que voy a correr realmente PHP 557 00:29:48,000 --> 00:29:51,000 pero lo da como un argumento de línea de comandos el código que he escrito, 558 00:29:51,000 --> 00:29:54,000 y luego voy a alejar la imagen y pulsa enter. 559 00:29:54,000 --> 00:29:58,000 Se ejecuta mi programa para mí, de arriba a abajo, de izquierda a derecha. 560 00:29:58,000 --> 00:30:01,000 Déjenme seguir adelante y abrir una variación leve de esto. 561 00:30:01,000 --> 00:30:05,000 En hello2.php aviso que esto también 562 00:30:05,000 --> 00:30:08,000 es en su mayoría comentarios, así que vamos a deshacerme de ellos como una distracción, 563 00:30:08,000 --> 00:30:13,000 y lo que es claramente diferente ahora sobre este archivo? 564 00:30:13,000 --> 00:30:15,000 Hay una nueva línea, un tanto críptica en la parte superior. 565 00:30:15,000 --> 00:30:20,000 En la línea 1 es #! / Bin / php. 566 00:30:20,000 --> 00:30:24,000 Bin es una convención en Linux y Mac OS para binarios, 567 00:30:24,000 --> 00:30:27,000 por lo que / bin significa que es una carpeta que contiene un montón de archivos binarios 568 00:30:27,000 --> 00:30:29,000 que se programa, una de las cuales es PHP. 569 00:30:29,000 --> 00:30:32,000 El #! Es apodado shebang, 570 00:30:32,000 --> 00:30:35,000 que es la forma más rápida de decirlo, y lo que significa este 571 00:30:35,000 --> 00:30:40,000 es que cuando se ejecuta este programa ahora hay una alusión a la parte superior del archivo 572 00:30:40,000 --> 00:30:44,000 que le dice al ordenador qué intérprete de usar. 573 00:30:44,000 --> 00:30:47,000 >> Se pone un poco molesto si tienes que decirle a sus usuarios y clientes 574 00:30:47,000 --> 00:30:50,000 "Hey, escribimos este programa llamado hello1.php". 575 00:30:50,000 --> 00:30:54,000 Todo lo que tienes que hacer es correr PHP para siempre y luego el nombre de este programa. 576 00:30:54,000 --> 00:30:58,000 Francamente, no sería más que agradable para correr hello1.php, 577 00:30:58,000 --> 00:31:00,000 y, de hecho, podemos si hacemos lo siguiente. 578 00:31:00,000 --> 00:31:05,000 Déjenme seguir adelante y hacer ls-l, y el aviso en hello2 todavía es sólo de lectura y escritura 579 00:31:05,000 --> 00:31:10,000 y luego leer leer, así que todavía no puedo hacer esto, hello2.php. 580 00:31:10,000 --> 00:31:15,000 Pero hemos introducido esta muy brevemente la última vez, el comando chmod. 581 00:31:15,000 --> 00:31:20,000 Si lo hago chmod a + x, lo que significa todo ejecutabilidad plus, 582 00:31:20,000 --> 00:31:26,000 y luego hello2.php y luego hacer ls-l de nuevo notar lo que ha cambiado. 583 00:31:26,000 --> 00:31:29,000 Uno, Linux me muestra el nombre del archivo en verde para transmitir la idea 584 00:31:29,000 --> 00:31:32,000 que es ejecutable, pero que es más importante, en el lado izquierdo 585 00:31:32,000 --> 00:31:36,000 cuenta de que el bit que representa para x ejecutable ha sido establecido. 586 00:31:36,000 --> 00:31:42,000 Lo que esto significa es ahora puedo correr ./hello2.php como de costumbre, 587 00:31:42,000 --> 00:31:45,000 pulsa enter, y debido a todo el asunto en la parte superior del archivo 588 00:31:45,000 --> 00:31:48,000 que hay una pista, una vez más, que dice a Linux 589 00:31:48,000 --> 00:31:51,000 utilizar este intérprete para ejecutar este archivo. 590 00:31:51,000 --> 00:31:54,000 No te preocupes por obligar al usuario a realmente escribir. 591 00:31:54,000 --> 00:31:57,000 >> Y lo que es bueno es que es algo irrelevante a mis clientes o mis amigos 592 00:31:57,000 --> 00:32:01,000 idioma que escribí este programa, así que me puede seguir adelante con mv 593 00:32:01,000 --> 00:32:04,000 y cambiar el nombre de esta cosa hello2, por ejemplo. 594 00:32:04,000 --> 00:32:07,000 Y ahora si me lo ./hello2 595 00:32:07,000 --> 00:32:10,000 y alejar mi programa sigue funcionando. 596 00:32:10,000 --> 00:32:13,000 Estas extensiones de archivo son una convención humana que es necesario 597 00:32:13,000 --> 00:32:15,000 para algo como Clang y hacer que buscarlos. 598 00:32:15,000 --> 00:32:18,000 Pero para PHP, yo podría llamar a esto cualquier cosa extensión de archivo que quiero. 599 00:32:18,000 --> 00:32:22,000 Podía engañar al mundo haciéndole creer que soy realmente bueno en Ruby, 600 00:32:22,000 --> 00:32:25,000 y yo podría escribir hello2.rb y luego ejecutarlo, 601 00:32:25,000 --> 00:32:28,000 y listo, ahora tengo la versión de Ruby, que es una completa mentira. 602 00:32:28,000 --> 00:32:30,000 Sin embargo, las extensiones de los archivos no tienen sentido 603 00:32:30,000 --> 00:32:35,000 si el archivo es ejecutable y tiene esta pista especial en la parte superior del archivo. 604 00:32:35,000 --> 00:32:38,000 >> Ahora, en un aparte, permítanme mostrarles rápidamente la versión 3, 605 00:32:38,000 --> 00:32:40,000 que es una especie de truco útil conocer. 606 00:32:40,000 --> 00:32:45,000 En hello3 hice algo un poco mal 607 00:32:45,000 --> 00:32:47,000 que voy a actualizar la línea de código fuente. 608 00:32:47,000 --> 00:32:50,000 En la versión 3, resulta que en la mayoría de sistemas Linux 609 00:32:50,000 --> 00:32:53,000 hay un programa llamado env para el medio ambiente, 610 00:32:53,000 --> 00:32:56,000 y lo que puedes hacer aquí es que si usted no tiene ninguna idea de dónde PHP 611 00:32:56,000 --> 00:33:00,000 está instalado en el disco duro local, ya que en realidad podría variar en función de la computadora 612 00:33:00,000 --> 00:33:03,000 que alguien está usando, env sólo dice ejecute env, 613 00:33:03,000 --> 00:33:07,000 que se encuentra en la mayoría de los sistemas, y averiguar donde PHP es. 614 00:33:07,000 --> 00:33:11,000 Sólo un truco común por lo que no tiene que preocuparse de saber que un programa es. 615 00:33:11,000 --> 00:33:14,000 Pero si te importa para saber dónde es un programa y no se ha atendido hasta el momento 616 00:33:14,000 --> 00:33:16,000 puede utilizar el comando que. 617 00:33:16,000 --> 00:33:19,000 >> Permítanme hacer un zoom hacia fuera y que tipo php, 618 00:33:19,000 --> 00:33:23,000 y note que me dice que es en realidad en usr / bin / php. 619 00:33:23,000 --> 00:33:25,000 Es una especie de mentira. También en salida. 620 00:33:25,000 --> 00:33:27,000 Se me acaba de mostrar el primer golpe. 621 00:33:27,000 --> 00:33:31,000 Si te has preguntado donde Clang es decir, que Clang, que está en usr / bin / clang, 622 00:33:31,000 --> 00:33:34,000 que hacer, usr / bin / make, y lo que eso significa es que todo este tiempo 623 00:33:34,000 --> 00:33:38,000 que podría haber estado escribiendo usr / bin / clang Intro para ejecutar Clang, 624 00:33:38,000 --> 00:33:41,000 pero es un poco tedioso para hacerlo, por lo que algunas carpetas 625 00:33:41,000 --> 00:33:44,000 como usr / bin bin y se supone que son valores predeterminados 626 00:33:44,000 --> 00:33:50,000 por lo que el equipo sabe que mirar en ellos para usted. 627 00:33:50,000 --> 00:33:53,000 Cualquier pregunta sobre cómo escribir un super, super sencillo programa Hello World 628 00:33:53,000 --> 00:33:55,000 en PHP y luego lo ejecuta? 629 00:33:55,000 --> 00:33:59,000 Porque ahora vamos a empezar a introducir la sintaxis más convincentes. 630 00:33:59,000 --> 00:34:01,000 Muy bien, aquí vamos. 631 00:34:01,000 --> 00:34:03,000 Estos programas que hemos visto a todos ellos antes. 632 00:34:03,000 --> 00:34:07,000 >> Si abro, por ejemplo, vamos a hacer beer1.php, 633 00:34:07,000 --> 00:34:09,000 no vamos a ir a través de varias versiones de esto, pero lo que hice 634 00:34:09,000 --> 00:34:13,000 Se me senté y lo derramó o se convierten 635 00:34:13,000 --> 00:34:15,000 mi código C para el código PHP aquí. 636 00:34:15,000 --> 00:34:18,000 La mayor parte de la parte superior del archivo es comentarios aquí. 637 00:34:18,000 --> 00:34:20,000 Resulta que hay una nueva función que necesitamos llamada readline. 638 00:34:20,000 --> 00:34:23,000 GetString, el recuerdo, desde la semana 0 en adelante fue una cosa CS50. 639 00:34:23,000 --> 00:34:27,000 PHP viene con su propio fácil de usar función llamada readline 640 00:34:27,000 --> 00:34:30,000 que toma un argumento que especifica el indicador 641 00:34:30,000 --> 00:34:33,000 que desea mostrar al usuario, y hace lo que readline 642 00:34:33,000 --> 00:34:35,000 se devuelve todo lo que el usuario escribe pulg 643 00:34:35,000 --> 00:34:39,000 En este caso, estoy declarando una variable llamada $ n. 644 00:34:39,000 --> 00:34:42,000 Estoy almacenando en ella el valor de retorno de readline 645 00:34:42,000 --> 00:34:44,000 después de preguntar al usuario con esta cadena. 646 00:34:44,000 --> 00:34:47,000 Simplemente copia de seguridad, para ejecutar realmente esta cosa, déjame ir por delante 647 00:34:47,000 --> 00:34:50,000 y ejecutar beer1.php php. 648 00:34:50,000 --> 00:34:53,000 ¿Cuántas botellas habrá? Vamos a hacer esta vez 2. 649 00:34:53,000 --> 00:34:55,000 Intro. Eso es todo. 650 00:34:55,000 --> 00:34:59,000 >> El programa es funcionalmente idéntica a la versión C de semanas atrás. 651 00:34:59,000 --> 00:35:01,000 Pero sintácticamente vamos a ver lo que es diferente. 652 00:35:01,000 --> 00:35:05,000 Después de obtener un int partir de la notificación de usuario que estoy haciendo un poco de comprobación de errores, 653 00:35:05,000 --> 00:35:08,000 y si n es menor que 1 dejé y me imprimir 654 00:35:08,000 --> 00:35:11,000 un mensaje no para el usuario y con la salida 1. 655 00:35:11,000 --> 00:35:13,000 Esto también es un poco diferente. 656 00:35:13,000 --> 00:35:16,000  En C, ¿qué hicimos? En C volvimos 1. 657 00:35:16,000 --> 00:35:20,000 En PHP salir con 1, que, francamente, creo que es un poco más intuitivo 658 00:35:20,000 --> 00:35:22,000 porque estás literalmente salir del programa. 659 00:35:22,000 --> 00:35:25,000 Muy bien, y entonces aquí la canción molesta es sintácticamente idéntico 660 00:35:25,000 --> 00:35:29,000 a excepción de la variable, por lo que aquí abajo, en la línea 24 en adelante 661 00:35:29,000 --> 00:35:31,000 cuenta de mi bucle for es casi lo mismo, 662 00:35:31,000 --> 00:35:34,000 pero tengo $ delante de i y n, 663 00:35:34,000 --> 00:35:37,000 y lo que es también falta de la línea 26 que hemos tenido en el pasado 664 00:35:37,000 --> 00:35:39,000 cuando se declara una variable i? 665 00:35:39,000 --> 00:35:41,000 No hay ningún tipo. 666 00:35:41,000 --> 00:35:43,000 No es correcto decir que en PHP int. 667 00:35:43,000 --> 00:35:45,000 Simplemente no es necesario hacer eso. 668 00:35:45,000 --> 00:35:48,000 La computadora, el intérprete PHP es lo suficientemente inteligente como para darse cuenta de 669 00:35:48,000 --> 00:35:51,000 que si se pone un número en $ I este será tratado 670 00:35:51,000 --> 00:35:53,000 como un número para ti. 671 00:35:53,000 --> 00:35:57,000 Y aquí nos conecte $ i, $ i, $ i - 1. 672 00:35:57,000 --> 00:36:00,000 Todo esto es lo mismo, y entonces aquí hacemos un "Wow, eso es molesto" printf 673 00:36:00,000 --> 00:36:02,000 y luego salir (0). 674 00:36:02,000 --> 00:36:05,000 >> Una vez más, la comida para llevar es que a pesar de que vamos a pasar relativamente 675 00:36:05,000 --> 00:36:09,000 poco tiempo en PHP, sin duda frente a lo que hicimos en C, 676 00:36:09,000 --> 00:36:12,000 que es casi lo mismo, y así lo vamos a hacer hoy y la semana que viene 677 00:36:12,000 --> 00:36:14,000 y más allá es realmente centrarse en algunas de las nuevas ideas. 678 00:36:14,000 --> 00:36:17,000 Sólo para ver que otra cosa se traduce por encima de C, 679 00:36:17,000 --> 00:36:20,000 Este fue un programa super simple que hicimos en la Semana 1 680 00:36:20,000 --> 00:36:22,000 o 2 en cubos que un valor. 681 00:36:22,000 --> 00:36:25,000 Pero lo interesante en el momento de este programa es que 682 00:36:25,000 --> 00:36:28,000 introdujo la noción de una función personalizada escrito que nosotros mismos hemos escrito. 683 00:36:28,000 --> 00:36:31,000 La sintaxis de PHP es casi el mismo. 684 00:36:31,000 --> 00:36:33,000 Aquí está mi programa hasta la parte superior. 685 00:36:33,000 --> 00:36:35,000 Note una vez más ausente es cualquier noción de principal. 686 00:36:35,000 --> 00:36:39,000 Empiezo a escribir código, y esto es lo que va a conseguir ejecutado por el intérprete. 687 00:36:39,000 --> 00:36:42,000 Puedo imprimir x ahora es 2, es de suponer. 688 00:36:42,000 --> 00:36:44,000 Entonces me dicen cubicar ... 689 00:36:44,000 --> 00:36:47,000 Entonces llama a la función cubo y pase $ x 690 00:36:47,000 --> 00:36:50,000 y asigne el valor devuelto a $ x. 691 00:36:50,000 --> 00:36:53,000 Entonces me dicen que está en cubos, y luego me dicen esto, que es de esperar 692 00:36:53,000 --> 00:36:55,000 diremos que x es ahora 8. 693 00:36:55,000 --> 00:36:59,000 La sintaxis de la función en PHP es muy ligeramente diferente. 694 00:36:59,000 --> 00:37:01,000 Una vez más falta es el tipo de retorno. 695 00:37:01,000 --> 00:37:05,000 Una vez más falta es el tipo de retorno y también es lo que falta otro tipo? 696 00:37:05,000 --> 00:37:07,000 [Respuesta de los estudiantes inaudible] 697 00:37:07,000 --> 00:37:10,000 Bueno, está bien, eso es bueno. Vamos a volver a eso en un segundo. 698 00:37:10,000 --> 00:37:12,000 >> No tenemos, por ejemplo, int aquí. 699 00:37:12,000 --> 00:37:15,000 No tenemos, por ejemplo, han int aquí porque, de nuevo, en PHP 700 00:37:15,000 --> 00:37:18,000 simplemente no es necesario y no debe hacer eso, 701 00:37:18,000 --> 00:37:20,000 sino que hay esta nueva palabra clave se llama función. 702 00:37:20,000 --> 00:37:23,000 En PHP es casi un poco más claro, porque cuando se desea una función 703 00:37:23,000 --> 00:37:26,000 que literalmente dicen función, le das un nombre y una lista separada por comas 704 00:37:26,000 --> 00:37:28,000 si alguno de sus argumentos. 705 00:37:28,000 --> 00:37:32,000 No hay necesidad de decir nula o algo así, y luego de retorno es el mismo, 706 00:37:32,000 --> 00:37:35,000 $ A * a * $ $ a. 707 00:37:35,000 --> 00:37:38,000 Lo que también falta? Sammy señalamos aquí. 708 00:37:38,000 --> 00:37:43,000 En la parte superior del archivo completamente ausente en PHP también es un prototipo. 709 00:37:43,000 --> 00:37:45,000 Esto también es por diseño. 710 00:37:45,000 --> 00:37:48,000 Idiomas e intérpretes como PHP son más inteligentes que alguna vez lo fue C 711 00:37:48,000 --> 00:37:50,000 en los compiladores como Clang. 712 00:37:50,000 --> 00:37:53,000 >> Recordemos que Clang, si no lo digo que existe cubo, 713 00:37:53,000 --> 00:37:56,000 si no lo digo que printf existe como un prototipo 714 00:37:56,000 --> 00:38:00,000 o con un # include, bueno, iba a gritar a usted y ni siquiera compilar el código. 715 00:38:00,000 --> 00:38:03,000 PHP y otros idiomas modernos son mucho más inteligentes cuando se trata de esto. 716 00:38:03,000 --> 00:38:07,000 Ellos se encargan de leer a través de todo el código 717 00:38:07,000 --> 00:38:11,000 y luego gritan a usted sólo si se encuentra en ninguna parte del cubo. 718 00:38:11,000 --> 00:38:15,000 No importa si es cubo en la parte inferior o la parte superior o incluso en algún archivo separado. 719 00:38:15,000 --> 00:38:18,000 Lenguajes PHP y similares son ahora lo suficientemente inteligente como para mirar hacia adelante 720 00:38:18,000 --> 00:38:26,000 en todo considerando que antes por haber cometido un error. 721 00:38:26,000 --> 00:38:28,000 ¿Dónde nos deja eso? 722 00:38:28,000 --> 00:38:32,000 >> Vamos a hacer un último ejemplo aquí en las condiciones, 723 00:38:32,000 --> 00:38:35,000 y si abro aviso conditions2.php demasiado 724 00:38:35,000 --> 00:38:37,000 sintaxis aquí es casi el mismo. 725 00:38:37,000 --> 00:38:40,000 Estoy usando readline en lugar de GetString, pero esa línea es la misma que antes, 726 00:38:40,000 --> 00:38:42,000 "Me gustaría un entero por favor." 727 00:38:42,000 --> 00:38:45,000 Después, hay una condición si, una persona si, a continuación, una persona, 728 00:38:45,000 --> 00:38:48,000 pero funcionalmente este programa también es idéntico a lo que hicimos semanas atrás, 729 00:38:48,000 --> 00:38:51,000 así que si me quedo esto, php de Condiciones2, 730 00:38:51,000 --> 00:38:54,000 y le doy un número como 23 - 731 00:38:54,000 --> 00:38:57,000 Escogí un número positivo. Si le doy -1 cogí un número negativo. 732 00:38:57,000 --> 00:39:00,000 Si le doy 0 Yo a la verdad recogió 0. 733 00:39:00,000 --> 00:39:02,000 Entonces, ¿quién se preocupa de todo esto? 734 00:39:02,000 --> 00:39:06,000 Bueno, uno de la clase de diversión ejercicios aquí 735 00:39:06,000 --> 00:39:10,000 al menos para mí era ir hacia atrás y ver lo rápido que podría poner en práctica pset 5, 736 00:39:10,000 --> 00:39:12,000 el conjunto de procesadores faltas de ortografía. 737 00:39:12,000 --> 00:39:15,000 Recordemos que había un archivo llamado speller.c, 738 00:39:15,000 --> 00:39:17,000 y había un archivo llamado dictionary.c. 739 00:39:17,000 --> 00:39:20,000 Lo que yo hice fue un poco gastado unos minutos y me convertí el código C 740 00:39:20,000 --> 00:39:23,000 de código PHP, y no vamos a pasar mucho tiempo en speller 741 00:39:23,000 --> 00:39:26,000 porque al igual que en el conjunto de procesadores 5 usted realmente no necesita 742 00:39:26,000 --> 00:39:29,000 pasan mucho tiempo en ortografía sí mismo porque su atención estaba en diccionario. 743 00:39:29,000 --> 00:39:32,000 >> Baste decir que si usted lee a través de ortografía, 744 00:39:32,000 --> 00:39:35,000 este archivo aquí, que es más o menos equivalente al código C 745 00:39:35,000 --> 00:39:37,000 le dio para pset 5. 746 00:39:37,000 --> 00:39:39,000 Acabo de añadir un poco de $ en los lugares. 747 00:39:39,000 --> 00:39:43,000 He cambiado algunos nombres de función si no existe en PHP. 748 00:39:43,000 --> 00:39:45,000 Hay una cosa adicional aquí, preg_match, 749 00:39:45,000 --> 00:39:48,000 que es la forma un poco más elegante de hacer algo, pero vamos a volver a ese tiempo. 750 00:39:48,000 --> 00:39:51,000 Pero en fin, ortografía es casi idéntico, y si nos fijamos en la parte inferior 751 00:39:51,000 --> 00:39:54,000 lo que finalmente escupe es esto aquí, 752 00:39:54,000 --> 00:39:57,000 palabras mal escritas, las palabras en el diccionario, las palabras en el texto. 753 00:39:57,000 --> 00:40:00,000 Muy bien, así que lo interesante ahora es la siguiente. 754 00:40:00,000 --> 00:40:05,000 En la parte superior de mi archivo que estoy requiriendo dictionary.php. 755 00:40:05,000 --> 00:40:09,000 Al igual que C ha # include PHP tiene una función especial denominada requieren 756 00:40:09,000 --> 00:40:14,000 que más o menos hace lo mismo, requieren un archivo llamado dictionary.php. 757 00:40:14,000 --> 00:40:18,000 ¿Cómo puedo ir sobre la aplicación pset 5? 758 00:40:18,000 --> 00:40:21,000 Déjenme seguir adelante y abrir un archivo aquí. 759 00:40:21,000 --> 00:40:24,000 Permítanme tomar una pequeña referencia aquí. 760 00:40:24,000 --> 00:40:29,000 Y me deja crear un nuevo archivo y empezar a llamar a este dictionary.php. 761 00:40:29,000 --> 00:40:31,000 Permítanme decirlo de otra carpeta para que podamos hacer esto en vivo. 762 00:40:31,000 --> 00:40:33,000 Y ahora voy a hacer un zoom in 763 00:40:33,000 --> 00:40:37,000 Voy a empezar mi archivo PHP con soporte abierto php cerrado soporte. 764 00:40:37,000 --> 00:40:40,000 Y entonces aquí hay algunas funciones que se necesitan para poner en práctica para pset 5, 765 00:40:40,000 --> 00:40:42,000 así que vamos a empezar a aplicar algunas de las personas, 766 00:40:42,000 --> 00:40:47,000 así que la función de verificación, que tuvo que tomar una palabra como argumento. 767 00:40:47,000 --> 00:40:49,000 Vamos a hacer eso y volver a ella en un momento. 768 00:40:49,000 --> 00:40:53,000 >> Se carga la función, que tuvo en lo que como un argumento? 769 00:40:53,000 --> 00:40:56,000 Diccionario, por lo que el archivo que yo realmente quería cargar. 770 00:40:56,000 --> 00:41:00,000 Había tamaño de la función, que no toma ningún argumento 771 00:41:00,000 --> 00:41:04,000 y no había función, ¿qué era lo otro? 772 00:41:04,000 --> 00:41:06,000 Unload, que no toma ningún argumento tampoco. 773 00:41:06,000 --> 00:41:10,000 Estas son las 4 funciones que tendrían que aplicar ahora en PHP, 774 00:41:10,000 --> 00:41:13,000 y lo que voy a hacer es seguir adelante y hacerlo. 775 00:41:13,000 --> 00:41:16,000 Muchos de ustedes utiliza una tabla hash en pset 5, 776 00:41:16,000 --> 00:41:21,000 así que voy a seguir adelante y crear una tabla hash en PHP. 777 00:41:21,000 --> 00:41:23,000 Hecho. 778 00:41:23,000 --> 00:41:25,000 Eso me da una tabla hash. Bueno, ¿por qué? 779 00:41:25,000 --> 00:41:30,000 Una, la variable se llama $ tabla, sólo para evocar la idea de una tabla hash. 780 00:41:30,000 --> 00:41:34,000 Los corchetes, sin embargo, recordar, representan qué? 781 00:41:34,000 --> 00:41:37,000 Una matriz, pero en arrays PHP no tiene que ser indexado numéricamente. 782 00:41:37,000 --> 00:41:41,000 También pueden ser matrices asociativas, 783 00:41:41,000 --> 00:41:44,000 lo que significa que usted puede tener llaves arbitrarias y valores. 784 00:41:44,000 --> 00:41:49,000 >> Al igual que en pset 5, aquellos de ustedes que hicieron implementaciones tabla hash 785 00:41:49,000 --> 00:41:53,000 probablemente inserta la palabra y después se inserta en una cadena de listas enlazadas, 786 00:41:53,000 --> 00:41:56,000 o almacenada en algún lugar del valor de verdad o algo por el estilo. 787 00:41:56,000 --> 00:41:59,000 De alguna manera recuerda el hecho de que la palabra estaba allí. 788 00:41:59,000 --> 00:42:01,000 Por ahora, eso va a ser mi tabla hash, 789 00:42:01,000 --> 00:42:06,000 y lo que ahora ir sobre la aplicación de la función de comprobación 790 00:42:06,000 --> 00:42:09,000 Sólo tengo que mirar dentro de esa tabla hash 791 00:42:09,000 --> 00:42:11,000 y ver si una palabra está ahí. 792 00:42:11,000 --> 00:42:15,000 Lo que voy a hacer es que voy a decir si- 793 00:42:15,000 --> 00:42:20,000 digamos isset, que es una función PHP que literalmente quiere decir es el conjunto de claves, 794 00:42:20,000 --> 00:42:24,000 así isset ($ tabla [$ palabra], 795 00:42:24,000 --> 00:42:29,000 y si es así devolver true. 796 00:42:29,000 --> 00:42:32,000 Eso es todo. Eso es pset 5 en PHP. 797 00:42:32,000 --> 00:42:34,000 Bueno, para ser justos, está bien. 798 00:42:34,000 --> 00:42:37,000 Else return false, por lo que no está ahí. 799 00:42:37,000 --> 00:42:39,000 Lo que realmente está pasando aquí? 800 00:42:39,000 --> 00:42:42,000 Bueno, si la tabla de mesa o hash aquí más general- 801 00:42:42,000 --> 00:42:46,000 es una matriz asociativa que significa que usted puede indexar en él 802 00:42:46,000 --> 00:42:50,000 con una palabra como "palabra", y hay que volver algún valor. 803 00:42:50,000 --> 00:42:52,000 >> Somos una especie de conseguir un paso por delante de nosotros mismos. 804 00:42:52,000 --> 00:42:56,000 Sería algo bonito si en realidad carga el primer archivo, 805 00:42:56,000 --> 00:42:58,000 así que la carga no es tan simple, pero déjame seguir adelante y batir 806 00:42:58,000 --> 00:43:00,000  una implementación muy rápida de la carga. 807 00:43:00,000 --> 00:43:07,000 Déjenme seguir adelante y decir palabras se Diccionario archivo. 808 00:43:07,000 --> 00:43:10,000 La función de archivo en PHP abre un archivo 809 00:43:10,000 --> 00:43:12,000 y regresa a usted una gran variedad de todas las palabras en ese archivo, 810 00:43:12,000 --> 00:43:14,000 sólo les da a ustedes. 811 00:43:14,000 --> 00:43:16,000 Ese fue un dolor demasiado grande, ¿no? 812 00:43:16,000 --> 00:43:21,000 Ahora foreach, esta es nuestra nueva construcción, foreach ($ palabras as $ palabra). 813 00:43:21,000 --> 00:43:25,000 Este ciclo va a comenzar a iterar sobre las palabras de la matriz 814 00:43:25,000 --> 00:43:30,000 y asignar a la variable $ palabra cada palabra en el archivo 815 00:43:30,000 --> 00:43:32,000 desde la primera a la segunda a la tercera a la cuarta todo el camino 816 00:43:32,000 --> 00:43:35,000 así que no tienes que hacer el molesto [i] notación y similares. 817 00:43:35,000 --> 00:43:38,000 Y lo que estoy simplemente vas a hacer para cada una de estas palabras 818 00:43:38,000 --> 00:43:43,000 se lo guarde en mi mesa de indexación en la tabla 819 00:43:43,000 --> 00:43:47,000 y luego haciendo así porque hay que recordar 820 00:43:47,000 --> 00:43:50,000 que una palabra está en mi diccionario lo único que realmente tenemos que hacer 821 00:43:50,000 --> 00:43:55,000 es una especie de vuelta un poco y decir esta palabra en mi tabla hash está ahí, es cierto. 822 00:43:55,000 --> 00:43:58,000 Y si no está allí, no tengo que poner explícitamente falsa, 823 00:43:58,000 --> 00:44:01,000 de lo contrario, tendría que poner falso para todas las palabras posibles en el universo. 824 00:44:01,000 --> 00:44:05,000 >> Es suficiente para mí sólo para fijar un valor de índice 825 00:44:05,000 --> 00:44:09,000 en true si una palabra está en realidad en mi tabla hash. 826 00:44:09,000 --> 00:44:12,000 Ahora, me voy a cortar un par de curvas aquí que voy a agitar las manos menos por ahora, 827 00:44:12,000 --> 00:44:15,000 pero ahora la función de carga se realiza. 828 00:44:15,000 --> 00:44:18,000 Me carga todas las palabras en el archivo en una matriz. 829 00:44:18,000 --> 00:44:21,000 I iterar sobre dicha matriz, y para cada palabra de la matriz 830 00:44:21,000 --> 00:44:24,000 Lo conecto en mi tabla hash con una línea de código. 831 00:44:24,000 --> 00:44:26,000 Esto es divertido. ¿Sabes cómo se puede implementar tamaño ahora? 832 00:44:26,000 --> 00:44:28,000 Pues bien, el tamaño es siempre muy fácil, para ser justos. 833 00:44:28,000 --> 00:44:32,000 Aquí sólo puedo hacer recuento de regresar de mesa. 834 00:44:32,000 --> 00:44:34,000 Eso es bastante fácil también, cuente el número de cosas en la mesa. 835 00:44:34,000 --> 00:44:36,000 Eso es en realidad un poco no es el más eficiente. 836 00:44:36,000 --> 00:44:39,000 Probablemente debería tener un tamaño variable llamada para que lo podamos hacer 837 00:44:39,000 --> 00:44:41,000 en tiempo constante, pero eso es bastante fácil. 838 00:44:41,000 --> 00:44:45,000 Ah, y luego descarga, si de verdad queremos ser anal aquí 839 00:44:45,000 --> 00:44:47,000 podemos decir que es como se descarga algo. 840 00:44:47,000 --> 00:44:49,000 Usted acaba de establecer la variable igual a un conjunto vacío, 841 00:44:49,000 --> 00:44:51,000 y se deshace de todo lo que estaba allí. 842 00:44:51,000 --> 00:44:53,000 No hay necesidad de llamar libre. 843 00:44:53,000 --> 00:44:56,000 >> Una vez más, he cortado algunas curvas, y me disculpo por conjunto de problemas asignando 5 844 00:44:56,000 --> 00:45:00,000 quizás en C, pero si ahora seguir adelante y ejecutar esto, 845 00:45:00,000 --> 00:45:02,000 Voy a correr en realidad la versión que escribí con antelación 846 00:45:02,000 --> 00:45:05,000 sólo para que yo no he cometido ningún error de sintaxis que sea. 847 00:45:05,000 --> 00:45:08,000 Déjenme seguir adelante y ejecutar corrector ortográfico. El uso es el mismo. 848 00:45:08,000 --> 00:45:12,000 Aquí hay un archivo de diccionario que sólo contiene la palabra foo. 849 00:45:12,000 --> 00:45:15,000 Aquí hay un archivo de texto que contiene sólo foo bar. 850 00:45:15,000 --> 00:45:19,000 Vamos a revisar la ortografía de esto, así ortografía, utilizando el archivo de diccionario en el archivo de texto. 851 00:45:19,000 --> 00:45:21,000 Hay una palabra mal escrita, bar, y listo. 852 00:45:21,000 --> 00:45:23,000 Hecho con pset 5. 853 00:45:23,000 --> 00:45:30,000 Vamos a tomar un descanso de 5 minutos aquí, y vamos a volver y más en PHP. 854 00:45:30,000 --> 00:45:32,000 De acuerdo, estamos de vuelta. 855 00:45:32,000 --> 00:45:34,000 Vamos a hacer-me odias por un tiempo. 856 00:45:34,000 --> 00:45:37,000 Ahora vamos a ver realmente si esto no era un positivo 857 00:45:37,000 --> 00:45:39,000 la aplicación real de esta cosa en PHP. 858 00:45:39,000 --> 00:45:43,000 Por supuesto, nos tomó 45 segundos para implementar. 859 00:45:43,000 --> 00:45:45,000 >> Pero vamos a seguir adelante ahora y manejar las cosas. 860 00:45:45,000 --> 00:45:49,000 Déjenme seguir adelante y ejecutar una versión de C 861 00:45:49,000 --> 00:45:52,000 de ortografía, y vamos a correr en uno de los mayores archivos, 862 00:45:52,000 --> 00:45:54,000 que es la Biblia King James. 863 00:45:54,000 --> 00:45:57,000 Y aquí es en que vamos a entrar en nuestra carpeta de C, 864 00:45:57,000 --> 00:46:01,000 speller en King James la 5 ª. 865 00:46:01,000 --> 00:46:03,000 Una gran cantidad de palabras mal escritas. 866 00:46:03,000 --> 00:46:06,000 Muy bien, así que esa es la salida que probablemente se hizo aún si los tiempos son un poco diferentes, 867 00:46:06,000 --> 00:46:09,000 si tienes todo funcionando correctamente, y el tiempo lo que en total para corregir la ortografía 868 00:46:09,000 --> 00:46:13,000 la Biblia King James fue 0,38 segundos, así que bastante bien con esa implementación. 869 00:46:13,000 --> 00:46:16,000 Ahora voy a ir a la versión de PHP, que acaba de escribir. 870 00:46:16,000 --> 00:46:18,000 Déjame correr ortografía en King James. 871 00:46:18,000 --> 00:46:21,000 ¡Vaya, ignorar ese error. Estoy en el directorio equivocado. 872 00:46:21,000 --> 00:46:24,000 Speller sobre King James la 5 ª. 873 00:46:46,000 --> 00:46:48,000 Ya está casi hecho. 874 00:46:48,000 --> 00:46:51,000 >> Bien, el astuto observador se dará cuenta de que era más de 3 segundos allí. 875 00:46:51,000 --> 00:46:54,000 Ese es el verdadero tiempo en funcionamiento. 876 00:46:54,000 --> 00:46:58,000 Resulta que se necesita tiempo para escupir gran cantidad de texto fuera 877 00:46:58,000 --> 00:47:00,000 debido a buffer temas, pero de corta larga historia, 878 00:47:00,000 --> 00:47:04,000 que fue de 3,15 segundos de tiempo de máquina, tiempo de CPU, 879 00:47:04,000 --> 00:47:07,000 frente a lo que era hace un momento? 880 00:47:07,000 --> 00:47:09,000 Al igual que 0,3. 881 00:47:09,000 --> 00:47:11,000 Quiero decir, es un orden de magnitud más lento, así que ¿dónde está ese 882 00:47:11,000 --> 00:47:14,000 desaceleración ridículo viniendo? 883 00:47:14,000 --> 00:47:17,000 Pues bien, como ha sido el caso con la mayoría de las decisiones de diseño que hemos hecho 884 00:47:17,000 --> 00:47:21,000 en la clase durante las últimas 9 semanas casi siempre este equilibrio. 885 00:47:21,000 --> 00:47:24,000 A veces, sólo entre el espacio, a veces entre el espacio y el tiempo, 886 00:47:24,000 --> 00:47:27,000 espacio, tiempo y esfuerzo de desarrollo, y de hecho aquí, aunque 887 00:47:27,000 --> 00:47:31,000 nos ahorramos una gran cantidad de tiempo, tal vez potencialmente 10.20.30 horas 888 00:47:31,000 --> 00:47:34,000 el tiempo de desarrollo de la aplicación del corrector ortográfico 889 00:47:34,000 --> 00:47:36,000 con azotes que en tan sólo 45 segundos con este lenguaje 890 00:47:36,000 --> 00:47:40,000 el precio que se paga es que se trata de un orden de magnitud más lento como resultado, 891 00:47:40,000 --> 00:47:43,000 y este es generalmente el caso con la mayoría de cualquier lenguaje interpretado, 892 00:47:43,000 --> 00:47:46,000 PHP, Python, Ruby, Pearl u otros por el que 893 00:47:46,000 --> 00:47:49,000 si usted va a ejecutar a través de un intérprete y que se lea el código 894 00:47:49,000 --> 00:47:52,000 línea por línea, de arriba a abajo, de izquierda a derecha, 895 00:47:52,000 --> 00:47:55,000 intermediario que se va a tomar algún tiempo propio, 896 00:47:55,000 --> 00:47:59,000 y lo que se siente aquí en los 3 segundos frente a 0,3 segundos 897 00:47:59,000 --> 00:48:02,000 es el hecho de que existe este intermediario que tiene que interpretar literalmente nuestro código 898 00:48:02,000 --> 00:48:05,000 línea por línea, y Dios no lo quiera, si usted está dentro de un bucle 899 00:48:05,000 --> 00:48:08,000 con un archivo enorme que contiene cientos de miles de palabras. 900 00:48:08,000 --> 00:48:11,000 >> Ese recargo se va a sumar y sumar y sumar y sumar. 901 00:48:11,000 --> 00:48:16,000 Para obtener una herramienta como esta probablemente no sea el mejor lenguaje a utilizar para la aplicación de 902 00:48:16,000 --> 00:48:20,000 un corrector ortográfico si inmediatez es de interés para sus usuarios y para ti. 903 00:48:20,000 --> 00:48:23,000 Pero el lujo que tenemos en este momento es si 904 00:48:23,000 --> 00:48:27,000 utilizar un lenguaje como PHP o una gran cantidad de lenguajes interpretados 905 00:48:27,000 --> 00:48:30,000 en el contexto de la Web, para el caso, que tiene el beneficio 906 00:48:30,000 --> 00:48:34,000 que Internet es mucho más lento que la mayoría de las computadoras. 907 00:48:34,000 --> 00:48:38,000 Usted tiene una CPU GHz en el equipo, 2 GHz, tal vez incluso más en estos días. 908 00:48:38,000 --> 00:48:41,000 Pero la realidad es que en Internet hay una gran cantidad de latencia 909 00:48:41,000 --> 00:48:45,000 por lo que para un navegador para hablar con un servidor, a pesar de que vimos la semana pasada 910 00:48:45,000 --> 00:48:47,000 que eso es bastante rápido, la mitad de una milésima de segundo más o menos, 911 00:48:47,000 --> 00:48:51,000 que también se suma, y ​​si usted está descargando cosas como una imagen 912 00:48:51,000 --> 00:48:54,000 o una foto de Facebook o recibir mensajes instantáneos a través de charla Facebook, 913 00:48:54,000 --> 00:48:57,000 Gchat o similares, todos de estos tiempos de ida y vuelta 914 00:48:57,000 --> 00:49:00,000 entre el navegador y el servidor de inicio de sumar, 915 00:49:00,000 --> 00:49:03,000 que hace que su elección particular de la lengua en muchos casos 916 00:49:03,000 --> 00:49:07,000 no es tan relevante, por lo que está muy bien usar un lenguaje ligeramente más lento 917 00:49:07,000 --> 00:49:10,000 como PHP o Python o Ruby 918 00:49:10,000 --> 00:49:13,000 pero para los que no son Upsides grandes para usted y sus colegas 919 00:49:13,000 --> 00:49:17,000 y sus amigos, ya que puede poner en práctica las cosas así, mucho más rápido. 920 00:49:17,000 --> 00:49:20,000 Y por otra parte, tiene mucho menos riesgo de ciertos defectos de seguridad. 921 00:49:20,000 --> 00:49:22,000 No hay punteros en PHP. 922 00:49:22,000 --> 00:49:25,000 No hay ningún fallo seg que fácilmente pueden inducir 923 00:49:25,000 --> 00:49:27,000 del mismo modo que se pueda en C. 924 00:49:27,000 --> 00:49:29,000 Con C que está súper cerca del hardware. 925 00:49:29,000 --> 00:49:33,000 Con lenguajes PHP y similares que eres una especie de nivel superior, por así decirlo, 926 00:49:33,000 --> 00:49:37,000 con un montón de defensas entre usted y lo que realmente está pasando 927 00:49:37,000 --> 00:49:39,000 en el interior de la máquina, y es sólo una compensación. 928 00:49:39,000 --> 00:49:42,000 >> Hemos llegado al punto de tener estos más modernos lenguajes de alto nivel 929 00:49:42,000 --> 00:49:47,000 como PHP debido a las lecciones aprendidas en lenguajes como PHP en C. 930 00:49:47,000 --> 00:49:50,000 Pero si usted no entiende lo que está pasando debajo de la capucha de todo este tiempo 931 00:49:50,000 --> 00:49:53,000 que sin duda no puede tomar las decisiones de diseño correctas, 932 00:49:53,000 --> 00:49:56,000 y, ciertamente, cuando se trata de trabajar en un lugar como Facebook o Google 933 00:49:56,000 --> 00:49:59,000 o en cualquiera de estos lugares que son cada vez más jugando con grandes conjuntos de datos 934 00:49:59,000 --> 00:50:01,000 incluso si usted regresa y se Premed y estamos trabajando con algunas de las EM 935 00:50:01,000 --> 00:50:04,000 en algunos gran conjunto de datos con pacientes y médicos 936 00:50:04,000 --> 00:50:08,000 y similares, usando las herramientas adecuadas es enormemente atractiva 937 00:50:08,000 --> 00:50:11,000 porque de lo contrario el análisis de un conjunto de datos puede tardar unos segundos, 938 00:50:11,000 --> 00:50:14,000 o que, literalmente, puede llevar horas. 939 00:50:14,000 --> 00:50:17,000 Este es sólo un ejemplo, no para frustrar con cuánto esfuerzo más 940 00:50:17,000 --> 00:50:21,000 fue en C, pero que le ayudarán a apreciar que cuando se ponen en práctica algo en C 941 00:50:21,000 --> 00:50:24,000 que realmente entienden, o en teoría, comprender realmente 942 00:50:24,000 --> 00:50:28,000 cómo todo lo que es o debería estar trabajando, y usted tiene un control casi completo 943 00:50:28,000 --> 00:50:31,000 sobre lo que está pasando debajo de la capucha, y con estos lenguajes de alto nivel 944 00:50:31,000 --> 00:50:34,000 usted tiene que renunciar a un mayor control de las personas que los inventados 945 00:50:34,000 --> 00:50:37,000 y están sujetas más a sus decisiones de diseño que la tuya. 946 00:50:37,000 --> 00:50:41,000 Pero si damos por sentado que el rendimiento 947 00:50:41,000 --> 00:50:44,000 no es tan importante en la Web debido a estas otras cuestiones, 948 00:50:44,000 --> 00:50:47,000 sólo las velocidades de red son un poco más lento que la velocidad de CPU de todos modos, 949 00:50:47,000 --> 00:50:50,000 para que podamos elegir de permitirse el lujo de utilizar un lenguaje un poco más lenta 950 00:50:50,000 --> 00:50:55,000 si los upsides son las cosas que podemos desarrollar 10 veces más rápido o más. 951 00:50:55,000 --> 00:50:57,000 >> Vamos a ver cómo podemos empezar a usar esto. 952 00:50:57,000 --> 00:51:00,000 Déjame ir a una carpeta 953 00:51:00,000 --> 00:51:03,000 entre los ejemplos de hoy en día llamado frosh.ims, 954 00:51:03,000 --> 00:51:06,000 y esto fue realmente personalmente motivado por el hecho de que la primera cosa 955 00:51:06,000 --> 00:51:10,000 Escribí para la web años atrás después de tomar CS50 CS51 y 956 00:51:10,000 --> 00:51:14,000 es un sitio web para el programa de mensajes instantáneos Frosh, deportes intramuros de primer año, 957 00:51:14,000 --> 00:51:16,000 que en ese momento se trataba de bastantes años atrás, que en el momento 958 00:51:16,000 --> 00:51:19,000 no había sitio para el programa, a pesar de que había una web, 959 00:51:19,000 --> 00:51:22,000 y en su lugar había un vigilante en Wigglesworth cual si quisiera 960 00:51:22,000 --> 00:51:26,000 para registrarse para el voleibol o el fútbol o lo que usted podría llenar una hoja de papel. 961 00:51:26,000 --> 00:51:28,000 A continuación, se camina por el patio. 962 00:51:28,000 --> 00:51:31,000 A continuación, podría llamar a su puerta y se deslizan en su puerta o en la mano al procurador 963 00:51:31,000 --> 00:51:34,000 un pedazo de papel con su nombre en él, sean o no quieres ser el capitán del equipo, 964 00:51:34,000 --> 00:51:37,000 ¿Qué deporte te quería hacer, y lo que se pulg dormitorio 965 00:51:37,000 --> 00:51:39,000 Era una especie de camino de la vieja escuela de hacer las cosas, y esto fue una de las principales 966 00:51:39,000 --> 00:51:41,000 oportunidad para automatizar una gran parte de este proceso. 967 00:51:41,000 --> 00:51:43,000 Usted sólo tiene que ir a la página web. Escribes algo pulg 968 00:51:43,000 --> 00:51:46,000 Usted recibe un correo electrónico de confirmación, y el brazo, ya está hecho. 969 00:51:46,000 --> 00:51:49,000 >> Esta fue la primera cosa que hice, aunque en un lenguaje llamado Pearl, 970 00:51:49,000 --> 00:51:52,000 pero es relativamente fácil de hacer en PHP, y esto es una especie de representante 971 00:51:52,000 --> 00:51:55,000 de los problemas que usted puede comenzar a resolver cuando puede expresarse 972 00:51:55,000 --> 00:51:58,000 programación y no tener que depender de cosas como los sitios de Google 973 00:51:58,000 --> 00:52:01,000 o Excel o herramientas que se entregan a ti. 974 00:52:01,000 --> 00:52:03,000 Ustedes tienen ahora la capacidad de hacer cosas como esta. 975 00:52:03,000 --> 00:52:06,000 Esta es una versión super feo de un formulario, 976 00:52:06,000 --> 00:52:09,000 pero vamos a utilizar para el inicio de la conversación mediante el cual se trata de 977 00:52:09,000 --> 00:52:12,000 más o menos cuál es la forma que parecía años atrás para nosotros 978 00:52:12,000 --> 00:52:14,000 para que las personas en la Web para inscribirse en Frosh mensajes instantáneos. 979 00:52:14,000 --> 00:52:18,000 Nos preguntamos por un nombre, una casilla de verificación para saber si son o no quería ser capitán, 980 00:52:18,000 --> 00:52:21,000 hombre o mujer, y entonces, ¿qué dormitorio en que estaban, 981 00:52:21,000 --> 00:52:23,000 y entonces se envíe este formulario. 982 00:52:23,000 --> 00:52:27,000 Veamos primero debajo de la capucha en el código HTML que representa esta página web. 983 00:52:27,000 --> 00:52:31,000 Déjame entrar en froshims0, 984 00:52:31,000 --> 00:52:35,000 y en un aparte, para pset 7 estoy dando por sentado 985 00:52:35,000 --> 00:52:37,000 los directorios y carpetas de los que estoy poniendo las cosas pulg 986 00:52:37,000 --> 00:52:40,000 Le guiaremos a través de cosas exactamente donde tiene que ir en el aparato, 987 00:52:40,000 --> 00:52:43,000 los comandos de mod que tiene que correr, así que no te preocupes por todo el 988 00:52:43,000 --> 00:52:46,000 detalles estúpidos sincronización desde el primer momento aquí. 989 00:52:46,000 --> 00:52:49,000 >> Muy bien, aquí está froshims0.php. 990 00:52:49,000 --> 00:52:52,000 Permítanme desplazarse hacia abajo, y lo que es curioso aquí, 991 00:52:52,000 --> 00:52:56,000 este es un archivo PHP, pero lo que hay dentro de ella, con claridad? 992 00:52:56,000 --> 00:52:59,000 Es un montón de HTML, PHP, y de hecho sus orígenes 993 00:52:59,000 --> 00:53:02,000 realmente eran para ser un lenguaje centrado en la Web. 994 00:53:02,000 --> 00:53:04,000 Hace un momento lo utilizamos para poner en práctica el ejemplo de la cerveza, 995 00:53:04,000 --> 00:53:07,000 las condiciones ejemplo, el ejemplo hola, y eso está bien. 996 00:53:07,000 --> 00:53:11,000 Puede utilizar PHP como lenguaje de scripting 997 00:53:11,000 --> 00:53:15,000 donde un script es en realidad la nomenclatura dada a un programa rápido y sucio 998 00:53:15,000 --> 00:53:19,000 o algo que se escribe en un guión o más generalmente un lenguaje interpretado. 999 00:53:19,000 --> 00:53:22,000 PHP es super útil para los que ya has visto con qué rapidez 1000 00:53:22,000 --> 00:53:24,000 relativamente podemos avivar programas en PHP. 1001 00:53:24,000 --> 00:53:27,000 Pero fue diseñado realmente para ser utilizado para la Web, 1002 00:53:27,000 --> 00:53:31,000 y diseñado para la Web, en el sentido de que notar aquí en la parte superior del archivo 1003 00:53:31,000 --> 00:53:34,000 Empiezo con 00:53:38,000 Entonces tengo un montón de comentarios inútiles, es cierto, pero entonces cierro modo PHP. 1005 00:53:38,000 --> 00:53:41,000 Pero luego me deje caer en modo HTML. 1006 00:53:41,000 --> 00:53:45,000 >> Lo que es interesante acerca de PHP es a pesar de que el archivo termina en. Php 1007 00:53:45,000 --> 00:53:48,000 es generalmente destinado a ser entremezclados con HTML, 1008 00:53:48,000 --> 00:53:50,000 algo de código PHP, algo de HTML. 1009 00:53:50,000 --> 00:53:53,000 Y vamos a ver con el tiempo que podemos empezar a burlarse de aquellos aparte 1010 00:53:53,000 --> 00:53:56,000 y mantener nuestra HTML PHP separado de nuestro conjunto, 1011 00:53:56,000 --> 00:53:59,000 pero los orígenes de PHP realmente te diera esta flexibilidad, 1012 00:53:59,000 --> 00:54:02,000 que si quieres algo de HTML sólo lo escribe, y que será 1013 00:54:02,000 --> 00:54:04,000 escupir idéntica al navegador. 1014 00:54:04,000 --> 00:54:07,000 Pero si usted necesita un poco de técnica de programación, 1015 00:54:07,000 --> 00:54:12,000 algún código de programación, también se puede poner en el archivo exactamente el mismo, como pronto veremos. 1016 00:54:12,000 --> 00:54:14,000 Aquí está mi HTML. 1017 00:54:14,000 --> 00:54:16,000 Tengo un título de este Frosh para mensajes instantáneos. 1018 00:54:16,000 --> 00:54:20,000 Tengo un cuerpo de la etiqueta que tiene un poco de CSS en el mismo centro de todo en el centro, 1019 00:54:20,000 --> 00:54:23,000 y luego por aquí Tengo un formulario que al parecer va a ser presentado 1020 00:54:23,000 --> 00:54:27,000 en un nuevo archivo llamado register0.php, así que ya veremos eso en un momento. 1021 00:54:27,000 --> 00:54:31,000 Se trata de utilizar un método llamado post, que volveremos a también. 1022 00:54:31,000 --> 00:54:34,000 Entonces tengo algunas entradas de formulario, un nombre llamado, cuyo tipo es texto, 1023 00:54:34,000 --> 00:54:37,000 uno cuyo nombre es el capitán, cuyo tipo es checkbox, 1024 00:54:37,000 --> 00:54:40,000 y esto, no lo hemos visto antes, pero hace exactamente lo que dice. 1025 00:54:40,000 --> 00:54:42,000 Usted recibirá una casilla de verificación en lugar de un cuadro de texto. 1026 00:54:42,000 --> 00:54:46,000 Aquí abajo tienes un botón de radio, que es uno de esos botones circulares 1027 00:54:46,000 --> 00:54:48,000 que usted puede elegir este o aquél. 1028 00:54:48,000 --> 00:54:52,000 >> Tenga en cuenta que es deliberado que me dio los dos botones de radio el nombre del género. 1029 00:54:52,000 --> 00:54:55,000 Esta es la forma de conseguir la exclusión mutua mediante el cual usted debe hacer clic en 1030 00:54:55,000 --> 00:54:58,000 ya sea este o aquél, y haciendo clic en el otro 1031 00:54:58,000 --> 00:55:01,000 se desactiva la otra, así que hay que darles el mismo nombre 1032 00:55:01,000 --> 00:55:03,000 si usted quisiera que fueran mutuamente excluyentes así. 1033 00:55:03,000 --> 00:55:07,000 Y luego, para dormitorio, yo no creo que hayamos visto aún, pero se trata de una selecta carta, un menú desplegable. 1034 00:55:07,000 --> 00:55:09,000 La etiqueta para que se selecciona. 1035 00:55:09,000 --> 00:55:11,000 A continuación, dar el menú desplegable un nombre, 1036 00:55:11,000 --> 00:55:13,000 y entonces usted tiene un montón de estas opciones. 1037 00:55:13,000 --> 00:55:16,000 La primera de ellas, sólo por estética, es una cadena vacía. 1038 00:55:16,000 --> 00:55:20,000 Yo sólo quería el menú desplegable para estar en blanco de forma predeterminada, 1039 00:55:20,000 --> 00:55:22,000 y luego está Apley, Canaday, Grays, y así sucesivamente. 1040 00:55:22,000 --> 00:55:24,000 Y note la dicotomía aquí. 1041 00:55:24,000 --> 00:55:27,000 La opción en el menú desplegable tiene un valor, 1042 00:55:27,000 --> 00:55:30,000 pero entonces tiene un nombre humano con niños, que en este ejemplo 1043 00:55:30,000 --> 00:55:33,000 es idéntica, pero si de verdad quería ser anal tenemos podía 1044 00:55:33,000 --> 00:55:36,000 el valor de este menú desplegable sólo ser la versión corta, 1045 00:55:36,000 --> 00:55:39,000 Grays, pero podríamos decir Grises Hall que el ser humano realmente ve, 1046 00:55:39,000 --> 00:55:43,000 pero eso no es tan interesante, así que me mantuvo simple y los hizo iguales. 1047 00:55:43,000 --> 00:55:46,000 A continuación, en el fondo tenemos un botón de envío 1048 00:55:46,000 --> 00:55:49,000 lo que hemos visto antes, pero noto que sólo nos dio una palabra diferente. 1049 00:55:49,000 --> 00:55:53,000 En lugar de buscar CS50 le di la etiqueta de "Registro". 1050 00:55:53,000 --> 00:55:56,000 >> El resultado final es la página aquí, y de nuevo, 1051 00:55:56,000 --> 00:56:00,000 ¿dónde se presentará a? 1052 00:56:00,000 --> 00:56:04,000 Se pone sometida a algún archivo, el valor del atributo de acción, 1053 00:56:04,000 --> 00:56:07,000 que era register0.php. 1054 00:56:07,000 --> 00:56:09,000 Vamos a ver lo que realmente sucede aquí. 1055 00:56:09,000 --> 00:56:13,000 Déjenme seguir adelante y llenar el formulario, por ejemplo David, 1056 00:56:13,000 --> 00:56:16,000 macho, Matthews, a continuación, voy a decir regístrate. 1057 00:56:16,000 --> 00:56:18,000 Permítanme alejar la imagen y haga clic en registrarse. 1058 00:56:18,000 --> 00:56:22,000 Bien, algo inútil, pero vamos a ver lo que realmente está pasando. 1059 00:56:22,000 --> 00:56:26,000 Tenga en cuenta que la URL ha cambiado para ser register0.php. 1060 00:56:26,000 --> 00:56:34,000 ¿Qué es curiosamente ausente de la URL, sin embargo, a pesar de que acaba de enviar un formulario? 1061 00:56:34,000 --> 00:56:37,000 [Respuesta de los estudiantes inaudible] 1062 00:56:37,000 --> 00:56:39,000 Bueno, eso es ser amable usuario Chrome en estos días. 1063 00:56:39,000 --> 00:56:42,000 Eso es realmente allí. Acaban de ocultar para ahorrar espacio. 1064 00:56:42,000 --> 00:56:44,000 Pero el pensamiento bueno, buen pensamiento. 1065 00:56:44,000 --> 00:56:46,000 Hacia el otro extremo de la URL, sin embargo, lo que falta? Si. 1066 00:56:46,000 --> 00:56:48,000 [Estudiante] La cadena de consulta. 1067 00:56:48,000 --> 00:56:51,000 La cadena de consulta, por lo que recordamos de nuestros ejemplos sencillos de búsqueda de Google. 1068 00:56:51,000 --> 00:56:54,000 Tan pronto como haga clic en el botón de enviar la URL 1069 00:56:54,000 --> 00:57:00,000 me llevó a Google, pero luego estaba? q = ciencias de la computación o lo que sea que yo había escrito pulg 1070 00:57:00,000 --> 00:57:04,000 Esto se debe a que utilizamos el método get con el ejemplo de búsqueda. 1071 00:57:04,000 --> 00:57:06,000 >> Esta vez estamos usando el método que en su lugar? 1072 00:57:06,000 --> 00:57:10,000 Publicar, y una de las distinciones inmediatas 1073 00:57:10,000 --> 00:57:14,000 entre GET y POST es que después no pone la entrada del usuario en la URL. 1074 00:57:14,000 --> 00:57:16,000 Es lo oculta. Todavía lo envía. 1075 00:57:16,000 --> 00:57:19,000 De hecho, lo que estamos viendo en el navegador de aquí, como vamos a revelar en un momento 1076 00:57:19,000 --> 00:57:22,000 observando register0, es que estoy solo ver el contenido 1077 00:57:22,000 --> 00:57:25,000 de la matriz que se presentaron desde el navegador al servidor. 1078 00:57:25,000 --> 00:57:29,000 Pero el URL no tiene un?, No tiene ninguna palabra clave 1079 00:57:29,000 --> 00:57:31,000 o valores en ella, y por qué es eso? 1080 00:57:31,000 --> 00:57:35,000 Bueno, después le permite enviar todavía los datos del formulario a un servidor, 1081 00:57:35,000 --> 00:57:38,000 pero no lo pone en la URL, así que ¿qué tipo de información es post 1082 00:57:38,000 --> 00:57:41,000 particularmente apropiado para tal vez cuando usted está pidiendo al usuario 1083 00:57:41,000 --> 00:57:44,000 escriba en la entrada a un formulario? 1084 00:57:44,000 --> 00:57:48,000 Algo así como una contraseña, algo así como ¿qué más? 1085 00:57:48,000 --> 00:57:50,000 Números de tarjetas de crédito. 1086 00:57:50,000 --> 00:57:53,000 Cualquier cosa que sea medianamente sensible que probablemente no quieres acabar en la URL 1087 00:57:53,000 --> 00:57:56,000 aunque sólo sea porque significa que su compañero de cuarto o miembro de la familia sólo puede trolling a través de 1088 00:57:56,000 --> 00:57:59,000 su historial de Internet y, a continuación, literalmente, ver las contraseñas, 1089 00:57:59,000 --> 00:58:02,000 literalmente ver sus números de tarjeta de crédito, porque la mayoría de los navegadores 1090 00:58:02,000 --> 00:58:05,000 Recuerdo que en la historia lo que las direcciones URL que has estado en, 1091 00:58:05,000 --> 00:58:09,000 por lo que si sólo porque eso sería una mala idea. 1092 00:58:09,000 --> 00:58:11,000 Uso de cueros mensaje que detallan por parte del usuario. 1093 00:58:11,000 --> 00:58:14,000 >> Además, ¿cómo subir una foto a Facebook? 1094 00:58:14,000 --> 00:58:17,000 Bueno, los únicos dos mecanismos que realmente se puede utilizar, 1095 00:58:17,000 --> 00:58:21,000 aunque hay algunos otros más arcanas, es GET y POST. 1096 00:58:21,000 --> 00:58:26,000 ¿Cómo subir una foto posiblemente a través de una URL? 1097 00:58:26,000 --> 00:58:28,000 En realidad se puede hacer. 1098 00:58:28,000 --> 00:58:30,000 Usted puede tomar un mapa de bits o JPEG o GIF y se puede representar en hexadecimal 1099 00:58:30,000 --> 00:58:32,000 o algo que se llama base 64. 1100 00:58:32,000 --> 00:58:35,000 En lugar de base 16 se utiliza la base 64, que esencialmente se parece 1101 00:58:35,000 --> 00:58:38,000 Caracteres ASCII, y de hecho puedes subir una foto a través de una URL 1102 00:58:38,000 --> 00:58:41,000 después de un signo de interrogación, pero en general hay límites de tamaño. 1103 00:58:41,000 --> 00:58:44,000 La mayoría de los navegadores forzar URLs a ser no más de 1.000 caracteres, 1104 00:58:44,000 --> 00:58:47,000 tal vez 2.000 caracteres o similares, por lo que no se puede cargar 1105 00:58:47,000 --> 00:58:50,000 un 10 MB de fotos de Facebook. 1106 00:58:50,000 --> 00:58:54,000 Para que se utiliza después también, así que por ahora se pone los parámetros en la URL, 1107 00:58:54,000 --> 00:58:57,000 lo cual es bueno y útil en ocasiones, pero para nada sensible o grande 1108 00:58:57,000 --> 00:58:59,000 puesto es el camino a seguir. 1109 00:58:59,000 --> 00:59:02,000 ¿Qué está haciendo en realidad register0 aquí? 1110 00:59:02,000 --> 00:59:05,000 Bueno, si abro register0 aviso de que se trata de una simple página super, 1111 00:59:05,000 --> 00:59:09,000 pero está demostrando el hecho de que puedo de mezclar, para bien o para mal, 1112 00:59:09,000 --> 00:59:12,000 HTML con PHP. 1113 00:59:12,000 --> 00:59:15,000 Este archivo completo, a excepción de los comentarios en la parte superior, son HTML 1114 00:59:15,000 --> 00:59:19,000 a excepción de este tipo aquí. 1115 00:59:19,000 --> 00:59:22,000 >> Observe en el medio de mi código PHP, 1116 00:59:22,000 --> 00:59:26,000 en la mitad de mi HTML, tengo suerte de forma temporal 1117 00:59:26,000 --> 00:59:28,000 entrado en el modo PHP. 1118 00:59:28,000 --> 00:59:31,000 Voy a llamar a una función especial llamada impresión r. 1119 00:59:31,000 --> 00:59:34,000 Esto significa imprimir recursiva, y lo que hace es que imprime de forma recursiva 1120 00:59:34,000 --> 00:59:38,000 cualquier variable que darlo, punto y coma, tome la salida PHP modo. 1121 00:59:38,000 --> 00:59:40,000 Y la etiqueta pre le da pre-texto con formato, 1122 00:59:40,000 --> 00:59:43,000 texto mono espacio para que cada espacio que realmente verlo. 1123 00:59:43,000 --> 00:59:46,000 No desaparece. ¿Qué es el mensaje? 1124 00:59:46,000 --> 00:59:48,000 Bueno, lo que es interesante y convincente sobre PHP 1125 00:59:48,000 --> 00:59:52,000 es que cada vez que envíe un formulario utilizando get o post 1126 00:59:52,000 --> 00:59:56,000 cualquier cosa que se envía a usted por un navegador 1127 00:59:56,000 --> 01:00:00,000 PHP mismo se da cuenta de lo que esas parejas de valores clave son, 1128 01:00:00,000 --> 01:00:02,000 se da cuenta de que si hay signos de igual, se da cuenta de que si hay un signo de interrogación. 1129 01:00:02,000 --> 01:00:07,000 Lo hace todo el trabajo duro por usted, y luego se le entrega una matriz asociativa 1130 01:00:07,000 --> 01:00:10,000 contiene todo lo que el usuario escribió en el formulario. 1131 01:00:10,000 --> 01:00:12,000 Bueno, ¿qué campos de este formulario se tiene? 1132 01:00:12,000 --> 01:00:14,000 >> Tenía cuatro campos. 1133 01:00:14,000 --> 01:00:16,000 Se trataba de un campo de texto llamado nombre. 1134 01:00:16,000 --> 01:00:18,000 Uno de ellos era una casilla de verificación denominada capitán. 1135 01:00:18,000 --> 01:00:22,000 Uno de ellos era un botón de radio llamado género, 1136 01:00:22,000 --> 01:00:24,000 y uno era un menú desplegable llamado dormitorio, 1137 01:00:24,000 --> 01:00:27,000 por lo notará cuando imprimo recursivamente 1138 01:00:27,000 --> 01:00:29,000 el contenido de esta variable especial. 1139 01:00:29,000 --> 01:00:34,000 Esta es una variable global llamada especial, literalmente, $ _POST, en mayúsculas. 1140 01:00:34,000 --> 01:00:39,000 Esta es una variable global especial que PHP sólo crea para usted 1141 01:00:39,000 --> 01:00:42,000 y las manos a usted para que usted puede tener acceso a todo 1142 01:00:42,000 --> 01:00:45,000 que se presentó a través de un formulario por un usuario. 1143 01:00:45,000 --> 01:00:48,000 Y llamando r impresión en ella, usted no haría esto en una aplicación normal. 1144 01:00:48,000 --> 01:00:50,000 Estamos haciendo esto para observar el interior de esta variable, 1145 01:00:50,000 --> 01:00:53,000 y lo que hay dentro de él, bueno, 4 teclas, 1146 01:00:53,000 --> 01:00:56,000 4 http parámetros, por así decirlo, 1147 01:00:56,000 --> 01:00:59,000 nombre, capitán, sexo, residencia de estudiantes, y luego los valores que el usuario 1148 01:00:59,000 --> 01:01:01,000 introducir con una excepción. 1149 01:01:01,000 --> 01:01:03,000 Hice tipo D-A-V-I-D. 1150 01:01:03,000 --> 01:01:05,000 Revisé la caja, sin embargo, para los hombres, que al parecer presentó un valor 1151 01:01:05,000 --> 01:01:07,000 de poco m para ser sucinto. 1152 01:01:07,000 --> 01:01:10,000 >> Cuando selecciona Matthews ese es el valor que he seleccionado, 1153 01:01:10,000 --> 01:01:12,000 y éste es un poco estúpido, pero es la convención. 1154 01:01:12,000 --> 01:01:17,000 Cuando me registré, la caja, el valor on, "on", quedó sometido a la casilla de verificación. 1155 01:01:17,000 --> 01:01:21,000 Si yo no lo había comprobado, sin valor habría sido enviado alguna. 1156 01:01:21,000 --> 01:01:26,000 Esto se nos acaba de dar ideas sobre lo que hay dentro de esta variable global especial, 1157 01:01:26,000 --> 01:01:29,000 y es tan especial que se llama una variable global super. 1158 01:01:29,000 --> 01:01:33,000 Existe en todas partes para que dentro de su código de manera que en realidad se puede acceder a él. 1159 01:01:33,000 --> 01:01:36,000 Esto no es tan convincente, así que vamos a usar en realidad la super mundial 1160 01:01:36,000 --> 01:01:38,000 y realmente tratar de registrar a alguien. 1161 01:01:38,000 --> 01:01:41,000 En froshims1 voy a hacer un cambio. 1162 01:01:41,000 --> 01:01:44,000 Voy a cambiar la acción a ser register1.php, 1163 01:01:44,000 --> 01:01:46,000 y estoy haciendo otra cosa. 1164 01:01:46,000 --> 01:01:48,000 Yo estaba un poco avergonzado por la calidad de mi página web allí. 1165 01:01:48,000 --> 01:01:52,000 Es bastante horrible, de verdad, por lo que resulta 1166 01:01:52,000 --> 01:01:56,000 que se puede usar muy fácilmente en la Web 1167 01:01:56,000 --> 01:01:59,000 ajeno código JavaScript, CSS otras personas 1168 01:01:59,000 --> 01:02:02,000 que he escrito y de código abierto y está disponible como una biblioteca, 1169 01:02:02,000 --> 01:02:06,000 por así decirlo, y por ejemplo, aquí estoy usando una biblioteca de libre acceso, 1170 01:02:06,000 --> 01:02:08,000 un montón de código que alguien más escribió. 1171 01:02:08,000 --> 01:02:11,000 >> Twitter pasó a escribir este código, y se llama la biblioteca de arranque, 1172 01:02:11,000 --> 01:02:15,000 y es sólo un montón de hojas de estilo CSS, un montón de. css 1173 01:02:15,000 --> 01:02:19,000 que alguien más escribió y descubierto la manera de obtener todo lo bueno y bonito 1174 01:02:19,000 --> 01:02:22,000 para que la gente como nosotros puede preocuparse un poco menos por la estética y centrarse mucho más 1175 01:02:22,000 --> 01:02:24,000 en la lógica y la programación real. 1176 01:02:24,000 --> 01:02:30,000 Por su vinculación con esa etiqueta, que es la misma etiqueta solía recordar para styles3.css antes, 1177 01:02:30,000 --> 01:02:34,000 Ahora tengo acceso a un archivo llamado bootstrap.min.css. 1178 01:02:34,000 --> 01:02:37,000 Min sólo significa que lo han minified y se han deshecho de todos los espacios en blanco y así sucesivamente 1179 01:02:37,000 --> 01:02:40,000 sólo para asegurarse de que no me están enviando más bytes de lo que realmente necesita. 1180 01:02:40,000 --> 01:02:45,000 Pero hay un montón de CSS, así que si ahora abrir la versión 1 de Frosh IMs 1181 01:02:45,000 --> 01:02:49,000 cuenta de que mi archivo es definitivamente más bonita. 1182 01:02:49,000 --> 01:02:54,000 Ahora es todavía sólo en blanco y negro, pero note que con sólo usar su hoja de estilo 1183 01:02:54,000 --> 01:02:58,000 y el uso de ciertos rasgos de ella en mi forma no es sorprendente, 1184 01:02:58,000 --> 01:03:01,000 pero sin duda es más limpio que antes, y el proyector no está haciendo justicia. 1185 01:03:01,000 --> 01:03:05,000 Hay pequeñas líneas de color gris alrededor de los botones y de todo el campo de texto de la derecha aquí, 1186 01:03:05,000 --> 01:03:07,000 pero sin duda es más limpio de lo que era antes. 1187 01:03:07,000 --> 01:03:09,000 >> Ahora, para ser justos, yo tuve que cambiar mi marcado un poco. 1188 01:03:09,000 --> 01:03:12,000 Esta es la versión 1, así que he utilizado algunas etiquetas nuevas, 1189 01:03:12,000 --> 01:03:17,000 y honestamente, no tenía ni idea de cómo hacer esto hasta que leí la documentación 1190 01:03:17,000 --> 01:03:20,000 para la biblioteca de arranque de Twitter, y me dijeron que si quieres usar nuestra biblioteca 1191 01:03:20,000 --> 01:03:23,000 utilizar un elemento fieldset dentro de su forma, 1192 01:03:23,000 --> 01:03:27,000 poner la palabra que desea mostrar al lado de un campo dentro de una etiqueta de la etiqueta, 1193 01:03:27,000 --> 01:03:30,000 luego darle a su entrada un nombre, al igual que antes, 1194 01:03:30,000 --> 01:03:34,000 y luego por la casilla de verificación, no sólo usted se envuelve en un elemento label, 1195 01:03:34,000 --> 01:03:36,000 utiliza algo llamado una clase, así que no hemos visto esto antes, 1196 01:03:36,000 --> 01:03:39,000 pero vas a ver esto en un conjunto de procesadores de pantalones cortos de 7. 1197 01:03:39,000 --> 01:03:43,000 Una clase en CSS le permite hacer algo muy similar a la identificación, 1198 01:03:43,000 --> 01:03:46,000 pero antes, cuando teníamos una identificación con el símbolo # 1199 01:03:46,000 --> 01:03:48,000 que era para uno y sólo único elemento. 1200 01:03:48,000 --> 01:03:51,000 Lo bueno de una clase es que varios elementos pueden tener la misma clase 1201 01:03:51,000 --> 01:03:54,000 o el mismo material CSS aplicado a él. 1202 01:03:54,000 --> 01:03:57,000 >> Pero, de nuevo, más de aquellos en el corto, y el resto de este es copiar y pegar 1203 01:03:57,000 --> 01:04:00,000 de la documentación en la que he añadido una etiqueta aquí y allá. 1204 01:04:00,000 --> 01:04:03,000 Y al final, porque he incluido la etiqueta en la parte superior, 1205 01:04:03,000 --> 01:04:06,000 todo se ve más bonito automáticamente 1206 01:04:06,000 --> 01:04:10,000 simplemente por haber marcado mi página de una manera que 1207 01:04:10,000 --> 01:04:12,000 Twitter se esperaba, y hay tantas maneras diferentes 1208 01:04:12,000 --> 01:04:14,000 de esta manera, y esto es de hecho muy apropiado. 1209 01:04:14,000 --> 01:04:17,000 En este punto en el semestre, como se verá en las especificaciones del conjunto de procesadores 7, 1210 01:04:17,000 --> 01:04:20,000 Googling alrededor, leyendo sobre las bibliotecas, el uso de CSS de los demás 1211 01:04:20,000 --> 01:04:23,000 y JavaScript para solucionar los problemas secundarios 1212 01:04:23,000 --> 01:04:26,000 para el conjunto de problemas en sí es, sin duda alentado y es la manera 1213 01:04:26,000 --> 01:04:29,000 la Web se basa en estos días, de pie sobre los hombros de los demás 1214 01:04:29,000 --> 01:04:32,000 de modo que usted puede concentrarse en los problemas nuevos e interesantes. 1215 01:04:32,000 --> 01:04:34,000 Pero ahora vamos a centrar, una vez más, la lógica. 1216 01:04:34,000 --> 01:04:38,000 >> Eso fue un rápido desvío en la estética sólo para mostrar la dirección en la que se puede ir. 1217 01:04:38,000 --> 01:04:40,000 Voy a volver a la más fea uno por ahora sólo porque 1218 01:04:40,000 --> 01:04:44,000 no hay distracciones con cosas de Twitter, y déjame seguir adelante y abrir 1219 01:04:44,000 --> 01:04:51,000 froshims2, que, de nuevo, sólo difiere en la acción, register2.php, 1220 01:04:51,000 --> 01:04:55,000 y vamos a echar un vistazo a lo que el efecto es aquí. 1221 01:04:55,000 --> 01:04:57,000 Déjenme seguir adelante y escribir en David. 1222 01:04:57,000 --> 01:04:59,000 No voy a ser capitán de este tiempo. 1223 01:04:59,000 --> 01:05:01,000 Diré masculino, Matthews registro. 1224 01:05:01,000 --> 01:05:05,000 Maldita sea. Bueno, eso es un tornillo de arriba de mi parte. 1225 01:05:05,000 --> 01:05:07,000 En espera. 1226 01:05:07,000 --> 01:05:17,000 Registro2, línea 22, si está vacío o lo siento. 1227 01:05:17,000 --> 01:05:19,000 Vamos a recargar. 1228 01:05:19,000 --> 01:05:22,000 Bueno, al presentar este formulario lo que ha pasado? 1229 01:05:22,000 --> 01:05:25,000 He escrito en David, verificado masculino, hace clic en Matthews, registro. 1230 01:05:25,000 --> 01:05:27,000 Se ha registrado. (Bueno, en realidad no.) 1231 01:05:27,000 --> 01:05:32,000 Esto es claramente un paso más allá de imprimir el contenido de alguna variable, 1232 01:05:32,000 --> 01:05:34,000 pero lo que está haciendo en realidad este archivo? 1233 01:05:34,000 --> 01:05:37,000 En register2.php 1234 01:05:37,000 --> 01:05:40,000 cuenta de que tengo algo de código nuevo. 1235 01:05:40,000 --> 01:05:44,000 En el interior de mi cuerpo de la etiqueta que tienen esencialmente un if else, 1236 01:05:44,000 --> 01:05:47,000 sino porque estoy co-mezcla esto con algo de HTML 1237 01:05:47,000 --> 01:05:51,000 Tengo que entrar y salir del modo PHP ida y vuelta, así que vamos a ver lo que estoy haciendo. 1238 01:05:51,000 --> 01:05:55,000 >> En la primera línea aquí que estoy diciendo si es el caso 1239 01:05:55,000 --> 01:06:00,000 que el puesto está vacío súper mundial para la clave de nombre, 1240 01:06:00,000 --> 01:06:04,000 por lo que en otras palabras, si el usuario no me dio un valor para el nombre en la forma, 1241 01:06:04,000 --> 01:06:07,000 entonces vacío va a devolver true porque el valor está vacío. 1242 01:06:07,000 --> 01:06:11,000 O-note las barras verticales, si el género está vacío 1243 01:06:11,000 --> 01:06:15,000 dentro de este mundial especial super, que, de nuevo, representa el contenido de la forma, 1244 01:06:15,000 --> 01:06:19,000 o el dormitorio está vacío, entonces yo voy a seguir adelante y gritar en el usuario. 1245 01:06:19,000 --> 01:06:22,000 ¿Cómo? Bueno, fíjate que voy a decir que usted debe proporcionar su nombre, sexo, y residencia de estudiantes. 1246 01:06:22,000 --> 01:06:24,000 Vamos a inducir realmente ese error. 1247 01:06:24,000 --> 01:06:27,000 Déjame volver a mi forma. Permítanme volver a cargar para desactivarla. 1248 01:06:27,000 --> 01:06:30,000 Y yo sólo voy a darles David, y ellos no necesitan saber dónde vivo. 1249 01:06:30,000 --> 01:06:33,000 Regístrate. Al parecer, es necesario que les diga dónde vivo. 1250 01:06:33,000 --> 01:06:35,000 Usted debe proporcionar su nombre, sexo y residencia de estudiantes. Vuelve. 1251 01:06:35,000 --> 01:06:39,000 >> Y podría clic para volver a esa forma, pero ¿por qué es eso? 1252 01:06:39,000 --> 01:06:43,000 Bueno, en ese caso el nombre no estaba vacía, pero el sexo, y fue residencia de estudiantes, 1253 01:06:43,000 --> 01:06:47,000 por lo que esta expresión evaluada como verdadera totalidad, y aunque la sintaxis es un poco nuevo, 1254 01:06:47,000 --> 01:06:51,000 de nuevo, entrar en el modo PHP, familiar if, 1255 01:06:51,000 --> 01:06:54,000 pero lo novedoso es precisamente esto colon, y me había fastidiado al omitir un paréntesis 1256 01:06:54,000 --> 01:06:57,000 por accidente, pero observe los dos puntos, y significa que 1257 01:06:57,000 --> 01:07:00,000 a pesar de que está saliendo todo el modo PHP 1258 01:07:00,000 --> 01:07:03,000 que sigue debe escupir literalmente en el navegador 1259 01:07:03,000 --> 01:07:07,000 hasta que vea un bloque else, como lo hacemos aquí, 1260 01:07:07,000 --> 01:07:10,000 en cuyo caso su lugar debe escupir esto 1261 01:07:10,000 --> 01:07:13,000 hasta que vea la endif, por lo que algunas sintaxis ligeramente nuevo 1262 01:07:13,000 --> 01:07:16,000 que me permite alternar entre HTML y PHP. 1263 01:07:16,000 --> 01:07:19,000 Podemos limpiar esto con el tiempo, pero por ahora, 1264 01:07:19,000 --> 01:07:22,000 es una especie de una forma convincente de comprobación de errores del formulario. 1265 01:07:22,000 --> 01:07:25,000 >> Ahora, yo digo que no está realmente registrado porque, obviamente, no hemos hecho nada, pero los datos, 1266 01:07:25,000 --> 01:07:28,000 así que en realidad tratan de hacer algo fresco. 1267 01:07:28,000 --> 01:07:33,000 En froshims3 la única diferencia es que voy a presentar a register3, 1268 01:07:33,000 --> 01:07:35,000 por lo que el HTML no es el mismo. 1269 01:07:35,000 --> 01:07:38,000 En register3 cuenta de esto. 1270 01:07:38,000 --> 01:07:40,000 Ésta es una especie de sexy. 1271 01:07:40,000 --> 01:07:44,000 En la parte superior Estoy utilizando una instrucción require, así que esto es como # include. 1272 01:07:44,000 --> 01:07:46,000 Esta vez no es stdio.h ni nada de eso. 1273 01:07:46,000 --> 01:07:50,000 Es una librería PHP, y éste se llama PHPMailer. 1274 01:07:50,000 --> 01:07:53,000 ¿Cómo supe que incluya precisamente esta cadena entre comillas? 1275 01:07:53,000 --> 01:07:56,000 Lo leí en la documentación, así que cuando me dijeron que me ponga esto en la parte superior del archivo 1276 01:07:56,000 --> 01:08:00,000 si usted desea utilizar una biblioteca especial llamada PHPMailer que hace lo que dice. 1277 01:08:00,000 --> 01:08:03,000 Le permite enviar correo electrónico a través de PHP. 1278 01:08:03,000 --> 01:08:05,000 Ahora vamos a desplazarse más lejos. 1279 01:08:05,000 --> 01:08:08,000 >> Aviso para empezar estoy en modo PHP todo este tiempo, 1280 01:08:08,000 --> 01:08:11,000 por lo que ahora notar aquí después de importar la biblioteca, 1281 01:08:11,000 --> 01:08:13,000  por así decirlo, estoy haciendo algunas comprobaciones de sanidad. 1282 01:08:13,000 --> 01:08:16,000 Si es el caso que el nombre no está vacío 1283 01:08:16,000 --> 01:08:19,000 y el género no está vacía-notar los signos de exclamación puntos 1284 01:08:19,000 --> 01:08:24,000 dormitorio y no está vacío, entonces el usuario lógicamente ha rellenado el formulario, por lo menos lo suficiente. 1285 01:08:24,000 --> 01:08:28,000 No me importa si son o no capitán. Sólo necesito su nombre, sexo, y residencia de estudiantes. 1286 01:08:28,000 --> 01:08:31,000 Si se han llenado ésos hacia fuera para que ninguno de esos campos están vacíos 1287 01:08:31,000 --> 01:08:33,000 esto es un poco nueva sintaxis. 1288 01:08:33,000 --> 01:08:36,000 PHP, en un aparte, es un lenguaje de programación orientado a objetos 1289 01:08:36,000 --> 01:08:39,000 que algunos de ustedes puede recordar de SCCA o similares. 1290 01:08:39,000 --> 01:08:42,000 Por ahora, si no familiar, sólo sé que para usar esta biblioteca 1291 01:08:42,000 --> 01:08:45,000 usted tiene que escribir una línea de código como este con una nueva palabra clave, 1292 01:08:45,000 --> 01:08:47,000 literalmente una palabra clave nueva llamada nueva. 1293 01:08:47,000 --> 01:08:50,000 Pero más allá de eso, tenemos una sintaxis familiar. 1294 01:08:50,000 --> 01:08:54,000 Es un operador de flecha, que es similar a lo que hemos utilizado para las estructuras en el contexto de los punteros. 1295 01:08:54,000 --> 01:08:57,000 Para hoy PHP no tiene punteros, 1296 01:08:57,000 --> 01:09:01,000 pero sabemos por ahora que dentro de la variable mail 1297 01:09:01,000 --> 01:09:05,000 es esencialmente un tipo de puntero a una biblioteca especial 1298 01:09:05,000 --> 01:09:08,000 que alguien más escribió, y si quiero acceder a la funcionalidad específica 1299 01:09:08,000 --> 01:09:12,000 dentro de esa biblioteca que sí, al igual que en C, utilice el operador de flecha, 1300 01:09:12,000 --> 01:09:14,000 a pesar de que éstas no son en realidad punteros. 1301 01:09:14,000 --> 01:09:16,000 Es una especie de versión propia de PHP del mismo. 1302 01:09:16,000 --> 01:09:20,000 Esto significa ir a la biblioteca y llamar a la función IsSMTP. 1303 01:09:20,000 --> 01:09:23,000 SMTP, memoria, de nuestros guerreros de la Red se refiere al correo electrónico, 1304 01:09:23,000 --> 01:09:28,000 y eso sólo significa utilizar un servidor de correo electrónico para este registro Frosh mensajes instantáneos. 1305 01:09:28,000 --> 01:09:30,000 >> ¿Qué acogida es lo que quiero usar? 1306 01:09:30,000 --> 01:09:34,000 Bueno, Harvard, si se busca en Google la vuelta, tiene un servidor de correo electrónico llamado smtp.fas.harvard.edu. 1307 01:09:34,000 --> 01:09:37,000 Si estás jugando a lo largo de en su casa o vive en una red de Comcast 1308 01:09:37,000 --> 01:09:40,000 puede ser que sea algo como smtp.comcast.net. 1309 01:09:40,000 --> 01:09:43,000 Es totalmente depende de donde usted vive y quién es su proveedor de Internet es. 1310 01:09:43,000 --> 01:09:47,000 Después de eso me voy a poner mi dirección de manera arbitraria a ser jharvard@cs50.net. 1311 01:09:47,000 --> 01:09:52,000 Estoy pasando luego a establecer el abordar a ser jharvard@cs50.net. 1312 01:09:52,000 --> 01:09:55,000 La única manera que sabía que estas funciones fueron llamados setFrom y AddAddress 1313 01:09:55,000 --> 01:09:57,000 Es decir, una vez más, he leído la documentación. 1314 01:09:57,000 --> 01:09:59,000 Esto no es una especie de magia a conocer a todos los programadores. 1315 01:09:59,000 --> 01:10:02,000 Entonces me puse a objeto de "registro". 1316 01:10:02,000 --> 01:10:07,000 Y ahora, esta línea es un poco feo, porque lo que hace el operador de punto medio en PHP? 1317 01:10:07,000 --> 01:10:09,000 Alguien sabe? 1318 01:10:09,000 --> 01:10:11,000 Concatenar. 1319 01:10:11,000 --> 01:10:14,000 En C es un dolor en el cuello para concatenar dos cadenas juntas. 1320 01:10:14,000 --> 01:10:17,000 Tienes que lidiar con malloc o realloc o todas esas cosas 1321 01:10:17,000 --> 01:10:20,000 sólo para extender la longitud de una cadena. 1322 01:10:20,000 --> 01:10:22,000 En PHP, JavaScript y en otros idiomas 1323 01:10:22,000 --> 01:10:24,000 normalmente se puede hacer esto con un solo carácter. 1324 01:10:24,000 --> 01:10:28,000 En este caso, punto significa tomar esta cadena aquí 1325 01:10:28,000 --> 01:10:30,000 y añadir a esta cadena. 1326 01:10:30,000 --> 01:10:32,000 >> Ah, y por cierto, añadir a esta cadena, 1327 01:10:32,000 --> 01:10:34,000 que pasa a ser una variable de ese interior súper global. 1328 01:10:34,000 --> 01:10:37,000 A continuación, añadir a una nueva línea, por lo que todos estos puntos sólo significa 1329 01:10:37,000 --> 01:10:39,000 seguir haciendo una cadena más grande y más grande y más grande, 1330 01:10:39,000 --> 01:10:43,000 y usted no tiene que preocuparse en absoluto por malloc o similar, en un lenguaje como éste, 1331 01:10:43,000 --> 01:10:46,000 y hay otras maneras de hacer esto, pero este es uno de los más rápidos 1332 01:10:46,000 --> 01:10:48,000 formas de exponer. 1333 01:10:48,000 --> 01:10:50,000 ¿Qué hace esto? 1334 01:10:50,000 --> 01:10:55,000 Se trata de crear un cuerpo de correo electrónico que va a decir el nombre: Capitán: Sexo: Dorm: 1335 01:10:55,000 --> 01:10:58,000 todo en líneas separadas, y luego, por último, 1336 01:10:58,000 --> 01:11:00,000 una línea de código, y yo voy a hacer caso omiso de esto por ahora. 1337 01:11:00,000 --> 01:11:02,000 Si es false == simplemente significa que si algo salía mal, 1338 01:11:02,000 --> 01:11:04,000 pero la magia que sucede aquí. 1339 01:11:04,000 --> 01:11:08,000 Mail Enviar significa el envío de este correo electrónico. 1340 01:11:08,000 --> 01:11:10,000 Vamos a ver lo que el resultado neto es. 1341 01:11:10,000 --> 01:11:13,000 En la parte inferior del archivo, notará que va a decir que está registrado realmente 1342 01:11:13,000 --> 01:11:15,000 si llegar tan lejos. 1343 01:11:15,000 --> 01:11:18,000 Si, sin embargo, el usuario mete la pata, observe que comenzamos este 1344 01:11:18,000 --> 01:11:21,000 si la condición hasta aquí, si no está vacío y no vacío 1345 01:11:21,000 --> 01:11:24,000 y no vaciar enviamos por correo. 1346 01:11:24,000 --> 01:11:27,000 De lo contrario vamos a enviar esta línea de código, 1347 01:11:27,000 --> 01:11:30,000 que va a tener el efecto, como se verá en el conjunto de procesadores 7, de redirigir al usuario 1348 01:11:30,000 --> 01:11:35,000 de vuelta a donde vinieron, froshims3.php. 1349 01:11:35,000 --> 01:11:38,000 >> Crucemos los dedos, de lo contrario esto va a ser la demostración más decepcionante hoy. 1350 01:11:38,000 --> 01:11:40,000 Aquí vamos. 1351 01:11:40,000 --> 01:11:42,000 Permítanme abrir mi bandeja de entrada de correo electrónico para jharvard en Gmail. 1352 01:11:42,000 --> 01:11:44,000 Ningún correo electrónico ahora mismo. Está bien. 1353 01:11:44,000 --> 01:11:53,000 Ahora voy a abrir froshims3, que es el tercer y último ejemplo vamos a ver aquí. 1354 01:11:53,000 --> 01:11:55,000 Bueno, aquí vamos. 1355 01:11:55,000 --> 01:12:00,000 Nate, que va a ser el capitán, hombre, de, por ejemplo, Apley. 1356 01:12:00,000 --> 01:12:04,000 Regístrate. Está bien, está registrado realmente. 1357 01:12:04,000 --> 01:12:07,000 Ahora, si me desplazo a mi correo electrónico, oh, Dios mío. 1358 01:12:07,000 --> 01:12:09,000 Acabo dinámicamente envió un correo electrónico en la Web. 1359 01:12:09,000 --> 01:12:11,000 >> Vamos a dejarlo en esa nota. 1360 01:12:11,000 --> 01:12:16,000 Un video es para la próxima conferencia nos perdimos. Nos vemos la semana que viene. 1361 01:12:16,000 --> 01:12:18,000 [CS50.TV]