Introducción
Descripción
PHP, acrónimo de Hypertext Pre-Processor, es un lenguaje script u orientado a documento, como pueden ser los lenguajes de macros que tienen muchos procesadores de texto.
PHP se ejecuta en el lado del servidor, inserto en páginas html, multiplataforma e independiente del navegador.
Al ser un lenguaje de script, se programa mediante simples sentencias o frases (no compiladas), que son interpretadas por el motor PHP instalado en el servidor, devolviendo al visitante de la página el texto resultante. Esto quiere decir que en el código fuente de la página final sólo se ve html, nada de php. Es multiplataforma, en el sentido de que PHP puede ejecutarse en cualquier entorno, y es independiente del navegador, en el sentido de que el codigo php se ejecuta en el servidor, devolviendo al navegador sólo texto.
Características
En PHP se combinan muchas características que justifican el masivo incremento de servidores PHP en los últimos años, entre otras:
- Software de libre distribución
- Se ha convertido en un complemento muy apropiado para el tándem Linux-Apache en el desarrollo de sitios Web
- Muy sencillo de usar por principiantes, muy potente para profesionales
Funcionalidad
- No sólo es un lenguaje de script, sino que puede ser usado como lenguaje interpretado de forma que los programas se pueden ejecutar desde la línea de comandos
- Como lenguaje de script, además de las funciones tradicionales para la web, como procesamiento de formularios, manipulación de cookies, generación de páginas de contenido dinámico, etc., proporciona las siguientes características:
- Soporte para múltiples sistemas operativos: Unix y variantes, Microsoft Windows, Mac OS X, RISC OS, IBM OS/390, AS/400
- Soporte para múltiples servidores web: Apache, Microsoft Internet Information Server, Personal Web Server, Netscape e iPlanet, OmniHTTPd, Caudium, Xitami, etc.
- Soporte para ODBC y extensiones DBX
- Soporte para comunicarse con otros servicios usando protocolos tales como LDAP, IMAP, SNMP, NNTP, POP3, HTTP, etc.
- Generación de resultados en múltiples formatos como XHTML, XML, ficheros de imágenes, ficheros PDF y películas Flash
- Manejo de expresiones regulares POSIX Extended o Perl
- Funciones de comercio electrónico, como Cybercash, Verisign Payflow Pro y CCVS para las pasarelas de pago
- Funciones para motores de búsqueda, para pasarelas de IRC, utilidades de compresión, conversión de calendarios, traducción, etc.
Funcionalidad de PHP 5.0
El motor de PHP 5.0, el Zend 2, ha sido reescrito por completo y se le ha dotado de las siguientes nuevas funciones:
- Programación orientada a objetos
- Gestión de excepciones
- Soporta MySQLi (también soportado por PHP 4.1.2 y superiores), una ampliación de MySQL que incluye una interfaz basada en objetos
Modo de funcionamiento
El intérprete PHP puede ser ejecutado por el servidor Web de dos modos distintos: como módulo del propio servidor (interfaz SAPI, Server Application Programming Interface) o como programa externo a éste (modo CGI, Common Gateway Interface).
Ejecutar un programa CGI tiene un bajo rendimiento pues el servidor Web tiene que llamar al sistema operativo para que realice las tareas básicas de reserva, carga y liberación de memoria y gestión de tareas. Además la tarea debe hacerse cada vez que un cliente pida la ejecución de un programa. Además la versión CGI de PHP tiene además innumerables problemas de seguridad asociados. Sin embargo un SAPI permite acceder directamente a las funciones internas del servidor, pudiendo añadir nueva funcionalidad al servidor Web, tales como acceso a base de datos, autenticación de usuarios, cacheo de páginas, etc. Todo se ejecuta en el espacio de memoria propio del servidor y no se crea un proceso nuevo cada vez que un cliente pida la ejecución de un programa.
Configuración
El fichero de configuración de PHP, php.ini permite especificar la configuración de PHP, con la que podemos controlar muchos aspectos de su funcionamiento. Algunos ejemplos de configuración que puede especificarse son los límites de tiempo y memoria de ejecución de un script, dónde mostrar los errores (pantalla o fichero y qué fichero), la ruta por defecto, etc.