Un tutorial sencillo A continuación, nos gustaría mostrarle lo esencial de PHP en un corto y sencillo tutorial. Este documento solamente trata de la creación de páginas web dinámicas con PHP, aunque PHP no solamente es capaz de crear páginas web. Consulte la sección titulada ¿Qué puede hacer PHP? para más información. Las páginas web que usan PHP se tratan igual que páginas HTML comunes y corrientes, y se pueden crear y editar de la misma manera que normalmente se crean páginas HTML.
¿Qué necesito? En este manual se asume que se cuenta con un servidor que tiene soporte activado para PHP y que todos los ficheros con la extensión .php son tratados por PHP. En la mayoría de servidores, esta es la extensión predeterminada para los ficheros de PHP, aunque puede preguntar al administrador de su servidor para estar seguro. Si el servidor tiene soporte para PHP, entonces no es necesario hacer nada. Simplemente cree sus ficheros .php, guárdelos en su directorio web y el servidor los analizará por usted. No hay necesidad de compilar nada o instalar otras herramientas. Piense en estos ficheros habilitados para PHP como simples ficheros HTML con el añadido de una nueva familia de etiquetas mágicas que permiten todo tipo de cosas. Digamos que quiere ahorrar el preciado ancho de banda y trabajar localmente. En este caso, querrá instalar un servidor web, como Apache, y por supuesto PHP. Lo más seguro es que también quiera instalar una base de datos como MySQL. Puede instalarlos de forma independiente o bien puede elegir una manera más sencilla. Este manual contiene Instrucciones de instalación de PHP (asumiendo que tiene algún tipo de servidor web ya configurado). Si tuviera problemas con la instalación, sugerimos que formule sus preguntas en nuestra lista de correo de instalación. Si elige la manera más sencilla, localice un paquete preconfigurado para su sistema operativo, el cual instala automáticamente todo esto con únicamente unos pocos clics de ratón. Es sencillo configurar un servidor web con soporte para PHP en cualquier sistema operativo, incluyendo MacOSX, Linux y Windows. En Linux, podría encontrar útil rpmfind y PBone para localizar los RPM. También puede visitar apt-get para buscar paquetes para Debian..
Su primera página con PHP Comience por crear un fichero llamado hola.php y póngalo en el directorio raíz de su servidor web (DOCUMENT_ROOT) con el siguiente contenido: Nuestro primer script de PHP: <filename>hola.php</filename> Prueba de PHP Hola Mundo

'; ?> ]]>
Utilice su navegador web para acceder al fichero con el URL de su servidor, finalizado con la referencia al fichero /hola.php. Si está programando localmente, este URL será algo parecido a http://localhost/hola.php o http://127.0.0.1/hola.php, pero esto depende de la configuración de su servidor web. Si todo está configurado correctamente, el fichero será analizado por PHP y se enviará el siguiente contenido a su navegador: Prueba de PHP

Hola mundo

]]>
Este programa es extremadamente simple y realmente no es necesario utilizar PHP para crear una página como esta. Lo único que muestra es: Hola mundo empleando la sentencia echo de PHP. Observe que el fichero no necesita ser ejecutable o especial de ninguna forma. El servidor reconoce que este fichero necesita ser interpretado por PHP debido al empleo de la extensión ".php", ya que el servidor está configurado para enviarlo a PHP. Piense como si fuera un fichero HTML normal que tiene una serie de etiquetas especiales disponibles con las que puede hacer muchas cosas interesantes. Si intentó usar este ejemplo y no produjo ningún resultado, se le preguntó si deseaba descargar el fichero, o se mostró todo el fichero como texto, lo más seguro es que PHP no se encuentre habilitado en su servidor o no esté configurado adecuadamente. Pídale a su administrador que lo habilite utilizando el capítulo Instalación del manual. Si está trabajando localmente, lea también el capítulo dedicado a la instalación para asegurarse de que todo esté configurado adecuadamente. Asegúrese de que está accediendo al fichero mediante http y que el servidor muestre el resultado. Si está abriendo el fichero desde el sistema de ficheros, probablemente no será analizado por PHP. Si el problema persiste, no dude en usar alguna de las múltiples opciones del Soporte para PHP. El objetivo de este ejemplo es el formato de las etiquetas especiales de PHP. En este ejemplo utilizamos <?php para indicar el inicio de una etiqueta de PHP. Después ponemos la sentencia y abandonamos el modo PHP añadiendo la etiqueta de cierre ?>. De esta manera, se puede entrar y salir del modo PHP en un fichero HTML cada vez que se quiera. Para más información, lea la sección del manual titulada Sintaxis básica de PHP. Una observación sobre los avances de línea Los avances de línea tienen poco sentido en HTML, aunque sigue siendo buena idea hacer que el código HTML se vea limpio y claro poniendo avances de línea. PHP automáticamente eliminará los avances de línea que estén después de una etiqueta de cierre ?>. Esto puede ser muy útil al poner muchos bloques de PHP o incluir ficheros que contienen PHP y que se supone que no deben mostrar nada. Al mismo tiempo, puede resultar un poco confuso. Se puede poner un espacio después de la etiqueta de cierre ?> para mostrar forzosamente un espacio y un avance de línea, o se puede poner un avance de línea explícito en el último echo/print dentro del bloque de PHP. Una observación sobre los editores de texto Hay muchos editores de texto y Entornos de Desarrollo Integrados (IDE por sus siglas en Inglés) que se pueden emplear para crear, editar, y gestionar ficheros de PHP. Se puede encontrar una lista parcial de estos en Lista de editores de PHP. Si desea recomendar un editor, por favor visite la página mencionada anteriormente y pregunte al mantenedor de la página para que lo incluya en la lista. Contar con un editor que resalte la sintaxis puede ser de mucha ayuda. Una observación sobre los procesadores de texto Los procesadores de texto como StarOffice Writer, Microsoft Word y Abiword no son buenas opciones para editar ficheros de PHP. Si desea utilizar uno de estos programas para probar este script, asegúrese de guardar el documento como texto sin formato, o de lo contrario, PHP no será capaz de leerlo y ejecutarlo. Una observación sobre el Bloc de Notas de Windows Si escribe sus scripts de PHP usando el Bloc de Notas de Windows, debe asegurarse de que sus ficheros sean guardados con la extensión .php. (El Bloc de Notas automáticamente añade la extensión .txt a los ficheros a menos que siga los siguientes pasos para prevenirlo). Cuando guarde el fichero y el programa le pregunte qué nombre desea dar al fichero, entrecomille el nombre (es decir, "hola.php"). Una alternativa es hacer clic en el menú desplegable "Documentos de Texto (*.txt)" del cuadro de diálogo "Guardar como", y cambiar a la opción "Todos los archivos (*.*)". Aquí puede escribir el nombre del fichero sin las comillas. Ahora que ha creado un pequeño script de PHP que funciona correctamente, es hora de crear el script de PHP más famoso: hacer una llamada a la función phpinfo para obtener mucha información útil acerca de su sistema y configuración, como las variables predefinidas disponibles, los módulos de PHP cargados, y los ajustes de configuración. Tómese algo de tiempo para revisar esta importante información. Obtener la información del sistema desde PHP ]]>
Algo útil Hagamos ahora algo que puede ser más útil. Vamos a comprobar qué tipo de navegador está utilizando el usuario visitante. Para hacerlo, vamos a comprobar el string del agente de usuario que el navegador envía como parte de la petición HTTP. Esta información es almacenada en una variable. En PHP, las variables siempre comienzan con un signo de dólar. La variable que nos interesa ahora es $_SERVER['HTTP_USER_AGENT']. $_SERVER es una variable especial reservada por PHP que contiene toda la información del servidor web. Es conocida como una superglobal. Consulte la página del manual sobre Superglobales para más información. Estas variables especiales fueron introducidas en la versión 4.1.0 de PHP. Antes se podían usar en su lugar los antiguos arrays $HTTP_*_VARS, tales como $HTTP_SERVER_VARS. A partir de PHP 5.4.0, estos antiguos arrays han sido eliminados. (Véase también la nota sobre código antiguo). Para mostrar esta variable, se puede hacer simplemente: Imprimir una variable (elemento de array) ]]> Un ejemplo del resultado de este script podría ser: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1) Hay muchos tipos de variables en PHP. En el ejemplo anterior se muestra un elemento de un Array. Los arrays pueden ser muy útiles. $_SERVER es simplemente una variable que se encuentra disponible automáticamente en PHP. Se puede encontrar una lista en la sección Variables reservadas del manual, o se puede obtener una lista completa observando la salida de la función phpinfo usada en el ejemplo de la sección anterior. Puede usar múltiples sentencias de PHP dentro de una etiqueta de PHP y crear pequeños bloques de código que realicen más que un simple 'echo'. Por ejemplo, si se quisiera detectar el uso de Internet Explorer, se podría hacer algo así: Ejemplo usando <link linkend="language.control-structures">estructuras de control</link> y <link linkend="language.functions">funciones</link> '; } ?> ]]> Un ejemplo del resultado de este script sería: ]]> Aquí hemos introducido un par de conceptos nuevos. Tenemos una sentencia if. Si está familiarizado con la sintaxis básica del lenguaje C, debería parecerle lógico. De lo contrario, probablemente debería conseguir un libro que le introduzca a PHP, y leer el primer par de capítulos, o leer la parte del manual titulada Referencia del lenguaje. El segundo concepto que introducimos fue la función llamada a strpos. strpos es una función integrada en PHP que busca un string dentro de otro. En este caso estamos buscando 'MSIE' (también llamado aguja) dentro de $_SERVER['HTTP_USER_AGENT'] (también llamado pajar). Si el string se encuentra dentro del pajar, la función devuelve la posición de la aguja relativa al inicio del pajar. De lo contrario, devuelve &false;. Si no devuelve &false;, la expresión if se evalúa como &true; y se ejecuta el código entre llaves {}. De lo contrario, el código no será ejecutado. Tómese la libertad de crear ejemplos similares, con if, else, y otras funciones como strtoupper y strlen. Cada página del manual relacionada también contiene ejemplos. Si no está seguro de cómo usar estas funciones, es recomendable que lea las páginas del manual sobre Cómo interpretar una definición de función y la sección sobre Funciones de PHP. Podemos dar un paso más y mostrar cómo se puede entrar y salir del modo PHP incluso en medio de un bloque de código de PHP: Mezcla de los modos HTML y PHP

strpos() debe haber devuelto no falso

Está usando Internet Explorer

strpos() debe haber devuelto falso

No está usando Internet Explorer

]]>
Un ejemplo del resultado del script podría ser: strpos() debe haber devuelto no falso

Está usando Internet Explorer

]]>
En vez de usar una sentencia echo de PHP para mostrar algo, salimos del modo PHP y enviamos solamente HTML. Este es un punto muy importante y potente que se ha de observar aquí, y es que la fluidez lógica del script permanece intacta. Solamente uno de los bloques HTML terminará siendo enviado al navegador dependiendo del resultado de strpos. En otras palabras, depende de si el string MSIE fue encontrada o no.
Tratar con formularios Otra de las características más potentes de PHP es la forma de gestionar formularios HTML. El concepto básico que es importante entender es que cualquier elemento de un formulario estará disponible automáticamente en sus scripts de PHP. Por favor, lea la sección del manual sobre Variables desde fuentes externas para obtener más información y ejemplos sobre cómo usar formularios con PHP. Observemos un ejemplo: Un formulario HTML sencillo

Su nombre:

Su edad:

]]>
No hay nada especial en este formulario. Es solamente un formulario HTML sin ninguna clase de etiqueta especial. Cuando el usuario rellena este formulario y oprime el botón de envío, se llama a la página accion.php. En este fichero se podría escribir algo así: Mostrar información de nuestro formulario . Usted tiene años. ]]> Un ejemplo del resultado de este script podría ser: Excepto las partes de htmlspecialchars y de (int), debería ser obvio qué es lo que hace el código. htmlspecialchars garantiza que cualquier carácter que sea especial en html se codifique adecuadamente, de manera que nadie pueda inyectar etiquetas HTML o Javascript en la página. El campo edad, ya que sabemos que es un número, podemos convertirlo a un valor de tipo integer que automáticamente se deshará de cualquier carácter no numérico. También se puede hacer lo mismo con PHP con la extensión filter. Las variables $_POST['nombre'] y $_POST['edad'] son establecidas automáticamente por PHP. Anteriormente hemos usado la superglobal $_SERVER; arriba introdujimos la superglobal $_POST, la cual contiene todos los datos de POST. Observe que el método de nuestro formulario es POST. Si hubiésemos usado el método GET, nuestra información estaría en su lugar en la superglobal $_GET. También se podría usar la superglobal $_REQUEST, si no le preocupa la fuente de los datos solicitados. Contiene toda la información de los datos de GET, POST y COOKIE mezclada. En PHP, también puede tratar con entradas de XForms; aunque probablemente al principio se sienta cómodo con los formularios de HTML, los cuales están ampliamente respaldados. A pesar de que trabajar con XForms no es para principiantes, podrían interesarle. Si es así, en la sección de características hay una pequeña introducción a la manipulación de datos recibidos desde XForms.
Utilizar código antiguo en nuevas versiones de PHP Ahora que PHP ha crecido y se ha convertido en un lenguaje popular, hay muchos más repositorios y bibliotecas que contienen código que puede reutilizar. Los desarrolladores de PHP han intentado preservar la retrocompatibilidad, es decir, si un script fue escrito para una versión antigua, funcionará (idealmente) sin ningún cambio en una versión reciente de PHP. En la práctica, normalmente son necesarios algunos cambios. Dos de los cambios más importantes que afectan el código antiguo son: Los antiguos arrays $HTTP_*_VARS ya no están disponibles a partir de PHP 5.4.0. Los siguientes arrays superglobales fueron introducidos en PHP 4.1.0. Son: $_GET, $_POST, $_COOKIE, $_SERVER, $_FILES, $_ENV, $_REQUEST, y $_SESSION. Las variables externas ya no son registradas en el ámbito global de forma predeterminada. En otras palabras, a partir de PHP 4.2.0, la directiva de PHP register_globals está desactivada (off) por defecto en &php.ini;. El mejor método para acceder a estos valores es por medio de las variables superglobales mencionadas anteriormente. Los scripts, libros y tutoriales antiguos podrían contar con que esta directiva esté activada (on). Si fuera on, por ejemplo, se podría usar $id desde el URL http://www.example.com/foo.php?id=42. Ya esté activada o desactivada, $_GET['id'] está siempre disponible. Para más información relacionada con estos cambios, véase la sección sobre variables predefinidas y los enlaces que incluye.
¿Y ahora qué? Con sus nuevos conocimientos debería ser capaz de entender la mayoría del manual y los diversos scripts de ejemplo disponibles en los archivos de ejemplos. Para ver varias presentaciones que muestran más acerca de lo que puede hacer PHP, véase el Sitio de Material de Conferencias de PHP: &url.php.talks;