Estudio Clases y Funciones de PHP

Índice

  1. Estudio Clases y Funciones de PHP

  2. Clases

2.1 DateTime

2.2 PDO

2.3 PDOStatement

2.4 PDOException

2.5 DOMDocument

  1. Comparación de Clases

  2. Funciones

4.1 isset()

4.2 empty()

4.3 gettype()

4.4 is_string()

4.5 str_replace()

4.6 strtolower()

4.7 number_format()

4.8 constant()

4.9 get_loaded_extensions()

4.10 file_get_contents()

4.11 file_put_contents()

4.12 file_exists()

4.13 require_once

  1. Tabla de Funciones

  2. Tabla de Funciones de Archivos

CLASES

Clase DateTime

La clase DateTime proporciona una forma orientada a objetos para trabajar con fechas y horas.

Permite crear, modificar, formatear, comparar fechas y manejar zonas horarias.

Características principales

Ejemplos

Crear una fecha actual


$fecha = new  DateTime(); //Le asigna a la variable '$fecha' la fecha actual del sistema.

echo  $fecha->format('Y-m-d H:i:s'); //Muestra la fecha con el formato indicado 'año-mes-dia horas-minutos-segundos'

Crear una fecha específica


$fecha = new  DateTime('2025-12-25 10:30'); //Le asigna a la variable '$fecha' la fecha y hora indicada entre ('')

Modificar una fecha


$fecha = new  DateTime(); //Le asigna a la variable '$fecha' la fecha actual del sist ema

$fecha->modify('+1 month'); //Le añade 1 mes a la fecha creada

echo  $fecha->format('Y-m-d'); //La muestra con formato 'año-mes-dia'

Comparar fechas


$f1 = new  DateTime('2024-01-01'); //Le asigna a la variable '$f1' la fecha indicada

$f2 = new  DateTime('2024-02-15'); //Le asigna a la variable '$f2' la fecha indicada

  

$diff = $f1->diff($f2); //Guarda la diferencia entre la $f1 y $f2 en una variable $diff

echo  $diff->days; //Muestra la diferencia guardada anteriormente en dias

Clase PDO (PHP Data Objects)

PDO es una interfaz consistente para conectarse a múltiples bases de datos

(MySQL, PostgreSQL, SQLite, etc.) con una API unificada y segura.

Características principales

Ejemplo de conexión a MySQL

Este es el fichero de configuración de las constantes de la conexión, donde guardamos la ruta, el usuario y la contraseña de la base de datos para que no sean visibles para los desarrolladores. Simplemente comentamos y descomentamos la configuración que vayamos a usar en el momento, ya sea para desarrollo o para explotación.


<?php

/*

DESARROLLO

*/

const RUTA = 'mysql:host=10.199.9.104;dbname=DBAMNDWESProyectoTema4'; //Indica el host en el que se encuentra la base de datos y el nombre de ella

const USUARIO = 'userAMNDWESProyectoTema4'; //Indica el usuario que vamos a utilizar para conectarnos a la base de datos

const PASS = 'paso'; //Indica la contraseña del usuario

/*

EXPLOTACIÓN

*/

/*

const RUTA = 'mysql:host=localhost;dbname=DBAMNDWESProyectoTema4';

const USUARIO = 'userAMNDWESProyectoTema4';

const PASS = 'CD97ertvct$E';

*/

?>

Para usar el fichero de configuración:


require_once  '../config/configPDO.php'; //Incluimos el fichero de configuración de la conexión a la base de datos

try {

$miDB = new  PDO(RUTA,USUARIO,PASS); //Creamos un nuevo objeto PDO con las constantes del fichero de configuración

$miDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Hace que si pasa un error, PDO lance una excepción en vez de fallar en silencio.

echo  "Conectado correctamente"; //Mostramos un mensaje de conexión exitosa

} catch (PDOException  $miException) { //Capturaremos cualquier extepción de PDO para en caso de error mostrar el mensaje de error

echo  "Error: "  .  $miException->getMessage(); //Mostramos el error en caso de que ocurra alguno

}

Clase PDOStatement

Representa una sentencia SQL preparada y ejecutada a través de PDO.

Características principales

Ejemplo: consulta preparada con parámetros


$query = $pdo->prepare("SELECT  *  FROM usuarios WHERE email = :email"); //Prepara una consulta SQL con un parámetro llamado :email

$query->bindValue(':email', 'ejemplo@gmail.com'); // Asigna el valor 'ejemplo@gmail.com' al parámetro :email de la consulta

$query->execute(); //Ejecuta la consulta ya preparada y con el parámetro asignado

  

$usuario = $query->fetch(); //Obtiene la primera fila del resultado de la consulta (como array)

print_r($usuario); //Muestra el contenido del array con los datos del usuario

Ejemplo: inserción segura


$query = $pdo->prepare("

INSERT INTO usuarios (nombre, email)

VALUES (:nombre, :email)

"); //Prepara una consulta SQL para insertar un usuario, usando parámetros :nombre y :email en lugar de valores directos

  

$query->execute([

':nombre' => 'Juan',

':email' => 'juan@example.com'

]); //Ejecuta la consulta y asigna los valores reales a los parámetros :nombre y :email

Clase PDOException

Excepción que se lanza cuando PDO encuentra un error,

siempre que el modo de error esté configurado como PDO::ERRMODE_EXCEPTION.

Características principales

Ejemplo de uso con try/catch


require_once  '../config/configPDO.php'; //Incluimos el fichero de configuración de la conexión a la base de datos

try {

$miDB = new  PDO(RUTA,fdsafe,PASS); //Creamos un nuevo objeto PDO con las constantes del fichero de configuración pero pondremos el nombre de una de ellas mal para que salte una exception de PDOException

$miDB->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); //Hace que si pasa un error, PDO lance una excepción en vez de fallar en silencio.

echo  "Conectado correctamente"; //Mostramos un mensaje de conexión exitosa si todo ha ido bien

} catch (PDOException  $miException) { //Capturaremos cualquier extepción de PDO para en caso de error mostrar el mensaje de error

echo  "Error: "  .  $miException->getMessage(); //Mostramos el error en caso de que ocurra alguno

}

Clase DOMDocument

Permite manipular documentos XML y HTML usando el modelo DOM.

Muy útil para parsing, scraping o generación de XML.

Características principales

Ejemplo: cargar y leer HTML


$html = '<html><body><h1>Hola</h1></body></html>'; //Define una cadena con el contenido de un fichero HTML

  

$dom = new  DOMDocument(); //Crea un nuevo objeto DOMDocument para trabajar con HTML/XML

@$dom->loadHTML($html); //Carga el HTML en el objeto DOM; el @ oculta posibles warnings si el HTML está mal formado

  

$h1 = $dom->getElementsByTagName('h1')->item(0); // Busca todas las etiquetas <h1> y obtiene la primera que haya (posición 0)

echo  $h1->textContent; //Muestra el texto dentro del <h1>, en este caso: "Hola"

Ejemplo: crear un XML dinámicamente


$dom = new  DOMDocument('1.0', 'UTF-8'); // Crea un nuevo documento XML con versión 1.0 y codificación UTF-8

$dom->formatOutput = true; // Indica que la salida debe mostrarse formateada (con saltos y sangrado)

  

$usuarios = $dom->createElement('usuarios'); // Crea un elemento XML llamado <usuarios>

$dom->appendChild($usuarios); // Añade ese elemento como nodo raíz del documento

  

$usuario = $dom->createElement('usuario'); // Crea un elemento <usuario>

$usuario->setAttribute('id', 1); // Añade un atributo id="1" al elemento <usuario>

$usuario->appendChild($dom->createElement('nombre', 'Carlos')); // Crea un nodo <nombre>Carlos</nombre> y lo mete dentro de <usuario>

  

$usuarios->appendChild($usuario); // Añade el nodo <usuario> dentro del nodo raíz <usuarios>

  

echo  $dom->saveXML(); // Genera y muestra el XML completo en formato texto

Salida resultante del XML:


<?xml version="1.0" encoding="UTF-8"?>

<usuarios>

<usuario  id="1">

<nombre>Carlos</nombre>

</usuario>

</usuarios>

Comparación

Nombre Explicación en php.net Propósito Características Principales Ejemplos de uso
DateTime https://www.php.net/manual/es/class.datetime.php Manejo de fechas y horas Crear, modificar, comparar y formatear fechas; manejo de zonas horarias Cálculo de intervalos, timestamps legibles, programación de tareas
PDO https://www.php.net/manual/es/class.pdo.php Conexión y comunicación con motores SQL Consultas preparadas, transacciones, soporte multi-DB, modos de error Conectar a MySQL/PostgreSQL/SQLite, ejecutar queries seguras
PDOStatement https://www.php.net/manual/es/class.pdostatement.php Representa una sentencia SQL preparada prepare, execute, fetch, bind de parámetros SELECT, INSERT, UPDATE, DELETE con parámetros
PDOException https://www.php.net/manual/es/class.pdoexception.php Manejo de errores de PDO Excepciones detalladas sobre conexión o consultas Captura de errores SQL y fallos de conexión
DOMDocument https://www.php.net/manual/es/class.domdocument.php Manipulación de XML y HTML mediante DOM Cargar, modificar, recorrer y guardar documentos; acceso completo al DOM Parsing de HTML, generación de XML, modificación estructural de documentos

FUNCIONES

isset()

Determina si una variable está definida y su valor no es NULL.

Para qué sirve:


if (isset($_REQUEST['submit'])) { //Comprueba si existe el parámetro 'submit' en la petición (GET o POST)

echo  "El botón de envio ha sido pulsado"; //Muestra el mensaje si el botón fue enviado

}

empty()

Comprueba si una variable está vacía, es decir:

“”, 0, “0”, null, false, [], o variable no definida.

Para qué sirve:


if (empty($nombre)) { //Comprueba si la variable $nombre está vacía (vacía, null, '', 0, false o no definida)

echo  "El nombre está vacío."; //Muestra el mensaje si la condición se cumple

}

gettype()

Devuelve el tipo de dato de una variable como cadena:

integer, string, array, boolean, object, etc.

Para qué sirve:


$numero = 5; //Asignamos el valor 5 a la variable $numero

echo  gettype($numero); //Muestra el tipo de dato de $numero, en este caso "integer"

is_string()

Verifica si una variable es del tipo string.

Para qué sirve:


$valor = "Hola mundo"; //Asignamos una cadena de texto a la variable

if (is_string($valor)) { //Comprobamos si $valor es de tipo string

echo  "La variable es una cadena"; //Se ejecuta porque $valor es un string

} else {

echo  "La variable no es una cadena";

}

str_replace()

Reemplaza todas las ocurrencias de una subcadena por otra.

Para qué sirve:


echo  str_replace("buenos días", "buenas noches", "Hola buenos días"); //Busca la cadena 'buenos días' y la reemplaza por 'buenas noches' en la cadena indicada al final

strtolower()

Convierte una cadena a minúsculas.

/*

También existe strtoupper(), hace lo mismo solamente que pasa el texto a mayusculas en vez de a minusculas

*/

Para qué sirve:


echo  strtolower("MAYUSCULA A MINUSCULA"); //Devolvería 'mayuscula a minuscula'

number_format()

Formatea un número con miles y decimales personalizados.

Para qué sirve:


echo  number_format(1234.56, 2, ',', '.'); //Formatea el número 1234.56 con 2 decimales, coma como separador decimal y punto como separador de miles, imprime: 1.234,56

constant()

Devuelve el valor de una constante, cuyo nombre se pasa como cadena.

Para qué sirve:


define("alturaEnCentimetros", 170); //Define una constante llamada alturaEnCentimetros con valor 170

echo  constant("alturaEnCentimetros"); //Devuelve el valor de la constante alturaEnCentimetros, en este caso 170

get_loaded_extensions()

Devuelve un array con todas las extensiones PHP cargadas (PDO, mbstring, curl, etc.)

Para qué sirve:


print_r(get_loaded_extensions()); //Muestra un array con todas las extensiones de PHP que están cargadas en el entorno

file_get contents()

Lee todo el contenido de un archivo y lo devuelve como una cadena.

Para qué sirve:


$departamentos = file_get_contents('departamentos.txt'); //Lee todo el contenido del archivo 'departamentos.txt' y lo guarda en la variable $departamentos

  

echo  $departamentos; // Muestra el contenido del archivo como texto

file_put_contents()

Escribe texto en un archivo.

Por defecto sobrescribe, pero con FILE_APPEND agrega al final.

Para qué sirve:


file_put_contents('log.txt', $error, FILE_APPEND); //Escribe el contenido de la variable $error en el archivo 'log.txt', FILE_APPEND hace que se añada al final sin sobrescribir lo existente

file_exists()

Verifica si un archivo o directorio existe.

Para qué sirve:


if (file_exists('configPDO.php')) { //Comprueba si el archivo 'configPDO.php' existe en el directorio actual

echo  "Existe."; //Muestra "Existe." si el archivo existe

}

require_once

Incluye un archivo solo una vez.

Si no existe, detiene la ejecución (error fatal).

Para qué sirve:


require_once  '../config/configPDO.php'; // Incluye el archivo 'configPDO.php' situado en la carpeta 'config' solo una vez, si ya se incluyó antes no se vuelve a cargar

Funciones Comunes en PHP

Nombre Enlace a php.net Para qué sirve
isset https://www.php.net/manual/es/function.isset.php Verifica si una variable existe y no es NULL.
empty https://www.php.net/manual/es/function.empty.php Comprueba si una variable está vacía o no definida.
gettype https://www.php.net/manual/es/function.gettype.php Devuelve el tipo de dato de una variable.
is_string https://www.php.net/manual/es/function.is-string.php Determina si una variable es una cadena.
str_replace https://www.php.net/manual/es/function.str-replace.php Reemplaza texto dentro de una cadena.
strtolower https://www.php.net/manual/es/function.strtolower.php Convierte una cadena a minúsculas.
number_format https://www.php.net/manual/es/function.number-format.php Formatea números con separadores y decimales.
constant https://www.php.net/manual/es/function.constant.php Obtiene el valor de una constante por su nombre.
get_loaded_extensions https://www.php.net/manual/es/function.get-loaded-extensions.php Lista todas las extensiones de PHP cargadas.

Funciones de Archivos

Nombre Enlace a php.net Para qué sirve
file_get_contents https://www.php.net/manual/es/function.file-get-contents.php Lee el contenido completo de un archivo.
file_put_contents https://www.php.net/manual/es/function.file-put-contents.php Escribe datos en un archivo (o añade con FILE_APPEND).
file_exists https://www.php.net/manual/es/function.file-exists.php Comprueba si un archivo o directorio existe.
require_once https://www.php.net/manual/es/function.require-once.php Incluye un archivo solo una vez; detiene el script si no se encuentra.