PHP
Tutorial PHP: Cadenas de texto y manipulación
PHP: Aprenda a concatenar y manipular cadenas con ejemplos prácticos y funciones útiles para el desarrollo eficiente de aplicaciones web.
Aprende PHP GRATIS y certifícateConcatenación y manipulación de cadenas
La concatenación de cadenas en PHP se realiza utilizando el operador punto (.
), que permite unir cadenas de texto de manera sencilla. Por ejemplo:
$nombre = "María";
$saludo = "Hola, " . $nombre . "!";
echo $saludo; // Salida: Hola, María!
Para agilizar el proceso, es posible emplear el operador de asignación compuesta .=
, que concatena y asigna al mismo tiempo:
$mensaje = "Bienvenidos";
$mensaje .= " al curso de PHP.";
echo $mensaje; // Salida: Bienvenidos al curso de PHP.
La manipulación de cadenas es fundamental en PHP y cuenta con diversas funciones nativas. La función strtoupper()
convierte una cadena a mayúsculas:
$texto = "php es interesante";
$mayusculas = strtoupper($texto);
echo $mayusculas; // Salida: PHP ES INTERESANTE
De manera inversa, strtolower()
convierte a minúsculas:
$texto = "APRENDIENDO PHP";
$minusculas = strtolower($texto);
echo $minusculas; // Salida: aprendiendo php
Para capitalizar la primera letra de cada palabra, se utiliza ucwords()
:
$frase = "programación orientada a objetos";
$titulo = ucwords($frase);
echo $titulo; // Salida: Programación Orientada A Objetos
La función trim()
elimina espacios en blanco al inicio y al final de una cadena:
$entrada = " datos de usuario ";
$limpio = trim($entrada);
echo $limpio; // Salida: datos de usuario
Si es necesario reemplazar partes de una cadena, str_replace()
es la opción indicada:
$texto = "Los gatos son adorables";
$nuevoTexto = str_replace("gatos", "perros", $texto);
echo $nuevoTexto; // Salida: Los perros son adorables
Para extraer una subcadena, substr()
es muy útil:
$cadena = "Desarrollo Web con PHP";
$subcadena = substr($cadena, 13, 3);
echo $subcadena; // Salida: con
Cuando se requiere dividir una cadena en elementos más pequeños, explode()
convierte una cadena en un array utilizando un delimitador:
$datos = "nombre;apellido;email";
$arrayDatos = explode(";", $datos);
print_r($arrayDatos);
// Salida: Array ( [0] => nombre [1] => apellido [2] => email )
Para realizar el proceso inverso y unir elementos de un array en una cadena, se utiliza implode()
:
$elementos = ["PHP", "JavaScript", "HTML"];
$lista = implode(", ", $elementos);
echo $lista; // Salida: PHP, JavaScript, HTML
La función str_repeat()
permite repetir una cadena un número específico de veces:
$linea = str_repeat("-", 10);
echo $linea; // Salida: ----------
El uso adecuado de estas funciones de concatenación y manipulación es esencial para el procesamiento eficiente de textos en PHP, permitiendo desarrollar aplicaciones más dinámicas y flexibles.
Funciones útiles para cadenas (strlen, strpos, substr, etc.)
PHP ofrece una amplia variedad de funciones nativas para manipular y analizar cadenas de texto de forma eficiente. Conocer estas funciones es esencial para procesar y transformar información en aplicaciones web.
La función strlen()
devuelve la longitud de una cadena, es decir, el número de caracteres que la componen:
$mensaje = "Aprendiendo PHP";
$tamano = strlen($mensaje);
echo $tamano; // Salida: 14
Es importante considerar que strlen()
cuenta cada byte, por lo que en cadenas con caracteres especiales puede no reflejar el número de caracteres esperados. Para manejar cadenas multibyte, es recomendable usar mb_strlen()
.
Para buscar la posición de una subcadena dentro de otra cadena, se utiliza strpos()
. Esta función devuelve la posición numérica donde se encuentra la primera aparición de la subcadena:
$frase = "Programación en PHP";
$posicion = strpos($frase, "PHP");
echo $posicion; // Salida: 15
Si la subcadena no se encuentra, strpos()
devuelve false
. Es crucial utilizar el operador ===
para diferenciar entre una posición cero y false
:
if (strpos($frase, "Pro") === false) {
echo "No se encontró la subcadena.";
} else {
echo "Subcadena encontrada.";
}
// Salida: Subcadena encontrada.
La función substr()
permite extraer una parte de una cadena especificando la posición inicial y, opcionalmente, la longitud:
$texto = "Desarrollo web con PHP";
$parte = substr($texto, 10, 3);
echo $parte; // Salida: web
Si se proporciona un valor negativo, substr()
cuenta desde el final de la cadena:
$final = substr($texto, -3);
echo $final; // Salida: PHP
Para contar cuántas veces aparece una subcadena dentro de una cadena, se usa substr_count()
:
$parrafo = "PHP es un lenguaje de programación. PHP es popular.";
$conteo = substr_count($parrafo, "PHP");
echo $conteo; // Salida: 2
La función strstr()
devuelve la porción de la cadena a partir de la primera aparición de una subcadena, incluyendo dicha subcadena:
$correo = "usuario@dominio.com";
$dominio = strstr($correo, "@");
echo $dominio; // Salida: @dominio.com
Si se desea obtener la parte antes de la subcadena, se puede pasar true
como tercer parámetro:
$usuario = strstr($correo, "@", true);
echo $usuario; // Salida: usuario
Para realizar una comparación de cadenas, strcmp()
compara dos cadenas de manera sensible a mayúsculas. Devuelve 0 si las cadenas son iguales:
$cadena1 = "PHP";
$cadena2 = "php";
$resultado = strcmp($cadena1, $cadena2);
echo $resultado; // Salida: valor diferente de 0
Si se requiere una comparación insensible a mayúsculas, se utiliza strcasecmp()
:
$resultado = strcasecmp($cadena1, $cadena2);
echo $resultado; // Salida: 0
La función strrev()
retorna la cadena invertida, útil en ciertos algoritmos:
$original = "PHP";
$invertida = strrev($original);
echo $invertida; // Salida: PHP
Para encontrar la posición de la última aparición de una subcadena, strrpos()
es la función adecuada:
$texto = "Este texto es un ejemplo de texto.";
$ultimaPosicion = strrpos($texto, "texto");
echo $ultimaPosicion; // Salida: 27
Para contar el número de palabras en una cadena, str_word_count()
proporciona esta funcionalidad:
$oracion = "PHP es un lenguaje poderoso";
$numeroPalabras = str_word_count($oracion);
echo $numeroPalabras; // Salida: 5
La función sprintf()
formatea una cadena de acuerdo a especificadores, permitiendo crear cadenas formateadas:
$numero = 9.876;
$formato = sprintf("El número es %.2f", $numero);
echo $formato; // Salida: El número es 9.88
Para transformar una cadena en un array asociativo, parse_str()
es muy útil, especialmente al procesar consultas o parámetros:
$cadenaParametros = "nombre=Juan&edad=30&pais=España";
parse_str($cadenaParametros, $parametros);
print_r($parametros);
// Salida:
// Array ( [nombre] => Juan [edad] => 30 [pais] => España )
La función number_format()
permite formatear números con separadores de miles y decimales, convirtiéndolos en cadenas legibles:
$cantidad = 1234567.89;
$formateado = number_format($cantidad, 2, ',', '.');
echo $formateado; // Salida: 1.234.567,89
Finalmente, para codificar y decodificar entidades HTML, se utilizan htmlentities()
y html_entity_decode()
, esenciales para manejar contenido en aplicaciones web y prevenir problemas de seguridad:
$html = "<div>Sección segura</div>";
$codificado = htmlentities($html);
echo $codificado; // Salida: <div>Sección segura</div>
$decodificado = html_entity_decode($codificado);
echo $decodificado; // Salida: <div>Sección segura</div>
Conocer y utilizar estas funciones permite manipular cadenas de texto de manera más eficiente y segura, optimizando el desarrollo de aplicaciones en PHP.
Expresiones regulares y patrones
Las expresiones regulares son herramientas potentes para realizar búsquedas y manipulaciones de texto basadas en patrones específicos. En PHP, las expresiones regulares permiten validar, buscar, reemplazar y dividir cadenas de forma eficiente.
PHP ofrece dos tipos de funciones para manejar expresiones regulares: las basadas en POSIX y las basadas en PCRE (Perl Compatible Regular Expressions). Actualmente, se recomienda utilizar las funciones PCRE, ya que son más potentes y flexibles.
Uso de funciones PCRE
Las funciones PCRE en PHP comienzan con el prefijo preg_
. Entre las más utilizadas se encuentran:
preg_match()
preg_match_all()
preg_replace()
preg_split()
preg_match()
La función preg_match()
se utiliza para buscar patrones en una cadena y determina si existe al menos una coincidencia. Retorna 1 si encuentra una coincidencia, 0 en caso contrario.
$patron = "/^A[0-9]+$/";
$cadena = "A12345";
if (preg_match($patron, $cadena)) {
echo "La cadena coincide con el patrón.";
} else {
echo "La cadena no coincide con el patrón.";
}
// Salida: La cadena coincide con el patrón.
En este ejemplo, el patrón ^A[0-9]+$
indica cadenas que comienzan con 'A' seguida de uno o más dígitos y nada más.
preg_match_all()
La función preg_match_all()
busca todas las coincidencias del patrón en la cadena y puede almacenar los resultados en un array.
$patron = "/[a-z]+/";
$texto = "PHP es un lenguaje de scripting ampliamente utilizado.";
preg_match_all($patron, $texto, $coincidencias);
print_r($coincidencias[0]);
/*
Salida:
Array
(
[0] => es
[1] => un
[2] => lenguaje
[3] => de
[4] => scripting
[5] => ampliamente
[6] => utilizado
)
*/
Aquí, el patrón [a-z]+
busca secuencias de letras minúsculas, y preg_match_all()
recopila todas las coincidencias encontradas.
preg_replace()
La función preg_replace()
permite buscar y reemplazar patrones en una cadena.
$patron = "/[0-9]/";
$reemplazo = "*";
$cadena = "Contraseña123";
$nuevaCadena = preg_replace($patron, $reemplazo, $cadena);
echo $nuevaCadena; // Salida: Contraseña***
En este caso, todos los dígitos en la cadena original son reemplazados por asteriscos.
preg_split()
Con preg_split()
, es posible dividir una cadena utilizando un patrón como delimitador.
$patron = "/[\s,]+/";
$datos = "nombre, apellido direccion ciudad";
$arrayDatos = preg_split($patron, $datos);
print_r($arrayDatos);
/*
Salida:
Array
(
[0] => nombre
[1] => apellido
[2] => direccion
[3] => ciudad
)
*/
El patrón [\s,]+
indica uno o más espacios en blanco o comas, funcionando como separadores.
Sintaxis de patrones en PCRE
Los patrones en expresiones regulares se delimitan con caracteres especiales como /
, #
o %
. Es común utilizar /
como delimitador:
$patron = "/expresion/";
Algunos metacaracteres y constructores comunes son:
.
cualquier carácter excepto salto de línea.^
inicio de la cadena.$
fin de la cadena.*
cero o más repeticiones.+
una o más repeticiones.?
cero o una repetición.{n}
exactamente n repeticiones.{n,}
al menos n repeticiones.{n,m}
entre n y m repeticiones.[]
definición de clases de caracteres.|
alternación (OR).()
agrupación y captura.
Por ejemplo, para validar un correo electrónico básico:
$correo = "usuario@dominio.com";
$patron = "/^[\w\-\.]+@([\w\-]+\.)+[a-zA-Z]{2,7}$/";
if (preg_match($patron, $correo)) {
echo "El correo es válido.";
} else {
echo "El correo no es válido.";
}
// Salida: El correo es válido.
En este patrón, se utilizan clases de caracteres y cuantificadores para definir la estructura de un correo electrónico.
Modificadores de patrones
Los patrones pueden incluir modificadores que alteran su comportamiento. Algunos modificadores comunes son:
i
realiza una búsqueda insensible a mayúsculas.m
cambia el comportamiento de^
y$
para trabajar en multilínea.s
el punto.
incluye también los saltos de línea.u
activa el soporte Unicode.
Ejemplo con modificador i
:
$patron = "/php/i";
$texto = "El lenguaje PHP es popular.";
if (preg_match($patron, $texto)) {
echo "Se encontró 'php'.";
} else {
echo "No se encontró 'php'.";
}
// Salida: Se encontró 'php'.
Aquí, aunque en el texto 'PHP' está en mayúsculas, el modificador i
permite que la búsqueda sea insensible a mayúsculas.
Grupos de captura y referencias
Las expresiones regulares permiten capturar grupos de caracteres para usarlos posteriormente. Los paréntesis ()
se utilizan para definir grupos de captura.
$patron = "/(\d{4})-(\d{2})-(\d{2})/";
$fecha = "Fecha: 2024-05-15";
if (preg_match($patron, $fecha, $coincidencias)) {
echo "Año: $coincidencias[1]"; // Salida: Año: 2024
echo " Mes: $coincidencias[2]"; // Salida: Mes: 05
echo " Día: $coincidencias[3]"; // Salida: Día: 15
}
En este ejemplo, se capturan el año, mes y día de una fecha con formato YYYY-MM-DD
.
Es posible utilizar referencias de backtracking en preg_replace()
para reordenar o manipular los grupos capturados.
$patron = "/(\w+)\s(\w+)/";
$texto = "Apellido Nombre";
$nuevoTexto = preg_replace($patron, "$2 $1", $texto);
echo $nuevoTexto; // Salida: Nombre Apellido
Aquí, los grupos capturados se referencian como $1
, $2
, etc., permitiendo reorganizar el texto.
Validación de datos con expresiones regulares
Las expresiones regulares son esenciales para validar entradas de usuario, como números de teléfono, códigos postales o contraseñas.
Ejemplo de validación de contraseña segura:
$contraseña = "Passw0rd!";
$patron = "/^(?=.*[A-Z])(?=.*[a-z])(?=.*\d)(?=.*[\W_]).{8,}$/";
if (preg_match($patron, $contraseña)) {
echo "La contraseña es segura.";
} else {
echo "La contraseña no cumple los requisitos.";
}
// Salida: La contraseña es segura.
El patrón verifica que la contraseña tenga al menos una mayúscula, una minúscula, un dígito, un carácter especial y un mínimo de 8 caracteres.
Manejo de errores
Es importante manejar posibles errores al trabajar con expresiones regulares. Si el patrón es inválido, las funciones preg_
retornarán false
y generarán una advertencia. Se recomienda validar o depurar los patrones antes de su uso en producción.
Utilidades adicionales
Para probar y depurar expresiones regulares, existen herramientas en línea como regex101.com, que permiten escribir patrones y ver su funcionamiento en tiempo real.
Además, PHP ofrece la función preg_replace_callback()
, que permite utilizar funciones de devolución de llamada para realizar reemplazos más complejos.
$texto = "El precio es 50 EUR.";
$nuevoTexto = preg_replace_callback(
"/\d+/",
function ($coincidencias) {
return $coincidencias[0] * 1.2;
},
$texto
);
echo $nuevoTexto; // Salida: El precio es 60 EUR.
En este ejemplo, se incrementa el valor numérico en un 20% utilizando una función anónima como callback.
Con un manejo adecuado de las expresiones regulares y patrones, es posible realizar operaciones avanzadas de manipulación de cadenas en PHP, mejorando la eficiencia y la seguridad de las aplicaciones.
Interpolación de variables en cadenas
La interpolación de variables en cadenas es una característica de PHP que permite incluir variables directamente dentro de cadenas de texto. Esto facilita la construcción de mensajes y la generación de contenido dinámico sin necesidad de concatenar cadenas y variables manualmente.
En PHP, existen dos tipos principales de delimitadores para las cadenas: comillas simples (' '
) y comillas dobles (" "
). La interpolación de variables sólo es posible cuando se utilizan comillas dobles. Las comillas simples tratan el contenido como texto literal.
Por ejemplo, utilizando comillas dobles:
$nombre = "Carlos";
echo "Bienvenido, $nombre!"; // Salida: Bienvenido, Carlos!
En este caso, la variable $nombre
se interpola dentro de la cadena, reemplazándose por su valor. Si se utilizan comillas simples, la variable no se interpolará:
$nombre = "Carlos";
echo 'Bienvenido, $nombre!'; // Salida: Bienvenido, $nombre!
Como se puede observar, con comillas simples, el signo dólar y el nombre de la variable se muestran tal cual, sin interpretarse.
Cuando se desea interpolar variables complejas o evitar ambigüedades, es recomendable utilizar llaves {}
para delimitar la variable dentro de la cadena:
$fruta = "manzana";
echo "Me gusta comer {$fruta}s."; // Salida: Me gusta comer manzanas.
Sin las llaves, PHP podría interpretar erróneamente el nombre de la variable:
$fruta = "manzana";
echo "Me gusta comer $frutas."; // Salida: Me gusta comer .
En este ejemplo, PHP busca una variable llamada $frutas
, que no existe, resultando en una salida vacía. Las llaves aclaran el límite de la variable.
La interpolación también funciona con elementos de arrays y propiedades de objetos. Para arrays asociativos:
$persona = ['nombre' => 'Ana', 'edad' => 28];
echo "Nombre: {$persona['nombre']}"; // Salida: Nombre: Ana
Es importante incluir las comillas simples alrededor de la clave del array y las llaves alrededor de toda la expresión.
Para arrays indexados:
$colores = ['rojo', 'verde', 'azul'];
echo "Color favorito: $colores[1]"; // Salida: Color favorito: verde
Con objetos, se puede interpolar directamente sus propiedades:
class Usuario {
public $nombre;
}
$usuario = new Usuario();
$usuario->nombre = "Luis";
echo "Bienvenido, $usuario->nombre!"; // Salida: Bienvenido, Luis!
Si es necesario evaluar expresiones más complejas, se pueden utilizar llaves, pero es recomendable concatenar para mayor claridad:
$a = 5;
$b = 3;
echo "La suma es " . ($a + $b) . "."; // Salida: La suma es 8.
Aunque PHP permite cierta flexibilidad:
echo "La suma es {$a + $b}."; // Salida: La suma es 8.
Sin embargo, para expresiones complejas, es preferible realizar el cálculo antes y luego interpolar la variable resultante:
$sum = $a + $b;
echo "La suma es $sum."; // Salida: La suma es 8.
Las cadenas con comillas dobles interpretan también ciertos caracteres especiales, o secuencias de escape, como \n
para nueva línea o \t
para tabulación:
echo "Línea 1\nLínea 2";
// Salida:
// Línea 1
// Línea 2
Con comillas simples, estas secuencias no se interpretan:
echo 'Línea 1\nLínea 2'; // Salida: Línea 1\nLínea 2
Si se necesita incluir caracteres especiales sin que sean interpretados, se utiliza la barra invertida \
para escapar:
$precio = 9.99;
echo "El precio es \$$precio."; // Salida: El precio es $9.99.
PHP ofrece también las sintaxis heredoc y nowdoc para cadenas multilínea. En el caso de heredoc, permite la interpolación de variables:
$nombre = "Elena";
$mensaje = <<<EOT
Hola, $nombre.
Bienvenida al sistema.
Gracias.
EOT;
echo $mensaje;
/* Salida:
Hola, Elena.
Bienvenida al sistema.
Gracias.
*/
La sintaxis nowdoc, similar a comillas simples, no interpreta variables ni secuencias de escape:
$mensaje = <<<'EOD'
Esto es un mensaje literal, $nombre.
No se interpretan variables ni \n secuencias.
EOD;
echo $mensaje;
/* Salida:
Esto es un mensaje literal, $nombre.
No se interpretan variables ni \n secuencias.
*/
La interpolación de variables mejora la legibilidad y mantenimiento del código, reduciendo la necesidad de concatenaciones repetitivas. Sin embargo, es importante tener en cuenta:
- Utilizar llaves cuando sea necesario para evitar confusiones en el intérprete de PHP.
- Controlar los datos interpolados para prevenir inyecciones o problemas de seguridad, especialmente si se manejan entradas de usuario.
- En construcciones complejas, considerar la concatenación o asignaciones previas para mantener el código claro.
A continuación, se presentan algunos ejemplos prácticos.
Generación de URLs dinámicas:
$id = 42;
echo "https://misitio.com/articulo.php?id=$id";
// Salida: https://misitio.com/articulo.php?id=42
Envío de correos electrónicos:
$destinatario = "contacto@dominio.com";
$asunto = "Consulta";
$mensaje = "Estimado equipo,\nMe gustaría obtener más información.";
$cabeceras = "From: usuario@correo.com";
mail($destinatario, $asunto, $mensaje, $cabeceras);
En el ejemplo anterior, las variables se utilizan directamente en las funciones, pero podrían interpolarse dentro de cadenas si se construye un mensaje más complejo.
No es posible interpolar el resultado de funciones directamente dentro de cadenas. Por ejemplo:
echo "La fecha es {date('Y-m-d')}."; // No funciona como se espera
Para incluir el resultado de una función, se debe concatenar:
echo "La fecha es " . date('Y-m-d') . "."; // Salida: La fecha es 2024-06-15.
O asignar el resultado a una variable:
$fecha = date('Y-m-d');
echo "La fecha es $fecha."; // Salida: La fecha es 2024-06-15.
Al trabajar con cadenas que incluyen caracteres especiales o provenientes de diferentes codificaciones, es importante asegurarse de que la interpolación no genere errores. Utilizar siempre la codificación adecuada y funciones como htmlspecialchars()
cuando se muestre contenido en HTML:
$usuario = "<script>alert('Hack');</script>";
echo "Usuario: " . htmlspecialchars($usuario, ENT_QUOTES, 'UTF-8');
// Salida: Usuario: <script>alert('Hack');</script>
La interpolación de variables en cadenas es una funcionalidad esencial de PHP que simplifica la construcción de textos dinámicos. Aprovechar esta característica puede mejorar notablemente la eficiencia y legibilidad del código, siempre y cuando se utilice con cuidado y considerando las buenas prácticas de seguridad y mantenimiento.
Todas las lecciones de PHP
Accede a todas las lecciones de PHP y aprende con ejemplos prácticos de código y ejercicios de programación con IDE web sin instalar nada.
Introducción A Php
Introducción Y Entorno
Instalación Y Primer Programa De Php
Introducción Y Entorno
Tipos De Datos, Variables Y Constantes
Sintaxis
Operadores Y Expresiones
Sintaxis
Estructuras De Control
Sintaxis
Funciones Y Llamada De Funciones
Sintaxis
Cadenas De Texto Y Manipulación
Sintaxis
Manejo De Números
Sintaxis
Manejo De Fechas Y Tiempo
Sintaxis
Manejo De Arrays
Sintaxis
Introducción A La Poo En Php
Programación Orientada A Objetos
Clases Y Objetos
Programación Orientada A Objetos
Constructores Y Destructores
Programación Orientada A Objetos
Herencia
Programación Orientada A Objetos
Encapsulación
Programación Orientada A Objetos
Polimorfismo
Programación Orientada A Objetos
Interfaces
Programación Orientada A Objetos
Traits
Programación Orientada A Objetos
Namespaces
Programación Orientada A Objetos
Autoloading De Clases
Programación Orientada A Objetos
Manejo De Errores Y Excepciones
Programación Orientada A Objetos
Manejo De Archivos
Programación Orientada A Objetos
Patrones De Diseño
Programación Orientada A Objetos
Introducción A Los Formularios En Php
Formularios
Procesamiento De Datos De Formularios
Formularios
Manejo De Archivos En Formularios
Formularios
Redirecciones Y Retroalimentación Al Usuario
Formularios
Formularios Dinámicos Y Separación De Lógica
Formularios
Introducción A La Persistencia En Php
Persistencia
Conexión A Bases De Datos
Persistencia
Consultas Y Operaciones Crud
Persistencia
Gestión De Transacciones
Persistencia
Manejo De Errores Y Excepciones En Base De Datos
Persistencia
Patrones De Acceso A Datos
Persistencia
Concepto De Sesiones En Php
Sesiones Y Cookies
Configuración De Sesiones
Sesiones Y Cookies
Cookies
Sesiones Y Cookies
Manejo Avanzado De Sesiones Y Cookies
Sesiones Y Cookies
Principales Vulnerabilidades En Php
Seguridad
Seguridad En Formularios Y Entrada De Datos
Seguridad
Protección Frente A Inyección Sql
Seguridad
Gestión De Contraseñas Y Cifrado
Seguridad
Seguridad En Sesiones Y Cookies
Seguridad
Configuraciones De Php Para Seguridad
Seguridad
Introducción Al Testing En Php
Testing
Phpunit
Testing
Cobertura De Código En Testing
Testing
Test Doubles (Mocks, Stubs, Fakes, Spies)
Testing
Pruebas De Integración Y Funcionales
Testing
En esta lección
Objetivos de aprendizaje de esta lección
- Comprender la concatenación de cadenas usando el operador punto.
- Utilizar el operador de asignación compuesta (.=) para concatenación y asignación simultánea.
- Manipular cadenas con funciones como strtoupper(), strtolower(), trim(), entre otras.
- Reemplazar, dividir y unir cadenas con str_replace(), explode(), implode().
- Utilizar funciones de longitud, búsqueda y extracción, como strlen(), strpos(), substr().
- Aplicar expresiones regulares para validación y manipulación avanzada de cadenas.