¿Aún no tienes una cuenta? Crea una ahora y accede a tus listas favoritas, tu histórico de cuentas y muchas más cosas...
Pedidos y atención al cliente
PARTICULARES: 963 392 051 - FAX: 963 615 480 / LIBRERÍAS: 963 610 048 ext. 1005 - FAX: 963 694 151
1ª Edición / 976 págs. / Cartoné / Castellano / Libro
PHP y MySQL son tecnologías de código abierto que constituyen la base fundamental de la mayoría de los sitios y servidores web. Con este libro, aprenderá a crear aplicaciones web dinámicas con la herramienta de script líder de código abierto y la base de datos, también de código abierto, más aclamada. Con esta biblia aprenderá PHP 6 y MySQL por dentro y por fuera, explorará los pros y los contras de utilizar tecnologías de código abierto, y descubrirá páginas de consejos y técnicas que le ayudarán a extraer el máximo partido a este potente dúo de desarrollo. Agradecimientos Sobre los autores Introducción ¿Qué es PHP? ¿Por qué PHP? Nuevas características PHP 6 Para quién es este libro Este libro no es el manual Cómo está organizado el libro Parte I: Presentar PHP Parte II: Integración de base de datos MySQL Parte III: Más PHP Parte IV: Otras bases de datos Parte V: Conexiones Parte VI: Casos de estudio Parte VII: Apéndices Convenciones Parte I. Presentar PHP 1. ¿Por qué PHP y MySQL? ¿Qué es PHP? ¿Qué es MySQL? Decidir una plataforma de aplicación Web Coste Facilidad de uso Incorporado en HTML Compatibilidad multiplataforma Estabilidad Muchas extensiones Desarrollo rápido de características No propietario Comunidad mundial de usuarios Resumen 2. Programación del lado del servidor. Visión de conjunto HTML estático Tecnologías del lado del cliente Programación del lado del servidor ¿Para qué es buena la programación del lado del servidor? Resumen 3. Empezar a trabajar con PHP Instalar PHP Procedimientos de instalación Instalar PHP en CentOS Instalar PHP en Debian Instalar PHP desde la fuente Microsoft Windows y Apache Otros servidores Web Herramientas de desarrollo ¿Qué tiene que llegar? Su HTML ya es compatible con PHP Escapar de HTML Etiquetas PHP canónicas Hello World Entrar y salir del modo PHP Incluir archivos Resumen 4. Aprender sintaxis y variables PHP PHP es tolerante HTML no es PHP La sintaxis PHP es como la de C PHP no es sensible al espacio en blanco PHP es algunas veces sensible a mayúscula y minúscula Las sentencias son expresiones terminadas por punto y coma Las expresiones son combinaciones de tokens Las expresiones se evalúan Precedencia, asociatividad, y orden de evaluación Expresiones y tipos Expresiones de asignación Razones para expresiones y sentencias Las llaves crean bloques Comentarios Comentarios multilínea al estilo C Comentarios de una línea: # y // Variables Las variables PHP son como las de Perl Declarar variables (o no) Asignar variables Reasignar variables Variables no asignadas Valores predeterminados Comprobar asignación con isset Ámbito de variable Funciones y ámbito de variable Puede cambiar de modo si lo desea Constantes Tipos en PHP: No se preocupe, sea feliz Sin declaraciones de tipo de variable Conversión automática de tipo Tipos asignados por contexto Resumen de tipos Los tipos sencillos Enteros Formatos de lectura Rango Reales Formatos de lectura Booleanos Constantes booleanas Interpretar otros tipos como booleanos Ejemplos NULL Cadenas Cadenas con comilla sencilla Cadenas con comillas dobles Comillas sencillas frente a dobles Interpolación de variable Nuevas líneas en cadenas Límites Salida Echo y print Echo Print Variables y cadenas HTML y saltos de línea Resumen 5. Aprender estructuras de control PHP y funciones Expresiones booleanas Constantes booleanas Operadores lógicos Precedencia de operadores lógicos Operadores lógicos en cortocircuito Operadores de comparación Precedencia de operador Comparación de cadena El operador ternario Ramificación If-else Anexo else Elseif Switch Pasar en bucle Bucles vinculados frente a bucles no vinculados While Do-while For Ejemplos de bucle Un bucle for vinculado Un bucle while no vinculado Break y continue Una nota sobre bucles infinitos Alternar sintaxis de control Terminar ejecución Utilizar funciones Valores de retorno frente a efectos secundarios Documentación de función Encabezados en documentación Encontrar documentación de función Definir sus propias funciones ¿Qué es una función? Sintaxis de definición de función Ejemplo de definición de función Parámetros formales frente a parámetros reales Desajuste de número de argumentos Muy pocos argumentos Demasiados argumentos Funciones y ámbito de variable Global frente a local Variables estáticas Excepciones Ámbito de función Include y require Incluir solamente una vez La ruta include Recursión Resumen 6. Pasar información con PHP HTTP no tiene estado Argumentos GET Un mejor uso para las URL al estilo GET Argumentos POST Formatear variables de formulario Consolidar formularios y manejadores de formulario Tablas PHP superglobal Resumen 7. Aprender gestión de cadenas PHP Cadenas en PHP Interpolación con llaves Caracteres e índices de cadena Operadores de cadena Concatenación y asignación La sintaxis heredoc Funciones de cadena Inspeccionar cadenas Encontrar caracteres y subcadenas Comparación y búsqueda Buscar Selección de subcadena Funciones de limpieza de cadena Sustitución de cadena Funciones de mayúscula y minúscula strtolower() strtoupper() ucfirst() ucwords() Escapar funciones Imprimir y salida Resumen 8. Aprender tablas Los usos de tablas ¿Qué son tablas PHP? Crear tablas Asignación directa La construcción array() Especificar índices utilizando array() Funciones que devuelven tablas Recuperar valores Recuperar por índice La construcción list() Tablas multidimensionales Inspeccionar tablas Eliminar de tablas Iteración Soporte para iteración Utilizar funciones de iteración Nuestro método de iteración favorito: foreach Iterar con current() y next() Empezar de nuevo con reset() Orden inverso con end() y prev() Extraer claves con key() Valores vacíos y la función each() Pasar con array_walk() Resumen 9. Aprender gestión de números PHP Tipos numéricos Operadores matemáticos Operadores aritméticos Operadores aritméticos y tipos Incrementar operadores Operadores de asignación Operadores de comparación Precedencia y paréntesis Funciones matemáticas sencillas Aleatoriedad Iniciar el generador Ejemplo: Crear una selección aleatoria Resumen 10. Problemas PHP Problemas relacionados con la instalación Síntoma: Texto del archivo mostrado en ventana del navegador Síntoma: Los bloques PHP se muestran como texto bajo HTTP o el navegador le pide que guarde el archivo Síntoma: Servidor o host no encontrado/página no se puede mostrar Problemas de renderizado Síntoma: Página totalmente en blanco Síntoma: Código PHP se muestra en el navegador Web No cargar páginas Síntoma: No se puede encontrar página Síntoma: No puede abrir un archivo para inclusión Errores de análisis Síntoma: Mensaje de error de análisis Falta el punto y coma No hay signos de dólar Problemas de modo Comillas sin escapar Cadenas sin terminar Otras causas de error de análisis Includes que faltan Síntoma: Aviso include Variables no vinculadas Síntoma: Variable no se muestra en la cadena de impresión Síntoma: Variable numérica inesperadamente cero Causas de variables no vinculadas Problemas de mayúscula y minúscula Problemas de ámbito Problemas de función Síntoma: Llamada a función no definida my_function() Síntoma: Llamada a función () no definida Síntoma: Llamada a función no definida array() Síntoma: No puede volver a declarar my_function() Síntoma: Número de parámetros erróneo Problemas matemáticos Síntoma: Aviso división entre cero Síntoma: Resultado aritmético inesperado Síntoma: NaN (o NAN) Desconexión por tiempo Resumen Parte II. Integración de bases de datos MySQL 11. Introducción a base de datos y MySQL ¿Qué es una base de datos? ¿Por qué una base de datos? Mantenibilidad y escalabilidad Portabilidad Evitar programación extraña Búsqueda Bases de datos soportadas por PHP Nuestro foco: MySQL Resumen 12. Instalar MySQL Obtener MySQL Instalar MySQL en Linux Instalar MySQL Server en Debian y Ubuntu Instalar MySQL en Microsoft Windows Instalar MySQL en Windows Resumen 13. Aprender SQL Bases de datos relacionales y SQL Estándares SQL Los puntos fuertes de SQL SELECT Seleccionar ciertos registros Uniones Subselecciones INSERT UPDATE DELETE Diseño de base de datos Privilegios y seguridad Establecer permisos de base datos Mantener las contraseñas de base de datos fuera del área Web Aprender a crear copias de seguridad Resumen 14. Aprender administración y diseño de bases de datos Comandos básicos de cliente MySQL Administración de usuario MySQL Desarrollo local Sitio Web independiente Sitio Web de hospedaje compartido Copias de seguridad Replicación Recuperación myisamchk mysqlcheck Resumen 15. Integrar PHP y MySQL Conectarse a MySQL Crear consultas MySQL Ir a buscar conjuntos de datos Obtener datos sobre datos Múltiples conexiones Crear sobre comprobación de error Crear bases de datos MySQL con PHP Tipos de datos MySQL Funciones MySQL Resumen 16. Llevar a cabo consultas de bases de datos Tablas HTML y tablas de bases de datos Mapeado uno a uno Ejemplo: Un visualizador de una sola tabla Las tablas de ejemplo Mejorar el visualizador Mostrar encabezados de columna Comprobación de error Aspectos estéticos Mostrar consultas arbitrarias Mapeados complejos Múltiples consultas frente a impresión compleja Un ejemplo de consulta múltiple Un ejemplo complejo de impresión Crear las tablas de muestra Resumen 17. Integrar formularios Web y bases de datos Formularios HTML Envío básico de formulario a una base de datos Auto-envío Editar datos con un formulario HTML TEXT y TEXTAREA CHECKBOX RADIO SELECT Resumen 18. Mejorar eficiencia de bases de datos Conexiones: Reducir, reutilizar, reciclar Un mal ejemplo: Una conexión por sentencia Múltiples resultados no necesitan múltiples conexiones Conexiones persistentes Indexar y diseño de tabla Indexar ¿Qué es un índice? Desventajas de indexar Claves principales Incluir todo, no dejarse nada Otros tipos de índices UNIQUE Diseño de tabla Hacer que la base de datos funcione para usted Probablemente es más rápido que usted Un mal ejemplo: Pasar en bucle, no restringido Ordenar y agregar Cuando sea posible, utilice MIN o MAX en lugar de ordenar Crear campos de fecha y hora Encontrar la última fila insertada Resumen 19. Problemas MySQL Sin conexión Problemas con privilegios Comillas sin escapar Sentencias SQL rotas Nombres mal escritos Faltan comas Argumentos de cadena sin comillas Variables no vinculadas Muy pocos datos, demasiados datos Funciones específicas SQL mysql_affected_rows() frente a mysql_num_rows() mysql_result() OCI_Fetch() Depurar y comprobación de salud Resumen Parte III. Más PHP 20. Introducción a PHP orientado a objetos ¿Qué es programación orientada a objetos? La idea sencilla El enfoque procedural El enfoque orientado a objetos Elaboración: Objetos como tipos de datos Elaboración: Herencia Elaboración: Encapsulación Elaboración: Constructores y destructores Terminología Constructores PHP básicos para POO Definir clases Acceder a variables de miembro Crear instancias Funciones de constructor Herencia Anular funciones Subclases encadenadas Modificar y asignar objetos Problemas de ámbito Características avanzadas POO Miembros públicos, privados y protegidos Miembros privados Miembros protegidos Interfaces Constantes Clases abstractas Simular funciones de clase Invocar funciones padre Invocar constructores padre Llamadas automáticas a constructores padre Simular sobrecarga de método Serialización Dormir y despertarse Problemas de serialización Funciones de introspección Visión de conjunto de funciones Ejemplo: Genealogía de clase Ejemplo: Hacer coincidir variables y columnas de base de datos Ejemplo: Métodos de comprobación generalizados Ejemplo ampliado: Formularios HTML Problemas y resolución de problemas Síntoma: Variable de miembro no tiene valor en función de miembro Síntoma: Error de análisis, esperando T_VARIABLE ... Estilo POO en PHP Convenciones de nombrado Funciones accesor Diseñar para herencia Resumen 21. Funciones avanzadas de tabla Transformaciones de tablas Recuperar claves y valores Dar la vuelta, invertir y cambiar de sitio Combinar, rellenar, cortar y unir Pilas y colas Traducir entre variables y tablas Ordenar Imprimir funciones para visualizar tablas Resumen 22. Examinar expresiones regulares Tokenizar y analizar funciones ¿Por qué expresiones regulares? Expresiones regulares en PHP Un ejemplo de expresión regular al estilo POSIX Funciones de expresión regular Expresiones regulares compatibles con Perl Ejemplo: Un sencillo capturador de vínculos La expresión regular Utilizar la expresión en una función Aplicar la función Ampliar el código Funciones avanzadas de cadena Funciones HTML Hash utilizando MD5 Cadenas como colecciones de carácter Funciones de semejanza de cadena Resumen 23. Trabajar con el sistema de archivos Entender los permisos de archivo PHP Funciones de lectura y escritura de archivos Abrir archivo HTTP fopen FTP fopen Leer archivo Construir descargas de archivo utilizando fpassthru() Escribir archivos Cerrar archivo Funciones de sistema de archivo y directorio feof file_exists filesize Funciones de red Funciones de syslog Funciones de DNS Funciones de sockets Funciones de fecha y hora Si no conoce ni la fecha ni la hora Si ha determinado la fecha/hora/marca de tiempo Funciones de conversión de calendario Resumen 24. Trabajar con cookies y sesiones ¿Qué es una sesión? Entonces, ¿cuál es el problema? ¿Por qué se debería preocupar? Alternativas propias Dirección IP Variables ocultas Sesiones propias basadas en cookies Cómo funcionan las sesiones en PHP Hacer que PHP sea consciente de su sesión Propagar variables de sesión El enfoque sencillo (utilizando $_SESSION) ¿Dónde se almacenan realmente los datos? Código de sesión de ejemplo Funciones de sesión Problemas de configuración Cookies La función setcookie() Ejemplos Eliminar cookies Leer cookies Peligros de las cookies Enviar algo más primero Interpretación en orden inverso Rechazar cookie Enviar cabeceras HTTP Ejemplo: Redirección Ejemplo: Autenticación HTTP Errores de cabecera Errores y resolución de problemas Resumen 25. Aprender tipos PHP Resumen de tipos Recursos ¿Qué son recursos? Cómo gestionar recursos Comprobación de tipo Asignación y coerción Comportamiento de conversión de tipo Conversiones explícitas Ejemplos de conversión Otras conversiones de tipo de utilidad Desbordamiento de entero Encontrar el entero más grande Resumen 26. Aprender funciones avanzadas PHP Números variables de argumentos Argumentos predeterminados Tablas como sustitutos de múltiples argumentos Múltiples argumentos en PHP 4 y superior Llamada por valor Llamada por referencia Nombres de función como variables Un ejemplo ampliado Resumen 27. Realizar matemáticas con PHP Constantes matemáticas Pruebas en números Conversión de base Exponentes y logaritmos Trigonometría Precisión arbitraria (BC) Un ejemplo de precisión arbitraria Convertir código a precisión arbitraria Resumen 28. Seguridad en PHP Ataques posibles Desfiguración de sitios Acceder al código fuente Leer archivos arbitrarios Ejecutar programas arbitrarios Virus y otras criaturas FYI: Proteger sitios Web Resumen 29. Aprender la configuración PHP Visualizar variables de entorno Comprender la configuración PHP Opciones en tiempo de compilación --with-apache[=DIR] o --with-apache2=[DIR] --with-apxs[=DIR] o --with-apxs2[=DIR] --with-[database][=DIR] --with-mcrypt[=DIR] --with-java[=DIR] --with-xmlrpc --with-dom[=DIR] --enable-bcmath --enable-calendar --with-config-file-path=DIR --enable-url-includes --disable-url-fopen-wrapper Las opciones en tiempo de compilación CGI --with-exec-dir[=DIR] --enable-discard-path --enable-force-cgi-redirect Archivos de configuración Apache Timeout DocumentRoot AddType Action LoadModule AddModule El archivo php.ini short_open_tag = Off disable_functions = [function1, function2, function3 ... functionn] max_execution_time = 30 error_reporting = E_ALL & ~E_NOTICE error_prepend_string = [""] warn_plus_overloading = Off variables_order = EGPCS gpc_order = GPC auto-prepend-file = [path/to/file] auto-append-file = [path/to/file] include_path = [DIR] doc_root = [DIR] upload_tmp_dir = [DIR] session.save-handler = files ignore_user_abort = [On/Off] Mejorar el rendimiento PHP Resumen 30. Gestionar excepciones con PHP Gestión de error en PHP Errores y excepciones La clase Exception El bloque try/catch Lanzar una excepción Definir sus propias subclases Exception Limitaciones de excepciones en PHP Otros métodos de gestión de error Errores PHP nativos Definir un manejador de error Activar un error de usuario Conectarse y depurar Resumen 31. Depurar programas PHP Estrategias generales de resolución de problemas Cambiar una cosa a la vez Intente aislar el problema Simplificar, después crear Comprobar lo obvio Documentar su solución Después de solucionarlo, volver a probar Una colección de errores Errores en tiempo de compilación Errores en tiempo de ejecución Errores lógicos Utilizar logs de servidor Web Apache El formato CLF Códigos de respuesta HTTP Monitorizar los logs Apache con tail IIS Informes de error y guardar en log PHP Informes de error Log de error Elegir sobre qué errores informar o guardar en log Funciones de informe de error Sentencia de impresión de diagnóstico Utilizar var_dump() Utilizar syslog() Guardar log en una ubicación personalizada Utilizar error_log() Resumen 32. Aprender el estilo PHP Los usos del estilo Legibilidad Comentarios PHPDoc Nombres de archivo y variable Largo frente a corto Subrayados frente a mayúscula en primera letra de palabra Reasignar variables Uniformidad de estilo Mantenibilidad Evitar números mágicos Funciones Archivos include Envoltorios de objetos Considerar utilizar control de versión Robustez Falta de disponibilidad de servicio Tipos inesperados de variable Eficiencia y concisión Eficiencia: Sólo el algoritmo importa Consejos de optimización de eficiencia No reinvente la rueda Descubra el cuello de botella Centrarse en las consultas de base de datos Centrarse en el bucle más interno Concisión: Desventajas Concisión raramente implica eficiencia Concisión choca con la legibilidad Consejos de concisión Utilizar valores de retorno y efectos secundarios al mismo tiempo Utilizar operadores de incremento y asignación Reutilizar funciones No hay nada malo con booleanos Utilice expresiones booleanas en cortocircuito ¿Modo HTML o modo PHP? PHP mínimo PHP máximo PHP medio El estilo heredoc Separar código del diseño Funciones Hojas de estilo en cascada en PHP Plantillas y consistencia de página Resumen Parte IV. Otras bases de datos 33. Conectar PHP y PostgreSQL ¿Por qué elegir PostgreSQL? ¿Por qué objeto-relacional de todos modos? ¿Pero es ya una base de datos? Bajar al trabajo real PHP y PostgreSQL La base de datos de dibujos animados Resumen 34. Utilizar PEAR DB con PHP Conceptos Pear DB Nombres de origen de datos (DSN) Conexión Consulta Recuperación de fila Desconexión Un ejemplo completo Funciones PEAR DB Miembros de la clase DB Miembros de la clase DB_Common Miembros de la clase DB_Result Resumen 35. Una visión general de Oracle ¿Cuándo necesita Oracle? Dinero Otros recursos rivales Inmensos conjuntos de datos Muchas escrituras hechas o destrucción de datos Activadores Responsabilidad jurídica Conclusión: Perspectivas de dos años Oracle y la arquitectura Web Miembros de equipo especializados Bases de datos de desarrollo compartidas Cambios de esquema limitados Herramientas (o ausencia de ellas) Replicación y failover Caché de datos Utilizar funciones OCI8 Escapar cadenas Analizar y ejecutar Informe de error Gestión de memoria Solicitar nulls Ir a buscar conjuntos completos de datos Todo en mayúscula Transaccionalidad Procedimientos almacenados y cursores Proyecto: Editor de punto de producto Proyecto: Editor en lotes Resumen 36. Una introducción a SQLite Una introducción a SQLite Utilizar funciones relacionadas con SQLite Crear bases de datos Ejecutar consultas Crear tablas Insertar datos Ir a buscar datos Más sobre SQLite Resumen Parte V. Conexiones 37. Enviar correo electrónico con PHP Enviar correo electrónico con PHP Configuración Windows Configuración Linux La función mail Enviar correo desde un formulario Resumen 38. Integrar PHP y Java PHP para programadores Java Similitudes Sintaxis Operadores Modelo de objeto Gestión de memoria Paquetes y librerías Diferencias Compilado frente a de script Declaración de variable y no declaración de variable Java Server Pages y PHP HTML incorporado Elegir su lenguaje de script Integrar PHP y Java El Java SAPI Instalación y configuración Más información La extensión Java Instalación y configuración Probar El objeto Java Errores y excepciones Errores potenciales Problemas de instalación Es la classpath, tonto Aquí está otra vez el no declarar variables Velocidad El cielo es el límite Resumen 39. Integrar PHP y JavaScript Mostrar como salida JavaScript con PHP Objetos en posiciones encontradas PHP no se preocupa de la salida Dónde utilizar JavaScript PHP como una copia de seguridad para JavaScript JavaScript estático frente a dinámico Formularios generados dinámicamente Pasar datos de vuelta a PHP desde JavaScript Resumen 40. Integrar PHP y XML ¿Qué es XML? Trabajar con XML Documentos y DTD La estructura de una DTD Analizadores de validación y no validación SAX frente a DOM DOM Utilizar DOM XML Funciones DOM SAX Utilizar SAX Opciones SAX Funciones SAX API SimpleXML Utilizar SimpleXML Funciones SimpleXML Una aplicación XML de ejemplo Errores y resolución de problemas Resumen 41. Crear y consumir servicios Web con PHP El final de la programación como lo conocemos La fea verdad sobre el movimiento de datos Simplicidad brutal REST, XML-RPC, SOAP, .NET REST SOAP Problemas actuales con Servidores Web Una gran huella Carga potencialmente pesada Estándares Ocultar y buscar ¿Quién paga y cómo? Proyecto: Un cliente REST Resumen 42. Crear gráficos con PHP Sus opciones Gráficos HTML Crear imágenes utilizando gd ¿Qué es gd? Formatos de imagen y navegadores Instalación Conceptos gd Colores Dibujar coordenadas y comandos Traducción de formato Liberar recursos Funciones Imágenes y HTTP Imágenes a página completa Imágenes incorporadas desde archivos Imágenes incorporadas desde scripts Ejemplo: Imágenes fractales Errores y resolución de problemas Síntoma: Imagen completamente en blanco Síntoma: Cabeceras ya enviadas Síntoma: Imagen rota Resumen Parte VI. Casos de estudio 43. Desarrollar un weblog con PHP ¿Por qué weblogs? El weblog más sencillo Añadir una herramienta de edición HTML Cambios y adiciones Resumen 44. Un juego de preguntas y respuestas Conceptos utilizados en este capítulo El juego Nuestra versión Pantallas de ejemplo Las reglas Empezar a jugar El código Archivos de código index.php game_display_class.php game_text_class.php game_class.php game_parameters_class.php certainty_utils.php question_class.php dbvars.php Crear la base de datos Definiciones de tabla entry_form.php Consideraciones generales de diseño Separación de código y visualización Persistencia de datos Gestión de excepciones Resumen 45. Visualización de datos con diagramas de Venn Diagramas de Venn escalados La tarea Detalle del código Trigonometría necesaria Planificar la visualización Simplificar suposiciones Determinar tamaño y escala Los casos sencillos El caso difícil Visualización Notas sobre círculos Notas sobre centrar texto Visualizar una base de datos Probarlo Extensiones Resumen Parte VII. Apéndices A. PHP para programadores C Semejanzas Sintaxis Operadores Estructuras de control Muchos nombres de función Diferencias Estos signos de dólar Tipos Conversión de tipo Tablas No tipo estructurado Objetos No punteros No prototipos Gestión de memoria Compilar y vincular Permisividad Guía para el libro Un incentivo: No hay nada más que mirar el código B. PHP para hackers Perl Semejanzas Lenguajes de script compilados Sintaxis Variables con signo de dólar No declaración de variables Tipo de las variables Cadenas e interpolación de variable Diferencias PHP se incorpora en HTML No @ o variables % Tablas frente a hashes Especificar argumentos para funciones Ámbito de aplicación de variables en funciones No sistema de módulo como tal Break y continue en lugar de next y last No elsif Más tipos de comentarios Expresiones regulares Consejos variados ¿Qué sucede con use strict "vars"? ¿Dónde está CPAN? Guía para el libro C. PHP para codificadores HTML Las buenas noticias Ya sabe HTML PHP es un primer lenguaje de programación fácil de aprender El desarrollo Web es cada vez más prefabricado Las malas noticias Si la programación fuera así de sencilla, ya sabría Servidores backend pueden añadir complejidad Centrarse en... Leer el código de otros Trabajar en lo que le interesa Pensando en la programación Aprender SQL y otros protocolos Realizar cambios estéticos en aplicaciones PHP prefabricadas Depurar es programar Evite al principio... Estilo PHP máximo Programar grandes aplicaciones desde el principio Considere esto... Leer un libro sobre programación C Estilo PHP mínimo Utilice las herramientas adecuadas para el trabajo D. Recursos PHP El sitio Web PHP Las listas de distribución PHP Registrarse Listas de usuarios y listas de desarrolladores Normal y resumen Etiqueta de las listas de distribución Recuerde, la comunidad realiza todo este trabajo gratuitamente La gente podría enfadarse con su pregunta Proporcionar descripciones detalladas PHP es internacional Existen límites Hágalo usted mismo Probablemente es usted No existen alternativas comerciales Otros sitios Web PHP Motor de script y herramientas Base de conocimientos PHP Artículos y tutoriales Código base PHP Principales proyectos PHP E. PEAR ¿Qué es PEAR? El sistema de paquetes PEAR Una muestra de paquetes PEAR Cómo funciona la base de datos PEAR El gestor de paquetes Instalar el gestor de paquetes PEAR en Linux Actualizar el gestor de paquetes Utilizar el gestor Instalación automática del paquete Eliminación automática del paquete Instalación semiautomática del paquete Utilizar paquetes PEAR en sus scripts PHP Foundation Classes (PFC) PHP Extension Code Library (PECL) El estilo de codificación PEAR Sangrado, espacio en blanco y longitud de línea Formatear estructuras de control Sentencias if Sentencias if/else Sentencias if/elseif Sentencias switch Formatear funciones y llamadas de función Resumen Índice alfabético