
PHP es un poderoso lenguaje de secuencias de comandos Web que sigue creciendo desde su primer lanzamiento. Utilizado actualmente en más de 14 millones de sitios Web de todo el mundo, admite una increíble variedad de tecnologías de Internet. Actualmente, presenta una riqueza de funcionalidad que equilibra potencia y flexibilidad.
La biblia de PHP 5 analiza tanto los elementos básicos de la programación, como las funciones y las matrices, le explica cómo aprovechar todas las opciones avanzadas del lenguaje, como la programación orientada a objetos, el acceso al sistema de archivos, la interactividad con la base de datos y muchas otras opciones nuevas introducidas en PHP 5. Le enseñará a sacar el máximo rendimiento de este poderoso aunque aparentemente simple lenguaje para su beneficio y el de su organización.
Desde el punto de vista organizativo, este libro está pensado para funcionar tanto como referencia como para leerlo en su totalidad. Cada capítulo ha sido diseñado de tal modo que le permita perfeccionar la tecnología o grupo de tecnologías específicas que le interesen en cada momento, sin la necesidad de leer los demás capítulos.



Agradecimientos
Sobre el autor
Colaboradores
Introducción
Organización del libro
Parte I. Trabajar con PHP para el desarrollo Web general
1. Desarrollo básico de PHP
Secuencias de comandos PHP
Sintaxis básica de PHP
Tipos básicos de datos PHP
Manipulación de variables
Estructuras de control
Estructuras de control lógicas
Estructuras de control de repetición
Incrustar estructuras de control
Funciones definidas por el usuario
Variables y funciones dinámicas
Variables dinámicas
Funciones dinámicas
Secuencias de comandos PHP de múltiples archivos
Referencias
Referencias de variables
Referencias utilizadas en funciones
Las cadenas en PHP
Velocidad y eficiencia de expresiones encadenadas
Comparación de cadenas
Comparación de cadenas avanzada
Comparación de frases
Buscar y reemplazar
Reemplazo de cadenas
Formatear cadenas
Alternativas a printf()
Cadenas y localidades
Formatos de valores monetarios
Formatos de valores de fecha y hora
Resumen
2. Matrices
Matrices básicas
Sintaxis de las matrices
Matrices multidimensionales
Trabajar con matrices
Recorrido por las matrices
Retrollamadas de matriz
Aplicación de las matrices
Uso de una matriz como una lista
Uso de matrices como tablas de ordenación
Uso de matrices como tablas de búsqueda
Convertir de cadenas a matrices y viceversa
Más material sobre matrices
3. Expresiones regulares
Fundamentos de las expresiones regulares
Limitaciones de la sintaxis básica
Expresiones regulares POSIX
Expresiones regulares compatibles con Perl
Patrones con nombre
Modificadores PCRE
Unas palabras finales
4. Trabajar con formularios en PHP
Formularios de HTML
Cómo se crean los formularios
Objetos HTML
Campos de texto y contraseña
Botones de opción y casillas de verificación
Carga de archivo
Listas y listas desplegables
Campos de texto de múltiples líneas
Valores de formulario ocultos
Envíos y botones
Trabajar con envíos de formulario en PHP
Recuperar valores de formulario
'Errores' del acceso de datos
Uso de matrices como nombres de objetos
Tratamiento de las cargas de archivos
Resumen
5. Técnicas de formularios avanzadas
Manipulación y conversión de datos
Tratamiento de las comillas mágicas
Conversión y codificación de datos
Codificación y descodificación de datos para URL
Codificación y descodificación de datos binarios
Conversión a entidades HTML
Serialización
Integridad de los datos del formulario
Asegurar los elementos ocultos
La función protect()
La función validate()
Las funciones protect() y validate() en acción
Procesamiento de formularios
Procesamiento y validación básicos de un formulario
Validación de formularios de propósito general
Separar la presentación de la validación
Resumen
6. Datos persistentes con sesiones y cookies
Cookies HTTP
Opciones y restricciones de cookies
Cómo se aplican las cookies
Aplicación de cookies en las secuencias de comandos
Sesiones PHP
Fundamentos básicos del uso de una sesión
Iniciar una sesión
Registro de variables de sesión
Anulación de registro de variables de sesión
Destruir sesiones
Trabajar con variables de sesión
Propagación de la sesión
Sesiones avanzadas
Control de sesiones personalizadas
Personalizar el soporte de sesión
Resumen
7. Uso de plantillas
Las plantillas: qué son y por qué se utilizan
Separar los elementos comunes del código
Un ejemplo de sistema de plantilla (rápido)
El motor de plantilla Smarty
Instalar Smarty
Fundamentos básicos de Smarty: variables y modificadores
Archivos y funciones de configuración
Resumen
Parte II. Desarrollo Web avanzado
8. PEAR
¿Qué es PEAR?
Una biblioteca de código
Un estándar de codificación
Un sistema de distribución y mantenimiento
Clases base de PHP
Administrador de paquetes PEAR
Una comunidad diversa
Obtener e instalar PEAR
En sistemas *NIX
En sistemas Windows
A través de un explorador Web
Uso del Administrador de paquetes PEAR
Listado de paquetes
Búsqueda de paquetes
Instalación y actualización de paquetes
Desinstalación de paquetes
Métodos alternativos de instalación
Uso del sitio Web de PEAR
Explorar la lista de paquetes
Búsqueda de un paquete
Descarga e instalación de un paquete
Uso de los paquetes PEAR en aplicaciones
Configuración de php.ini
Inclusión del paquete
Uso de paquetes no instalados a través de pear
Resumen
Referencia
Listas de correo y grupos de noticias
WWW
Otros
9. XSLT y otras consideraciones XML
Relacionar XML con HTML
Uso de XSLT para describir la salida de HTML con una entrada XML
Hojas de estilo XSL
Fundamentos básicos del formato de archivo XSLT
Instrucciones XSLT utilizadas con más frecuencia
Uso de elementos de instrucción XSLT con patrones XSLT
Transformación de ejemplo de XML a HTML con XSLT
PHP 4 y XSLT con el módulo DOM XML
Transformación de ejemplo con PHP 4 y DOM XML
Funciones y propiedades importantes de DOM XML para usuariosde XSLT
Inclusión de soporte XSLT en PHP 4 a través de DOM XML
PHP 4 y XSLT con el módulo XSLT
Transformación de ejemplo con PHP 4 y XSLT
Funciones y propiedades XSLT importantes
Inclusión de soporte XSLT en PHP 4 a través de XSLT
PHP 5 y XSLT
Transformación de ejemplo con PHP 5
Funciones y propiedades de PHP 5 importantes para usuarios XSLT
Inclusión de soporte XSL en PHP 5
Acceder a datos XML utilizando SimpleXML
Uso de SimpleXML en secuencias de comandos PHP
Notas adicionales sobre SimpleXML en secuencias de comandos PHP
Generación de documentos XML con PHP
Funciones y propiedades para guardar objetos XML como archivos
Resumen
Referencias
10. Depuración y optimización
Depuración de las secuencias de comandos PHP
Fallos relacionados con la sintaxis
Fallos lógicos
Evitar los fallos
Rastreo simple de secuencias de comandos
Uso de declaraciones en PHP
Optimización de las secuencias de comandos PHP
El secreto para buscar optimizaciones: el perfilado
Embotellamientos y soluciones PHP comunes
Expresiones regulares
Optimización de bucle fijo
Optimizaciones de resultados de salida
Copias en caché y PHP
Copias en caché de documentos completos
Copias en caché de llamadas a funciones
Resumen
11. Autenticación de usuarios
Autenticación de usuarios en PHP
¿Por qué?
Uso de la autenticación HTTP con Apache
Uso de la autenticación HTTP
Uso de nombres de usuario y contraseñas estáticas
Uso de nombres y contraseñas de una base de datos
Uso de las sesiones PHP
Uso de nombres de usuario y contraseñas estáticas
Uso de nombres de usuario y contraseñas de una base de datos
Asegurar el código PHP
Register_Globals
Error máximo
No fiarse de nada: Especialmente de los datos de usuario
Imprimir datos de usuario
Trabajar con archivos
Trabajar con bases de datos
Resumen
12. Cifrado de datos
Secreto compartido frente a clave pública
Algoritmos de secreto compartido
Sustitución de frase
Sustitución de caracteres
Un paso más allá
Algoritmos de cifrado más sólidos
Criptografía de clave pública
El algoritmo RSA
Firma frente a salvaguardia
Ataques MITM
Uso de claves públicas en PHP
Flujos SSL
Generar un certificado de clave pública y clave privada
Cifrado y descifrado de datos
Cifrado y envío de mensajes de correo electrónico seguros con S/MIME
Resumen
13. Programación orientada a objetos en PHP
¿Por qué objetos?
Creación de clases básicas
Métodos private, protected y public
Indicaciones de tipo
Clonado
Constructores y destructores
Constantes de clase
Métodos estáticos
Herencia de clase
Clases avanzadas
Clases y métodos abstractos
Interfaces
Clases y métodos finales
Métodos especiales
Métodos de obtención y de establecimiento
Método _call()
Método _toString()
Carga automática de clases
Serialización de objetos
Excepciones
Conocimiento de la pila de llamadas
La clase Exception
Arrojar y capturar excepciones
Iteradores
Resumen
14. Control de errores
El modelo de control de errores de PHP
Tipos de error
Qué hacer con los errores
El controlador de errores predeterminado
Supresión de errores
Personalizar los controladores de errores
Producir errores
Unión de todos los conceptos
Resumen
15. Trabajar con HTML/XHTML utilizando tidy
Introducción
Uso básico de Tidy
Limpieza y reparación de documentos
Identificación de problemas dentro de documentos
Opciones de configuración de Tidy
Opciones tidy en tiempo de ejecución
Lectura de los valores de configuración
Archivos de configuración de Tidy
Uso del analizador sintáctico de Tidy
Cómo se guardan los documentos en Tidy
El nodo de Tidy
Aplicaciones de Tidy
Tidy como búfer de salida
Convertir documentos en CSS
Reducción del uso de ancho de banda
Mejorar el aspecto de los documentos
Extraer URL de un documento
Resumen
16. Escritura de mensajes en PHP
El protocolo MIME
Implantar mensaje de correo electrónico MIME en PHP
Clases MIMEContainer y MIMESubcontainer
Clases MIMEAttachment, MIMEContent y MIMEMessage
Resumen
Parte III. Creación de aplicaciones en PHP
17. Uso de PHP para la creación de secuencias de comandosen consola
Diferencias clave de la interfaz de línea de comandos
Trabajar con la versión CLI de PHP
Argumentos en línea de comandos y códigos return
Herramientas y extensiones de CLI
La extensión Readline
Creación de interfaces de usuario
Resumen
18. SOAP y PHP
¿En qué consisten los Servicios Web?
Transporte con SOAP
Descripción WSDL
Búsqueda en directorios con UDDI
Instalación
Creación de Servicios Web
Uso como consumidor de los Servicios Web
Búsqueda de servicios Web
Resumen
19. Desarrollo de sitios Web de tecnología WAP
¿Qué es WAP?
Requisitos del sistema
La herramienta de desarrollo para móviles Nokia Mobile InternetToolkit
Kit de desarrollo WapIDE de Ericsson
Openwave SDK
Kit Motorola Wireless IDE/SDK
Introducción a WML
Estructura WML
Texto
Enlaces
Gráficos
Formularios en WML
Campos de texto y contraseña
Listas de selección, botones de opción y casillasde verificación
Agrupar elementos de formulario
Procesamiento de datos de formulario
Enviar datos de formulario desde el lado del servidor
Presentación de contenidos WAP
Tipos MIME
Configuración del servidor Web
Ajustar el tipo MIME desde PHP
Detección de cliente
Visualización de formatos gráficos
Ejemplos prácticos
Procesamiento de datos de formulario del ladodel servidor
Sistema de reservas WAP de entradas de cine
Resumen
Parte IV. E/S, llamadas de sistema y PHP
20. Trabajar con el sistema de archivos
Trabajar con archivos en PHP
Leer y escribir archivos de texto
Lectura y escritura de archivos binarios
Trabajar con directorios en PHP
Permisos de archivo
Funcionamiento de los permisos Unix
Trabajar con los permisos desde PHP
Funciones de compatibilidad para acceso a archivos
Funciones lógicas
Manipulación de archivos
Acceso especializado a archivos
Resumen
21. La red E/S
Búsquedas de DNS y DNS inversa
Recuperar registros DNS mediante la dirección IP
Recuperar direcciones IP en función de un nombre de host
Determinación de la información de los registros DNS
Programación de socket
Conceptos básicos de socket
Crear un nuevo socket
Tratamiento de errores de socket
Crear sockets de cliente
Crear sockets de servidor
Trabajar con varios sockets a la vez
Funciones para el asistente de red
Resumen
22. Acceso al sistema operativo subyacente desde PHP
Introducción
Funciones del SO específicas de Unix
Entrada y salida (E/S) directa
Abrir y cerrar conexiones de E/S directas
Leer datos desde la conexión
Escribir datos a la conexión
Ajustar el puntero de archivo de E/S directo
Recuperar información sobre la conexión
Configurar la conexión de E/S directo
Funciones POSIX de PHP
POSIX y el concepto de seguridad en PHP
Cómo saber cuándo algo ha fallado
Funciones POSIX de usuario y de grupo
Cambiar el grupo o el usuario
Funciones de proceso POSIX
Control de procesos Unix
Desdoblamiento de procesos en PHP
Captar señales enviadas a los procesos
Programar señales de alarma
Saltar procesos en PHP
Funciones de sistema independientes de la plataforma
Ejecutar aplicaciones desde PHP
Ejecución básica de aplicaciones externas
Canalizaciones unidireccionales de enlace con comandosexternos
Trabajar en entorno de sistema
Un breve inciso sobre seguridad
Resumen
Parte V. Trabajar con datos en PHP
23. Introducción a las bases de datos
Uso del programa cliente MySQL
Uso básico de MySQL
Fundamentos del RDBMS
Consultas con SQL
Resumen
24. Usar MySQL con PHP
Realizar consultas desde PHP
Conceptos básicos de MySQLi
Conectarse con la base de datos
Seleccionar una base de datos
Realización de consultas básicas
Obtener filas de conjuntos de resultados
Contar filas y columnas
Liberar resultados
Recuperar mensajes de error
Cerrar enlaces a las bases de datos
Ejecutar consultas múltiples
Crear un sistema de seguimiento de visitas
Sentencias preparadas
Sentencias SQL preparadas con parámetros
Valores vinculados al resultado
Transacciones
Gestor de sesiones MySQLi
¿Qué es un gestor de sesiones personalizado?
Definir gestores de sesiones personalizados
El gestor de sesiones MySQLi
Resumen
25. Usar SQLite con PHP
¿Qué hace de SQLite un motor de base de datos único?
Diferencias generales entre SQLite y MySQL
SQLite es un motor sin tipo
Funcionamiento de SQLite con datos de texto y datosnuméricos
Comparar dos columnas de texto
Comparar dos columnas numéricas
Comparar dos columnas de tipos conflictivos
SQLite y los valores NULL
Acceso a las bases de datos desde procesos múltiples
Funciones básicas de SQLite
Abrir y cerrar bases de datos
Consultas
Recuperar resultados
Devolver filas sencuencialmente en forma de matriz
Devolver conjuntos de resultados enteros en forma de matriz
Devolver un valor simple
Contar conjuntos de resultados y filas afectadas
Recuperar nombres de campo y valores de columna
Recuperar el último ID insertado
Tratamiento de errores
Navegar por conjuntos de resultados
Trabajar con funciones definidas por el usuario (UDF) de PHPen SQLite
Llamar funciones PHP en consultas SQL
Coletillas finales
Resumen
26. Funciones dba de PHP
Preparación y ajustes
Crear bases de datos basadas en archivo
Escribir datos
Leer datos
Ejemplo práctico
Conclusión
Parte VI. Resultados gráficos con PHP
27. Trabajar con imágenes
Creación de imágenes básicas con GD
Recuperar información de las imágenes
Uso de funciones de dibujo PHP/GD
Dibujar formas geométricas lineales
Dibujar superficies curvas
Formas e imágenes rellenas
Trabajar con colores y pinceles
Trabajar con las paletas de las imágenes
Comparar colores de una paleta existente
Borrar y/o modificar colores de la paleta
Crear transparencias en las imágenes
Transparencia de colores con el modo de fusión alfa
Dibujar con pinceles
Uso de pinceles para aplicar relleno
Usar fuentes e imprimir cadenas de caracteres
Uso de las fuentes internas de GD
Uso de fuentes TrueType
Uso de Postscript Type1
Manipulación general de imágenes
Copiar una imagen en otra
Duplicar paletas
Otras funciones gráficas
Funciones EXIF
Resumen
28. Generación de documentos imprimibles
Puntualización acerca de los ejemplos de este capítulo
Generar documentos RTF dinámicos
Generar documentos PDF dinámicos
El sistema de coordenadas PDFLib
Uso de los parámetros de configuración de PDFLib
Generar documentos PDF partiendo de cero
Esqueleto de un documento PDF
Los textos en los documentos PDF
Las formas en los documentos PDF
El color en los documentos PDF
Añadir imágenes a documentos PDF
Manipular el sistema de coordenadasde un documento PDF
Definición y uso de patrones
Definición y uso de las plantillas
Ajustar información de PDF Publisher
Recursos relacionados
Parte VII. Apéndices
Apéndice A. Instalación de PHP 5 y MySQL
Instalación de PHP 5
Linux
Windows
Apache
Servidores Web de Microsoft
Mac OS X
Instalación de los módulos MySQL y PHP
Linux
MySQL
Soporte PDF
XML
La extensión DBA
La extensión GD
Cifrado de datos
Windows
MySQL
Soporte PDF
Soporte para cifrado de datos
Instalación de PEAR
Apéndice B. HTTP
¿Qué es HTTP?
Bibliotecas de programación PHP para trabajar con HTTP
Entender el concepto de transacción HTTP
Métodos cliente de HTTP
Qué se obtiene de vuelta en el intercambio: códigos de respuestadel servidor
Las cabeceras de solicitud HTTP
Codificación
Identificación de clientes y servidores
La cabecera referer
Obtener contenido de una fuente HTTP
Tipos de dispositivos
Las cookies
Seguridad y autorización
Recuperación de contenido http desde el lado del cliente
Apéndice C. Migración de aplicaciones de PHP 4 a PHP 5
Configuración
Programación orientada a objetos (OOP)
Nuevo comportamiento de las funciones
Material complementario
Apéndice D. Consejos de programación y otras técnicaspara mejorar el rendimiento
Errores típicos de estilo
Directivas de configuración
PHP es indulgente con los errores
Reinventar la rueda
Es bueno usar variables, pero no abusar
Consejo 1: Ser o no ser variables, ésa es la cuestión
Consejo 2: Nada deber ser críptico
Normas comunes de seguridad
Consecuencias involuntarias
Llamadas de sistema
Evitar ataques a las llamadas de sistema
Cargar archivos de forma segura
Estilo y seguridad: Operaciones de registro
Registrar mensajes de error personalizados
Resumen
Recursos y listas de correo
Sitios Web relevantes
Listas de correo y grupos de noticias
Índice alfabético
Otros clientes que compraron PHP 5, también compraron:
Otros libros de PHP: