TUTORIAL DE PHP M. en C. Erika Vilches Parte 1 http://www.erikavilches.com Scripting del Lado del Servidor PHP: Acrónimo recursivo → PHP: Hypertext Preprocessor El módulo PHP se adjunta al servidor web, diciéndole que los archivos con una determinada extensión deben ser examinados por código PHP. Cualquier código PHP encontrado en la pagina es ejecutado y reemplazado por la salida que produce antes de que la página web se envíe al browser. archivo.php → Interpretado por PHP archivo.html → Pasado directamente al browser El único momento en que se llama al intérprete de PHP → cuando se carga una página web. PHP no puede hacer validación del lado del cliente. Validación del lado del cliente → JavaScript, lenguaje que corre dentro del browser mismo Es posible utilizar JavaScript en conjunto con PHP. PHP no depende del browser utilizado en absoluto. Etiquetas PHP Considere el siguiente pedazo de una página web PHP que despliega la fecha actual: Today is <?php echo date('j F Y');?> La etiqueta <?php le indica a PHP que todo lo que sigue es código de programa en lugar de HTML, hasta el ?> que cierra. En este ejemplo, el comando echo le indica a PHP que despliegue el siguiente elemento a pantalla. El comando date produce una versión formateada de la fecha actual que contiene el día, mes y año El caracter “punto y coma” es utilizado para indicar el fin de un comando PHP. Otros estilos de etiqueta incluyen: <? La etiqueta corta <% La etiqueta estilo ASP <SCRIPT LANGUAGE="php"> La etiqueta script De los estilos disponibles, solamente las etiquetas <?php y <SCRIPT LANGUAGE="php"> se encuentran siempre disponibles, las demás se prenden o apagan utilizando un setting en la configuración de PHP (php.ini) Cualquier cosa que no este dentro de etiquetas PHP se envía al browser textual como aparece en el script. Ejemplo de Script Crear un nuevo archivo llamado time.php que contenga lo siguiente: The time is <?php echo date('H:i:s');?> and the date is <?php echo date('j F Y');?> Ubicar el archivo en un lugar donde pueda ser accedido por un servidor web con PHP habilitado. Cuando se indica el URL a este archivo en el browser, se debe ver la fecha y hora actuales, de acuerdo al reloj del sistema del servidor web. PHP de Manera Local El código PHP en un script se ejecutara solamente si se accede a través de un servidor web que tenga el módulo PHP habilitado. Si se abre el script directamente en el browser ya sea arrastrando el archivo o con doble click, será tratado como si solo contuviera HTML. En caso de que se utilice una instalación predeterminada de Apache en Windows, el archivo time.php deberá estar localizado en el folder: C:\Program Files\Apache Group\Apache\htdocs y el URL correcto sería: http://localhost/time.php Si se escribe el código de time.php tal como se mostró, nos damos cuenta que la salida puede ser formateada de mejor manera, ya que no hay espacio entre el tiempo y la palabra and. The time is 23:28:36and the date is 23 March 2008 The time is <?php echo date('H:i:s');?> and the date is <?php echo date('j F Y');?> time.php Browser The time is 23:28:36and the date is 23 March 2008 View Source Cualquier línea en un script que solamente contenga código dentro de etiquetas PHP no tomará una línea de salida en el HTML generado. Si se inserta un espacio después del ?>, ahora la línea contiene elementos que no son PHP y la salida tiene el formato correcto. El comando echo Es posible que la página entera consista de un conjunto de instrucciones PHP para generar la salida. El comando echo se utiliza para enviar una salida al browser. Reescribiendo time.php como un solo bloque de código PHP con una serie de comandos echo nos queda: <?php echo "The time is "; echo date('H:i:s'); echo " and the date is "; echo date('j F Y'); ?> The time is 23:34:52 and the date is 23 March 2008 time.php View Source The time is 23:34:52 and the date is 23 March 2008 Browser Los elementos no dinámicos que se quieren sacar se colocan entre comillas. Para encerrar strings se pueden utilizar comillas dobles “ ” o comillas simples ‘ ’ Los siguientes enunciados son igualmente válidos: echo "The time is "; echo 'The time is '; Note que los caracteres de espacio se utilizan en estos enunciados dentro de las comillas para colocar un espacio entre el texto y la salida de la función date. En el browser, la salida de ambas formas de time.php es la misma porque en HTML, todo el espacio en blanco (enters, espacios o tabs múltiples) se despliega como un solo espacio en blanco. Comentarios Un comentario es un pedazo de texto libre que puede aparecer en cualquier parte de un script y es ignorado completamente por PHP Los estilos de comentario disponibles son los siguientes: // o # → Comentarios de una sola línea. Cualquier cosa hasta el final de la línea es ignorado /* ... */ → Comentarios de una o varias líneas. Cualquier cosa entre /* y */ es ignorado. time.php con comentarios: <?php /* time.php This script prints the current date and time in the web browser */ echo "The time is "; echo date('H:i:s'); // Hours, minutes, seconds echo " and the date is "; echo date('j F Y'); // Day name, month name, year ?> Variables Las variables son contenedores en los que se pueden almacenar valores que pueden ser recuperados mas tarde. $number = 5; $name = "Chris"; En PHP el nombre de una variable siempre lleva como prefijo el signo de pesos $. Declarar una variable → nombre de la variable a la izquierda, signo de =, valor que tomara a la derecha. Las variables se pueden utilizar en lugar de valores fijos. Ejemplo: echo para desplegar el valor almacenado en una variable de la misma forma que se desplegaría un texto fijo. $name = "Chris"; echo "Hello, "; echo $name; → Hello, Chris Las variables son sensibles al uso de mayúsculas y minúsculas, por lo tanto $name es diferente que $Name Los nombres de las variables pueden contener solamente letras, números, y guión bajo y pueden empezar solamente con una letra u un guión bajo. Nombres Válidos → $percent $first_name $line_2 Nombres Inválidos → $pct% $first-name $2nd_line Expresiones En la asignación de una variable, el valor dado no necesita ser un valor fijo, puede ser una expresión (dos o más valores combinados usando un operador para producir un resultado) Ejemplo: $sum = 16 + 30; echo $sum; ≡ $a = $b = $sum echo 16; 30; = $a + $b; $sum; → 46 Variables en Strings El signo de pesos $ en un string con comillas dobles “ ” indica que el valor de esa variable debe convertirse en parte del string. En un string con comillas sencillas ‘ ’, el signo de pesos $ es tratado como un caracter literal, y no se hace referencia a ninguna variable. Ejemplo: $name = "Chris"; echo "Hello, $name"; → Hello, Chris $name = 'Chris'; echo 'Hello, $name'; → Hello, $name En ocasiones se requiere indicarle a PHP exactamente donde inicia y termina una variable, para esto se utilizan llaves { }. Ejemplo: Se desea desplegar un valor de peso con un sufijo para indicar libras o onzas. echo "The total weight is {$weight}lb"; Sin las llaves, PHP habria tratado de buscar el valor de la variable $weightlb. Se puede obtener el mismo efecto utilizando el operador de concatenación, el punto, que se puede utilizar para unir dos o mas strings: echo 'The total weight is ' . $weight . 'lb'; → The total weight is 99lb Tipos de Datos Los tipos de datos básicos son: Boolean → Puede ser TRUE o FALSE Integer → Número entero positivo o negativo Double → Cualquier número decimal String → Cualquier número de caracteres ASCII Cuando se asigna un valor a una variable, PHP determina automáticamente el tipo. Para verificar que tipo de dato se le asignó a una = 7.2; variable, se utiliza la función gettype $value echo gettype($value); La función complementaria de gettype es settype, que permite sobreescribir el tipo de dato de una variable. En caso de que el valor almacenado no sea adecuado para el nuevo tipo, se modificará al mas cercano posible. Ejemplo: intentar convertir un string en un entero. $value = "22nd January 2005"; settype($value, "integer"); echo $value; → 22 Convierte todo hasta el primer caracter no numérico y descarta el resto. Juggling de tipos En algunas ocasiones PHP hace una conversión implícita de tipos si se espera que los valores sean de determinado tipo, a esto se le conoce como juggling de tipos. Ejemplo: echo 100 + "10 inches"; → 110 Ejemplo: Cuando se aplica un operador de string a datos numéricos, el valor numérico es convertido a string primero. Variables variables Es posible utilizar el valor almacenado en una variable como el nombre de otra variable Ejemplo: $my_age = 21; $varname = "my_age"; echo "The value of $varname is ${$varname}"; ≡ echo 'The value of ' . $varname . ' is ' . $$varname; → The value of my_age is 21