Dominando las Funciones de Cadenas en PHP: Referencia Esencial y Usos
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en español con un tamaño de 10,69 KB
Explorando las Funciones de Manipulación de Cadenas en PHP
Búsqueda y Extracción Básica
strlen(string $cadena)
Devuelve la longitud de la cadena $cadena
.
strstr(string $cadena_principal, string $subcadena_a_buscar, bool $antes_de_subcadena = false)
Busca la primera aparición de $subcadena_a_buscar
dentro de $cadena_principal
.
- Si se encuentra, devuelve la parte de
$cadena_principal
desde esa aparición hasta el final. - Si
$antes_de_subcadena
se establece atrue
, devuelve la parte de$cadena_principal
desde el inicio hasta la primera aparición de$subcadena_a_buscar
(sin incluir$subcadena_a_buscar
).
Esta función es sensible a mayúsculas y minúsculas (case sensitive). Si no se encuentra la subcadena, devuelve false
.
Nota: strchr()
es un alias de esta función y se comporta de la misma manera. Si bien el texto original sugería un uso específico de strchr()
para buscar caracteres individuales, ambas funciones (strstr
y strchr
) buscan la subcadena proporcionada. Para buscar un carácter específico, simplemente se pasa ese carácter como la subcadena.
stristr(string $cadena_principal, string $subcadena_a_buscar, bool $antes_de_subcadena = false)
Funciona igual que strstr()
, pero la búsqueda es insensible a mayúsculas y minúsculas (case insensitive).
strpos(string $cadena_principal, string $subcadena_a_buscar, int $desplazamiento_inicio = 0)
Encuentra la posición numérica (índice basado en 0) de la primera aparición de $subcadena_a_buscar
en $cadena_principal
. El parámetro opcional $desplazamiento_inicio
permite especificar desde qué posición de $cadena_principal
comenzar la búsqueda. Devuelve la posición como un entero si se encuentra, o false
si no.
strrpos(string $cadena_principal, string $subcadena_a_buscar, int $desplazamiento_inicio = 0)
Encuentra la posición numérica (índice basado en 0) de la última aparición de la subcadena $subcadena_a_buscar
en $cadena_principal
.
El parámetro opcional $desplazamiento_inicio
permite especificar desde qué posición comenzar la búsqueda. Si es positivo, la búsqueda se realiza en la porción de la cadena que comienza en esa posición. Si es negativo, la búsqueda comienza esa cantidad de caracteres desde el final de la cadena, buscando hacia atrás.
Devuelve la posición como un entero si se encuentra, o false
si no.
Análisis de Contenido de Cadenas
strspn(string $cadena, string $mascara_permitida, int $inicio = 0, ?int $longitud_maxima_busqueda = null)
Calcula la longitud del segmento inicial de $cadena
que consiste completamente de caracteres contenidos en $mascara_permitida
. Opcionalmente, se puede especificar una posición de $inicio
y una $longitud_maxima_busqueda
(longitud del segmento de $cadena
a examinar).
strcspn(string $cadena, string $mascara_rechazada, int $inicio = 0, ?int $longitud_maxima_busqueda = null)
Calcula la longitud del segmento inicial de $cadena
que consiste completamente de caracteres NO contenidos en $mascara_rechazada
. Opcionalmente, se puede especificar una posición de $inicio
y una $longitud_maxima_busqueda
(longitud del segmento de $cadena
a examinar).
substr_count(string $cadena_principal, string $subcadena_a_contar, int $desplazamiento_inicio = 0, ?int $longitud_maxima_busqueda = null)
Cuenta el número de veces que $subcadena_a_contar
aparece en $cadena_principal
. Opcionalmente, se puede especificar un $desplazamiento_inicio
desde donde comenzar a contar y una $longitud_maxima_busqueda
para limitar la porción de la cadena donde se busca.
Comparación de Cadenas
strcmp(string $cadena1, string $cadena2)
Compara $cadena1
y $cadena2
de forma binaria (sensible a mayúsculas y minúsculas). Devuelve:
- Un valor menor que 0 si
$cadena1
es menor que$cadena2
. - Un valor mayor que 0 si
$cadena1
es mayor que$cadena2
. - 0 si son iguales.
strcasecmp(string $cadena1, string $cadena2)
Similar a strcmp()
, pero la comparación es insensible a mayúsculas y minúsculas.
strncmp(string $cadena1, string $cadena2, int $numero_caracteres)
Compara los primeros $numero_caracteres
de $cadena1
y $cadena2
. La comparación es sensible a mayúsculas y minúsculas.
strnatcmp(string $cadena1, string $cadena2)
Compara dos cadenas utilizando un algoritmo de "orden natural", que resulta más intuitivo para secuencias alfanuméricas (por ejemplo, "img12.png" se considera mayor que "img2.png"). Es sensible a mayúsculas y minúsculas.
strnatcasecmp(string $cadena1, string $cadena2)
Similar a strnatcmp()
, pero la comparación de "orden natural" es insensible a mayúsculas y minúsculas.
Modificación y Reemplazo en Cadenas
substr(string $cadena, int $inicio, ?int $longitud = null)
Extrae una porción de $cadena
. La extracción comienza en la posición $inicio
(índice 0).
- Si
$longitud
es positivo, se extraen hasta$longitud
caracteres. - Si
$longitud
es negativo, indica el número de caracteres a omitir desde el final de la cadena. - Si
$longitud
se omite o esnull
, se extrae hasta el final de la cadena. - Si
$inicio
es negativo, la extracción comienza esa cantidad de caracteres desde el final de la cadena.
substr_replace(string|array $cadena_original, string|array $cadena_reemplazo, int|array $inicio, int|array|null $longitud = null)
Reemplaza una parte de $cadena_original
con $cadena_reemplazo
. La porción a reemplazar se define por $inicio
y, opcionalmente, $longitud
(que puede ser la longitud de la subcadena a reemplazar o, si es 0, indica una inserción). Esta función puede operar con arrays para múltiples operaciones.
str_replace(string|array $buscar, string|array $reemplazar_con, string|array $cadena_sujeto, int &$contador_reemplazos = null)
Reemplaza todas las apariciones de $buscar
con $reemplazar_con
en $cadena_sujeto
. Puede manejar arrays para múltiples búsquedas y reemplazos simultáneos. El parámetro opcional $contador_reemplazos
(pasado por referencia) se actualiza con el número de reemplazos realizados.
strtr(string $cadena, string $caracteres_a_reemplazar, string $caracteres_de_reemplazo)
strtr(string $cadena, array $pares_de_reemplazo)
Traduce caracteres o subcadenas específicas dentro de $cadena
.
- Modo de dos cadenas: Si se proporcionan
$caracteres_a_reemplazar
y$caracteres_de_reemplazo
, cada carácter en la primera cadena se reemplaza por el carácter correspondiente en la misma posición de la segunda. Si$caracteres_a_reemplazar
y$caracteres_de_reemplazo
tienen longitudes diferentes, los caracteres extra en la cadena más larga se ignoran. - Modo array: Si se proporciona un array
$pares_de_reemplazo
, las claves del array (subcadenas a buscar) se reemplazan por sus valores correspondientes (subcadenas de reemplazo). Las subcadenas más largas se intentan reemplazar primero.
Limpieza y Formato de Cadenas
trim(string $cadena, string $caracteres_a_eliminar = " \t\n\r\0\x0B")
Elimina los caracteres especificados en $caracteres_a_eliminar
(por defecto, espacios en blanco, tabuladores, saltos de línea, carácter nulo, tabulador vertical) del principio y del final de $cadena
.
ltrim(string $cadena, string $caracteres_a_eliminar = " \t\n\r\0\x0B")
Elimina los caracteres especificados en $caracteres_a_eliminar
del principio (lado izquierdo) de $cadena
.
rtrim(string $cadena, string $caracteres_a_eliminar = " \t\n\r\0\x0B")
Elimina los caracteres especificados en $caracteres_a_eliminar
del final (lado derecho) de $cadena
. Alias: chop()
.
str_pad(string $cadena_entrada, int $longitud_deseada, string $cadena_relleno = " ", int $tipo_relleno = STR_PAD_RIGHT)
Rellena $cadena_entrada
hasta alcanzar la $longitud_deseada
utilizando $cadena_relleno
. El $tipo_relleno
determina cómo se aplica el relleno:
STR_PAD_RIGHT
: Rellena por la derecha (comportamiento por defecto).STR_PAD_LEFT
: Rellena por la izquierda.STR_PAD_BOTH
: Rellena por ambos lados para centrar la cadena original. Si el número de caracteres a añadir no es par, el lado derecho obtiene el relleno extra.
Conversión de Mayúsculas y Minúsculas
strtolower(string $cadena)
Convierte todos los caracteres alfabéticos de $cadena
a minúsculas.
strtoupper(string $cadena)
Convierte todos los caracteres alfabéticos de $cadena
a mayúsculas.
ucfirst(string $cadena)
Convierte a mayúscula el primer carácter de $cadena
, si este es alfabético.
ucwords(string $cadena, string $delimitadores = " \t\r\n\f\v")
Convierte a mayúscula el primer carácter de cada palabra en $cadena
. Las palabras se consideran separadas por los caracteres especificados en $delimitadores
(por defecto, espacio, tabulador, retorno de carro, nueva línea, avance de página y tabulador vertical).