DOUG LLOYD: Asà que en nuestro video en la sintaxis de PHP, hablamos mucho acerca de cómo PHP se puede utilizar en la lÃnea de comandos para ejecutar programas de una manera que estamos bastante familiarizados con de C. Pero como yo he mencionado en ese video, PHP se desarrolló inicialmente para aplicar la programación web, sitios web. Y asÃ, en este video estamos vamos a hablar de la forma en que usar PHP en el contexto de desarrollo web. Sabemos ya, desde nuestro video en HTML, que los sitios web se construyen de un conjunto de etiquetas HTML que definen semánticamente la estructura de una página web. Pero los sitios web que son construido con pura HTML sufrir de una muy, limitación muy seria. Y para ilustrar esta limitación, vamos a considerar lo siguiente. Asà que ahora quiero construir una página web que, siempre que el usuario visita it, me da la corriente tiempo en Cambridge, Mass., mostrarla al último minuto. Si yo estaba haciendo esto ahora mismo, Yo podrÃa decir algo como esto. Hora en Cambridge-- asà que tengo Etiquetas HTML, etiquetas de la cabeza, las etiquetas de tÃtulo, cuerpo tags-- la corriente tiempo en Cambridge es 14:08, impresión de hora militar. ¿Qué pasa si ahora es 14:09, 14:09? Pues hasta ahora, con HTML, tengo para entrar y cambiar a 14:09. Y luego un minuto más tarde, Tengo que cambiar de nuevo. Y luego un minuto más tarde, Tengo que cambiar de nuevo. Y como se puede imaginar, eso es probablemente el peor trabajo nunca. Tú eres el webmaster de una página web, y cada minuto, las 24 horas del dÃa, tiene que actualizar la hora actual abrir manualmente time.html y cambiando sólo que fragmento de código para decir lo hora actual en horas y minutos. Eso probablemente no es muy buen uso de nuestros recursos, tanto humanos como computacional. Los sitios web que son todos HTML son completamente estático. La única manera que usted puede actualizar contenido, como acabamos de ver, es abrir manualmente los fuente archivos, editarlos y guardarlos. Y luego cuando el usuario refresca la página, o visita la página por primera tiempo, van a tener el contenido más reciente. Pero sólo porque hemos manualmente editado. Si empezamos a mezclar un poco de PHP en allÃ, nuestro código puede conseguir mucho más flexible. Y podemos tener una manera para que nuestras páginas ser dinámico, o actualizar a sà mismos, sin necesidad de nuestro pobre webmaster en el ejemplo anterior ser manualmente la actualización de las cosas. Pueden hacerlo de forma automática. No tenemos que intervenir. Podemos dormir un poco. Lo cual es probablemente una buena cosa si que está haciendo una gran cantidad de programación web. Asà que en CS50 IDE, corremos un servidor web llamado Apache. Es una muy usada, sistema del servidor web de código abierto. Este sistema tiene la capacidad de interpretar PHP, que va a ser útil si que quiere hacer ningún tipo de programación PHP. Y en IDE CS50, tenemos un comando para que este muy fácil de hacer, apache50 empezar. Y luego esa barra camino, barra de, recortar dir, que es sólo una forma muy común de indicando lo que has especificado aquà es un camino a un particular, anuario que quiero ser la raÃz sitio, o la página raÃz, o en la carpeta de la que su servidor web comenzará a examinar los archivos y servir les permitió llegar a los clientes que lo soliciten. Asà que vamos a pop a CS50 IDE, sólo para mostrar, muy rápido, ¿cómo funciona esto. Asà que aquà en IDE CS50, estoy en un directorio llamado Semana Cero Nueve. Y tengo dos-- tengo ejecutar un comando LS solo arriba para mostrar que tengo dos directorios en aquÃ, PHP, que es el conjunto de archivos que he usado en el video sintaxis de PHP, y luego de PHP en la web, que es el conjunto de archivos que le gustarÃa utilizar en este video. Y me gustarÃa empezar una instancia de servidor web con el contenido de la carpeta PHP-web a medida que se sirven de los archivos. Entonces, ¿qué voy a hacer? Yo voy a escribir apache50 espacio iniciar, PHP espacio, guión web. Esa es la ruta al directorio desde donde actualmente soy. Entonces me golpeó Intro. Se va a hacer un poco de cosas aquÃ. Y luego se va a decir, Apache se inició correctamente. Su sitio ya está disponible at-- y luego está la dirección URL del sitio. Entonces, ¿qué voy a hacer? Voy a copiar rápidamente esto. Y yo voy a abrir up-- y Voy Alejar un poco aquÃ-- Voy a abrir una nueva pestaña en Chrome. Y yo voy a visitar esa URL. Voy a pulsar Enter. Se va a cargar. Y voy a alejar el zoom de nuevo. Y podemos ver aquà es el contenido de mi directorio web PHP. Asà que ahora lo que está ocurriendo básicamente aquà está, mi instancia de CS50 IDE está sirviendo estos archivos cualquiera que lo solicite. Y en el transcurso de este video, vamos a ordenar de echar un vistazo a un montón de ellos diferentes archivos en su contexto. Para probar que su Apache servidor está funcionando, que generalmente se va ser el caso en CS50 IDE, pero si lo hace de manera más general, y empezar a construir su propia web servidores, hay una realidad tipo común de analógico a, "hola mundo", que suele ser utilizado para el desarrollo web PHP. ¿Qué es tener un archivo que consiste en sólo esta code-- un delimitador PHP conjunto con información de PHP, paréntesis, punto y coma en el medio. Que es básicamente una especial Función de PHP que te dice qué versión de PHP que está ejecutando. Asà que en CS50 IDE, tengo ese archivo disponible justo para mostrar lo que este se verÃa asÃ. Asà que estoy buscando en mi Ãndice desde mi ejemplo PHP. Mi ejemplo Apache está funcionando los contenidos de PHP en web. Y tengo un archivo llamado aquà info.php. Voy a hacer clic en él, alejar. Esto es lo que vas para ver, más o menos. Esto se me acaba diciendo que mi servidor Apache está funcionando. Y esto es, al parecer, el versión de PHP que estoy corriendo. Este es mi analógica a "hola mundo". Asà que sé que las cosas están en funcionamiento. Asà que estamos bien para ir. Podemos continuar desde aquÃ. Asà que vamos a revisar que ejemplo vez que estuvimos hablando con nuestro pobre webmaster que tuvo que actualizar la página constantemente. Esto podrÃa ser una solución para la forma Me gustarÃa poner en práctica las cosas por lo que el webmaster no lo hizo tiene que mantener la actualización de la época. SerÃa sólo una especie de sucederá automáticamente. El abajo, el código HTML, es bastante similares, con una excepción. Pero aquà tengo algo de PHP en la parte superior. He, al parecer, llamó a este date_default_timezone_set función. Y no hablamos de todo estas funciones en CS50, porque PHP tiene, probablemente, Decenas de miles. Eso podrÃa ser un poco de una exageración, pero no pudo ser. Tiene una gran cantidad de funciones integradas. Y por lo que esta es una función aparentemente establece mi zona de tiempo que nosotros / Este, que es la zona horaria que soy Actualmente en la toma de video. Entonces hago una llamada a función de llamada, fecha. Y, al parecer, estoy almacenando el HIS de algo que se llama, el tiempo. Entonces, ¿qué está pasando aquÃ? Bueno, básicamente lo que hay sucediendo es, estoy haciendo una llamada a algún servidor que va a dime lo que el tiempo del que actualmente es. Y estoy convertirlo a un formato de horas, minutos, segundos. Y la razón es de capital H es esto se me va a dar tiempo de 24 horas, no 12 tiempo de horas, lo que serÃa h minúscula. Y sólo estoy almacenando que en una variable llamada, el tiempo. Asà que la segunda lÃnea de PHP allÃ, la llamada a la función, fecha, se acaba de conseguir una cuerda, la cual es me va a dar la fecha y el tiempo, y un montón de otra información. Y el primer argumento allÃ, que HIS, se acaba de extraer la parte importante que me importa en este ejemplo, que es la hora, minuto y segundo. Asà que ese es el único que está pasando. Asà que almaceno que en un tiempo variable $. Y luego hacia abajo en el muy inferior allÃ, tener esa abreviatura de impresión de la hora actual. Asà que sólo voy a imprimir lo que el tiempo actual. Asà que echemos un vistazo a esto en IDE CS50 y ver cómo estamos ahora ahorro que webmaster un montón de problemas. Muy bien, asà que aquà estoy de nuevo de vuelta en el directorio raÃz de mi instancia de Apache. Y tengo un archivo llamado aquà time.php. Yo sólo voy a hacer clic en eso. Y voy a desplazarse hacia arriba, porque estamos acercado bastante lejos. La hora actual es 14:20:34. Asà que lo estoy haciendo horas, minutos y segundos. Y puedo actualizar la página y obtener nueva hora. --41. Voy a actualizar la página y obtener nuevo tiempo, 44, 46, 47. Asà que claramente no soy cambiar nada a mà mismo. Estoy aquà actualizar la página. Asà que no puedo volver allà editarlo. Y te prometo, no lo hago tener cómplices que está editando el archivo en mi nombre a un lado. Sólo estoy usando esa función PHP, tiempo, para generar el momento para mà automáticamente. Asà que incluso si estoy dormido, y mi servidor web está funcionando, el usuario que visita la página sigue siendo va a conseguir exactamente en el momento actual. Asà que eso es bastante bueno. He hecho mi sitio más dinámico con no demasiado código PHP. Fue tan sólo dos lÃneas de código y después un poco de una sentencia print. Y ya tengo un sitio mucho más dinámico que el primer ejemplo que vimos al comienzo del vÃdeo. Por lo tanto, recordar del video sobre la sintaxis de PHP que cuando el intérprete PHP corre nuestro programa, ignora todo eso no es dentro de los delimitadores de PHP, escupirlo. En este ejemplo, lo que la cosa que estaba escupiendo era HTML. Y esto significa que ahora puede intercalar HTML y PHP juntos. Debido a que el intérprete simplemente ignorar el HTML y literalmente salida ello. Lo cual es bueno, ¿no? Debido a que, presumiblemente, al final del dÃa, Me gustarÃa que mi sitio para ser construida de HTML. Asà que cualquier navegador puede interpretar , o entender el código HTML de la página y hacerlo como algo que nos puede entender realmente como seres humanos. Y sólo puedo usar PHP para las partes de mi sitio la requieren dinamismo, que me requieren tener las cosas que se actualizan constantemente. La información estática puede permanecer igual. OK, asà que está bien. Pero ¿por qué iba yo a hacer esto? ¿Por qué deberÃa mezclar HTML y PHP? Yo sólo podÃa imprimir toda la HTML, utilizando la función de impresión de PHP. Por qué no estoy haciendo eso? Piensa en ello un segundo. ¿Por qué, cuando yo sólo pudiera imprimir fuera-- I podrÃa tener lÃneas de PHP que acaba de decir, impresión de etiquetas HTML, cabezal de impresión. Por qué no estoy haciendo eso? ¿Por qué estoy mezclando el PHP y HTML? Bueno, si usted piensa en esto por un segundo. PHP, el intérprete tiene interpretar lo que ve. Y asà va a tener para ejecutar una lÃnea de código. Imprima HTML. Imprima etiqueta de la cabeza abierta. Imprima etiqueta del tÃtulo abierta. Va a tener que ejecutar e interpretar que cada paso del camino. ¿Por qué no dejar que el intérprete acaba de brillo más cosas que no entiende y hacerlo de forma automática? Se me va a ahorrar un montón de tiempo mezclar mi HTML y mi PHP juntos. Y por eso no lo hacemos sólo hay abierta delimitador PHP y luego simplemente imprimir la totalidad contenido de nuestra página como uno PHP gigante llame a la función, Imprimir, y luego cerca PHP delimitador y hemos terminado. Asà que por eso mezclamos ellos juntos. Hasta ahora, no hemos visto demasiado de una diferencia de sintaxis general de PHP. Ha sido bastante sencillo. Ya hemos visto la signo de interrogación, iguales. Vimos un par de nuevas llamadas a funciones, pero nada realmente de lujo pasando. Vamos a hacer las cosas lo mejor un poco más de lujo. ¿Qué pasa si queremos pasar información entre los diferentes archivos PHP, por lo que tal vez el usuario puede presentar información para mÃ. Y entonces yo podrÃa hacer algo con ella en otra página. Asà que PHP tiene soporte para algo llamado Super Global Variables, que suena bastante impresionante. Son realmente sólo matrices asociativas gigantes que ayudar a implementar este funcionalidad de fallecimiento información entre archivos PHP que están existente en nuestro servidor web. El primero de estos súper globales se llama $ _GET. Y es probablemente el más simple de entender. ¿Qué pasa con $ _GET? Bueno, básicamente, el usuario es va a escribir información adicional al final de nuestras direcciones URL. Y todo lo que escriba, asumiendo que está formateado de una manera particular llama una cadena de consulta, que es justo un conjunto de pares de valores clave separada por sÃmbolos de unión. Estos pares de valores clave serán almacenado en un array asociativo $ _GET. Y a partir de nuestro video en Sintaxis de PHP, sabemos cómo trabajar con matrices asociativas ya. Asà que aquà es un ejemplo de algo de PHP, donde tal vez soy extracción de todos los pares de valores clave que el usuario que se proporciona en la URL. Asà que tengo mi Abrir delimitador PHP. Tengo un bucle foreach. Estoy iterar a través de la Súper Matriz Global llamó $ _GET. Y yo quiero ser capaz de referirse tanto a la clave y el valor. Y sólo estoy imprimirlas a cabo, cada uno en apariencia su propia etiqueta de párrafo aquÃ. Estoy imprimiendo algo de HTML e interpolando los valores de la clave y el valor en esa declaración. Asà que echemos un vistazo a cómo este serÃa realmente trabajar en nuestro IDE. Y tal vez esto le ayudará ilustrar un poco de lo que se obtiene es realmente hacer. Asà que estoy de vuelta aquà en mi web raÃz. Y voy a zoom en un poco para mostrarle que tengo un archivo llamado, get1.php. Asà que vamos clic en get1.php. Y yo no estoy viendo cualquier contenido. Eso es raro, ¿no? Bueno, no realmente en realidad. Porque yo no proveo nada en la URL. Voy a get1.php, pero yo no suministrar ningún pares de valores clave como parte de mi cadena de consulta. Asà que vamos a agregar una cadena de consulta y ver lo que este archivo puede hacer. Para empezar una cadena de consulta que sólo tienes que escribir el signo de interrogación. Entonces tal vez voy a decir el nombre = Doug y año = 2.015. Y entonces les presione Enter. Ahora note lo que está sucediendo. TodavÃa estoy en get1.php. Pero ahora he suministré pares de valores clave, y estoy imprimirlos por su cuenta Nombre paragraph--, año Doug--, 2015. Eso es exactamente el código que acabamos de vio en la diapositiva hace un momento. Y si quiero añadir tal vez otro par de valores clave, y class = CS50. Ahora tengo otro valor clave par que se imprime cuando vuelva a visitar la URL de nuevo. Ahora tal vez esto no es formateado terriblemente bien. Asà que tengo otra versión de get.php. Es get2.php. La diferencia en este una es que tengo el archivo CSS, y formatos de las cosas poco más agradable para mÃ. Es tal vez no es el más hermosa CSS en el mundo. Pero es sólo otra manera de hacerlo. Asà que puedo conseguir todavÃa el acceso a mis variables utilizando $ _GET. Y en este caso, yo soy sólo un poco haciendo que la CSS un poco más de lujo. Y si nos pop a mi IDE por un segundo, Te voy a mostrar en mi web PHP directorio de aquÃ, get2.php. Abriremos para arriba, algo de HTML aquÃ. Al parecer estoy vinculando en ese Archivo CSS que estaba hablando. Abro una etiqueta de mesa. Y entonces aquà está mi bucle foreach. Aquà es que, lo que yo mostró en la diapositiva anterior. La única diferencia es que yo tienen esta clave y valor CSS estilo que estoy aplicando a la misma. Pero eso es todo lo que estoy haciendo, es que soy iterar a través de $ _GET para obtener toda la de los pares de valores clave. Y estoy imprimirlos como la tabla. Y, al parecer, estoy formatear las llaves de una manera, con la clase "clave"