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 a true, 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 es null, 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).

Entradas relacionadas: