Strings y Manipulación de Texto
Los strings son uno de los tipos de datos más utilizados en PHP. En esta lección aprenderás todas las formas de crear, combinar y manipular cadenas de texto.
Formas de definir strings
PHP ofrece cuatro formas de definir strings:
1. Comillas simples
El contenido se toma de forma literal. No
interpreta variables ni secuencias de escape
(excepto \\ y \').
<?php
$nombre = 'Carlos';
// Literal - NO interpreta la variable
echo 'Hola, $nombre'; // Hola, $nombre
// Para incluir comilla simple, escápala
echo 'It\'s working'; // It's working
2. Comillas dobles
Interpreta variables y secuencias de escape como
\n, \t, etc.
<?php
$nombre = 'Carlos';
$edad = 28;
// Interpreta variables
echo "Hola, $nombre\n"; // Hola, Carlos
echo "Tienes $edad años\n"; // Tienes 28 años
// Sintaxis con llaves para claridad
echo "Usuario: {$nombre}\n";
// Útil para acceder a arrays u objetos
$user = ["name" => "Ana"];
echo "Hola, {$user['name']}\n"; // Hola, Ana
Secuencias de escape
| Secuencia | Significado |
|---|---|
\n |
Salto de línea |
\r |
Retorno de carro |
\t |
Tabulación |
\\ |
Barra invertida |
\$ |
Símbolo de dólar |
\" |
Comilla doble |
3. Heredoc
Para strings multilínea que interpretan variables. Útil para HTML o textos largos.
<?php
$nombre = 'Carlos';
$titulo = 'Bienvenido';
$html = <<<HTML
<div class="card">
<h1>{$titulo}</h1>
<p>Hola, {$nombre}. Gracias por visitarnos.</p>
</div>
HTML;
echo $html;
4. Nowdoc
Como Heredoc pero sin interpretar variables. El identificador va entre comillas simples.
<?php
$codigo = <<<'PHP'
<?php
$variable = "valor";
echo $variable;
?>
PHP;
echo $codigo; // Muestra el código tal cual, sin interpretar
Concatenación
Usa el operador . (punto) para unir
strings:
<?php
$nombre = 'Carlos';
$apellido = 'García';
// Concatenar con punto
$nombreCompleto = $nombre . ' ' . $apellido;
echo $nombreCompleto; // Carlos García
// Concatenar y asignar
$mensaje = 'Hola';
$mensaje .= ', mundo'; // Equivale a: $mensaje = $mensaje . ', mundo'
echo $mensaje; // Hola, mundo
Funciones esenciales de strings
Longitud y acceso
<?php
$texto = 'Hola Mundo';
// Longitud del string
echo strlen($texto); // 10
// Acceder a caracteres individuales
echo $texto[0]; // H
echo $texto[5]; // M
// Número de palabras
echo str_word_count($texto); // 2
Mayúsculas y minúsculas
<?php
$texto = 'Hola Mundo';
echo strtoupper($texto); // HOLA MUNDO
echo strtolower($texto); // hola mundo
echo ucfirst('hola'); // Hola (primera letra mayúscula)
echo ucwords('hola mundo'); // Hola Mundo (cada palabra)
// Para UTF-8 (acentos, ñ, etc.)
echo mb_strtoupper('año'); // AÑO
Buscar y reemplazar
<?php
$texto = 'PHP es genial. PHP es potente.';
// Buscar posición (primera ocurrencia)
echo strpos($texto, 'es'); // 4
// Buscar última ocurrencia
echo strrpos($texto, 'es'); // 20
// Verificar si contiene
if (str_contains($texto, 'genial')) { // PHP 8+
echo "Encontrado\n";
}
// Reemplazar
echo str_replace('PHP', 'Laravel', $texto);
// Laravel es genial. Laravel es potente.
// Reemplazar múltiples
$buscar = ['PHP', 'genial'];
$reemplazo = ['Python', 'increíble'];
echo str_replace($buscar, $reemplazo, $texto);
Extraer subcadenas
<?php
$texto = 'Hola Mundo';
// Extraer desde posición
echo substr($texto, 0, 4); // Hola (desde 0, 4 caracteres)
echo substr($texto, 5); // Mundo (desde 5 hasta el final)
echo substr($texto, -5); // Mundo (últimos 5 caracteres)
echo substr($texto, -5, 3); // Mun (3 caracteres desde el final)
// Verificar inicio y final (PHP 8+)
echo str_starts_with($texto, 'Hola'); // true
echo str_ends_with($texto, 'Mundo'); // true
Limpiar espacios
<?php
$texto = ' Hola Mundo ';
echo trim($texto); // "Hola Mundo" (ambos lados)
echo ltrim($texto); // "Hola Mundo " (solo izquierda)
echo rtrim($texto); // " Hola Mundo" (solo derecha)
// Quitar caracteres específicos
$ruta = '/carpeta/archivo/';
echo trim($ruta, "/"); // "carpeta/archivo"
Dividir y unir
<?php
// Dividir string en array
$csv = 'manzana,pera,naranja';
$frutas = explode(",", $csv);
print_r($frutas);
// Array ( [0] => manzana [1] => pera [2] => naranja )
// Unir array en string
$lista = ["PHP", "JavaScript", "Python"];
$texto = implode(", ", $lista);
echo $texto; // PHP, JavaScript, Python
// Alias de implode
$texto = join(" - ", $lista); // PHP - JavaScript - Python
Formateo
<?php
// sprintf - Formatear string
$nombre = "Carlos";
$edad = 28;
$mensaje = sprintf("Hola, %s. Tienes %d años.", $nombre, $edad);
echo $mensaje; // Hola, Carlos. Tienes 28 años.
// printf - Formatear e imprimir directamente
printf("Precio: %.2f €\n", 19.5); // Precio: 19.50 €
// Formateadores comunes:
// %s - string
// %d - entero
// %f - float
// %.2f - float con 2 decimales
// %05d - entero con padding de ceros (5 dígitos)
Si trabajas con caracteres especiales
(acentos, ñ, emojis), usa las funciones
mb_*:
mb_strlen(),
mb_substr(),
mb_strtoupper(), etc.
Trabajan correctamente con UTF-8.
Comparar strings
<?php
$a = "Hola";
$b = "hola";
// Comparación sensible a mayúsculas
echo $a === $b; // false
// Comparación insensible a mayúsculas
echo strcasecmp($a, $b) === 0; // true
// strcmp devuelve:
// 0 si son iguales
// < 0 si $a < $b
// > 0 si $a > $b
echo strcmp("abc", "abd"); // -1
Ejercicios
Ejercicio 1: Formatear nombre completo
Dadas las variables
$nombre = "juan" y
$apellido = "GARCIA", crea una
variable $nombreCompleto con el
formato "Juan Garcia" (primera letra mayuscula,
resto minuscula).
Ver solucion
<?php
declare(strict_types=1);
$nombre = 'juan';
$apellido = 'GARCIA';
$nombreFormateado = ucfirst(strtolower($nombre));
$apellidoFormateado = ucfirst(strtolower($apellido));
$nombreCompleto = $nombreFormateado . ' ' . $apellidoFormateado;
echo $nombreCompleto; // Juan Garcia
Ejercicio 2: Extraer dominio de email
Dado el email
$email = "usuario@ejemplo.com",
extrae solo el dominio (la parte despues de @)
usando funciones de strings.
Ver solucion
<?php
declare(strict_types=1);
$email = 'usuario@ejemplo.com';
$posicionArroba = strpos($email, '@');
$dominio = substr($email, $posicionArroba + 1);
echo $dominio; // ejemplo.com
Ejercicio 3: Procesar lista CSV
Dado el string
$csv = "manzana,pera,naranja,platano", conviertelo en un array y luego vuelve a
unirlo usando " - " como separador.
Ver solucion
<?php
declare(strict_types=1);
$csv = 'manzana,pera,naranja,platano';
$frutas = explode(',', $csv);
$resultado = implode(' - ', $frutas);
echo $resultado; // manzana - pera - naranja - platano
¿Has encontrado un error o tienes una sugerencia para mejorar esta lección?
Escríbenos¿Te está gustando el curso?
Tenemos cursos premium con proyectos reales y soporte personalizado.
Descubrir cursos premium