Tutorial Principal de PHP8+

Fundamentos

Introducción al lenguaje PHP Empezando a trabajar Ejecución de código PHP Problema con las codificaciones Salida de errores de PHP Código completo para ejecutar PHP Código mejorado para ejecución Resumen de los comandos iniciales de PHP Comentarios en PHP Comentarios en el libro de texto Volcado de variables Funciones en PHP Variables Uso de variables Cambio de valores de variables Operaciones matemáticas con números Operaciones matemáticas con variables Prioridad de las operaciones matemáticas Prioridad igual Paréntesis de agrupación Matices de agrupación Fracciones Números negativos Resto de la división Potenciación Prioridad de la potenciación Cadenas Concatenación de cadenas Espacios en la concatenación de cadenas Longitud de la cadena Problema con el cirílico Etiquetas Atributos de las etiquetas Valores booleanos Valor null Conversión automática de tipos Conversión automática a cadena Matices de la conversión a cadena Conversión a número Conversión a fracción Conversión de fracción a entero Conversión de número a cadena Caracteres de la cadena Dígitos en la cadena Acceso a los dígitos de un número Matices del trabajo con la operación de asignación Operaciones abreviadas Incrementación Tipo prefijo y postfijo Práctica en la búsqueda de errores Práctica en operaciones Práctica en fórmulas

Matrices (Arrays)

Introducción a las matrices Ver el contenido de la matriz Elemento individual de la matriz Matrices asociativas Truco con las claves Orden de los elementos Longitud de la matriz Modificación de elementos Reescritura de elementos de la matriz Incremento de elementos Rellenar matrices Asignación explícita de claves Claves a partir de variables Práctica en la búsqueda de errores

Condiciones

Construcción if-else Operadores mayor y menor Comprobación de igualdad Comprobación de desigualdad Comparación de variables Tipos de datos y construcción if-else Números entre comillas Igualdad por valor y tipo Desigualdad por valor y tipo Matices al comparar tipos de datos Condiciones complejas en if-else AND lógico OR lógico Prioridad de las operaciones de comparación Agrupación de condiciones Inversión de enunciados Construcción if-else y valores booleanos Comparación no estricta de valores lógicos If abreviado Matiz de las operaciones abreviadas Comando isset Supresión de advertencias Comprobación de elementos de array Comando empty Opcionalidad del comando else Opcionalidad de las llaves Problema de la opcionalidad de las llaves Combinaciones if-else Construcción elseif If anidados Construcción switch Opcionalidad de default Construcción match Opcionalidad de break Operador ternario Operador de fusión de null Cadenas de operadores de fusión de null Operaciones lógicas Determinación de la parte de la hora Comprobación de longitud de cadenas y arrays Comprobación de carácter de cadena Comprobación del resto de la división Práctica en búsqueda de errores Práctica if else

Bucles

Introducción Bucle foreach Bucle foreach con claves Bucle while Bucle for Condiciones en bucles Acumulación de suma de números Acumulación de suma de elementos Formación de cadenas en bucle Opcionalidad de llaves Problema de la opcionalidad de llaves Instrucción break Instrucción continue Trabajo con banderas Bucles anidados Bucle for para arrays Relleno de arrays en bucle Modificación de arrays en bucle Consejos para escribir código Práctica de búsqueda de errores Práctica de bucles

Multidimensionalidad

Introducción Arreglo tridimensional Arreglos asociativos Arreglos arbitrarios Iteración de arreglos multidimensionales Iteración de un arreglo tridimensional Trabajo con claves Relleno de arreglos multidimensionales Relleno con números en orden Arreglo de arreglos asociativos Conversión de arreglos multidimensionales

Funciones Matemáticas

Potencias Redondeo Extremos Módulos Operaciones con arrays

Funciones de Cadena

Longitud de cadena Mayúsculas y minúsculas Recorte de cadenas Comprobación de cadenas Búsqueda en cadenas División de cadenas Limpieza de extremos de cadena Impresión de cadena con inserción Formateo de representación de números Inversión de cadena Relleno de cadena Trabajo con etiquetas Códigos de caracteres Conteo de subcadenas Partes de cadenas

Funciones de arrays

Búsqueda en arrays Elementos extremos Segmentación de arrays Empalme de arrays Rango en array Relleno de arrays Combinación de arrays Claves-valores Inversión Reemplazo Eliminación de duplicados Conteo de elementos División en subarrays Ordenación Operaciones de conjuntos

Aleatorio

Número aleatorio Elemento aleatorio de array Barajar arrays Barajar cadenas

Tiempo

Trabajar con timestamp Formateo Análisis de fechas en formato libre Comprobación de corrección Zona horaria Modificación Comparación de cadenas Comparación de fecha sin año Inclusión de fecha en un intervalo Comparación de timestamp

Funciones definidas por el usuario

Introducción Parámetros de función Múltiples parámetros Parámetros variables Parámetros opcionales Sentencia return Llamada secuencial de funciones Detalle sutil de return Ciclo y return Aplicación de return en ciclos Técnica de trabajo con return Banderas en funciones Operadores lógicos en funciones Consejos sobre funciones Práctica de búsqueda de errores Práctica de funciones

Ámbito

Referencias primitivas Referencias de arrays Referencias en foreach Variables internas Variables externas Variables homónimas Variables globales Modificación de parámetros Parámetros por referencia

Recursividad

Recursividad Ejemplo con parámetro Suma de elementos del array Recursividad y arrays multidimensionales Suma de array multidimensional Manipulaciones con elementos

Expresiones Regulares

Introducción Operadores de repetición Paréntesis de agrupación Escapado de caracteres especiales Lista de caracteres especiales Llaves Limitación de la codicia Grupos de caracteres Conjuntos de caracteres Inversión de conjuntos de caracteres Características del cirílico Caracteres especiales dentro de conjuntos Grupos de caracteres dentro de conjuntos Caracteres especiales de exclusión dentro de conjuntos Símbolo de acento circunflejo dentro de conjuntos Características del guión dentro de conjuntos Inicio y fin de línea Fin o inicio de palabra Comando 'o' Delimitadores Escapado de delimitadores Barra invertida Comprobación de cadenas Prueba automática de expresiones regulares Comprobación de toda la cadena Capturas en la búsqueda Búsqueda de todas las coincidencias Todas las coincidencias en capturas Cambio del comportamiento de búsqueda Paréntesis no capturadores Capturas en el reemplazo Capturas en la expresión Capturas con nombre Capturas con nombre dentro de la expresión Número común de capturas Búsqueda anticipada Búsqueda retrasada Reemplazo con callback Modificadores Ignorar mayúsculas y minúsculas en expresiones regulares Comentarios en expresiones regulares Trabajo con Unicode en expresiones regulares Cambio de la codicia en expresiones regulares Escapado de caracteres regulares en expresiones regulares Múltiples modificadores de expresiones regulares Escapado automático de caracteres especiales Filtrado de arrays División de cadenas en arrays

Formación de Cadenas

Inserción de Variables Inserción de Elementos de Array Inserción de Elementos de Arrays Asociativos Bucle e Inserción de Variables Inserción de Elementos de Arrays en Bucle Inserción de Elementos de Arrays Multidimensionales en Bucle Generación de Etiquetas Generación de Etiquetas con Atributos Bucle y Generación de Etiquetas Bucle y Generación de Etiquetas desde Arrays Bucle y Generación de Etiquetas y Atributos Bucle y Generación de Tablas HTML Generación de Tabla HTML con un Solo Bucle Generación de Tabla HTML con Dos Bucles Anidados Inserción de Código PHP en HTML Comando Corto echo Salida de Variable en HTML Salida de Elementos de Array en HTML Condiciones y Ruptura de Código PHP Bloque else en la Ruptura de Código PHP Bloque elseif en la Ruptura de Código PHP Bucles y Ruptura de Código PHP Array en Bucle en la Ruptura de Código PHP

Formularios

Introducción a los formularios Método de envío de formularios Obtención de datos de formularios Obtención de datos de formularios método GET Obtención de datos de formularios método POST Manejo de formularios en un archivo Ocultar el formulario después del envío Conservar los valores del formulario Conservar el valor por defecto del formulario Código abreviado para conservar valores por defecto Elemento textarea Conservar el valor de textarea después del envío Casilla de verificación Matices del uso de casillas de verificación Conservar el valor en la casilla de verificación Botones de radio Conservar el valor en los botones de radio Listas desplegables (select) Atributo value en las listas desplegables Conservar el valor en las listas desplegables Consultas GET Consultas GET mediante enlaces Práctica

Sesiones

Introducción a las sesiones Posibles problemas Uso de sesiones en una sola página Eliminación de sesiones Destrucción de toda la sesión Sesiones y formularios Escritura de arrays en sesiones

Cookies

Introducción a las cookies Problema de configuración de cookies Configuración instantánea de cookies Contador de recarga de página Tiempo de vida de la cookie Eliminación de cookies Eliminación instantánea de cookies

Sistema de archivos

Lectura de archivos Escritura de archivos Combinación de operaciones Rutas relativas Rutas absolutas Ventajas de la ruta absoluta Rutas absolutas al script Renombrado de archivos Movimiento de archivos Copia de archivos Eliminación de archivos Determinación del tamaño de archivos Comprobación de la existencia de archivos Creación de carpetas Eliminación de carpetas Renombrado de carpetas Movimiento de carpetas Lectura del contenido de una carpeta Distinguir carpeta de archivo Analizar el contenido de una carpeta Inserción de archivos División de maquetación en elementos Escritura de la inserción en una variable Inclusión de archivos Inclusión única de archivos Escritura de la inclusión en una variable

Bases de datos

Introducción a las bases de datos PhpMyAdmin Tabla de prueba users Manipulaciones preparatorias Envío de consultas a la base de datos Búsqueda de errores en la base de datos Prueba de funcionalidad Problemas de codificación Código de prueba completo Obtención del resultado Obtención del resultado en forma de array Formación del array en bucle Selección de registros Operaciones lógicas Campos de selección Inserción de registros Inserción de registros con columnas faltantes Actualización de registros Eliminación de registros Ordenación de registros Limitación de cantidad Conteo de cantidad Obtención del conteo Consultas avanzadas

Organización de Bases de Datos

Vinculación de tablas Obtención de datos de tablas vinculadas Cadena de tablas vinculadas Vinculación a través de tabla de enlace Relaciones familiares Múltiples descendientes Doble relación Práctica

Práctica con Bases de Datos

Tabla de prueba users Formato de salida Eliminación de datos Visualización de datos Adición de datos Edición de datos

Trabajo con HTTP

Tutorial de HTTP Método de solicitud HTTP Encabezados de solicitud HTTP Array de encabezados de solicitud HTTP Encabezados de respuesta HTTP Problema con los encabezados de respuesta HTTP Problema con include Entrega de la línea de inicio de la respuesta HTTP Entrega del estado de la respuesta HTTP

Redirecciones

Introducción a las redirecciones Redirección instantánea Solicitudes GET y redirección Autoredirección con adición de parámetros Mensajes flash Array de mensajes flash Guardado de formularios Mensajes de envío exitoso Redirección con validación de formulario

Autenticación

Introducción Autorización Sesiones Cierre de sesión Registro Autorización inmediata tras el registro Añadir id a la sesión Ocultar contraseña Comprobar disponibilidad del login Validación Hash Añadir sal al registro Añadir sal a la autenticación Función password_hash Perfil Cuenta Cambio de contraseña Confirmación de contraseña Eliminar cuenta Derechos Registro con división de derechos Derechos y normalización de la base de datos

Motor del Sitio

Introducción Uso de htaccess Motor basado en archivos Título en el motor basado en archivos Títulos en array Títulos en el contenido Página 404 en el motor basado en archivos Motor basado en base de datos URLs legibles en el motor Enrutamiento simple Enrutamiento con parámetros nombrados Múltiples parámetros en la ruta Práctica
bydeenesfrptru