W3docs

chop()

Aprende sobre la función PHP chop(), usada para eliminar espacios en blanco u otros caracteres del final de una cadena de texto.

La función PHP chop() elimina los espacios en blanco (u otros caracteres especificados) del final (lado derecho) de una string y devuelve el resultado. No modifica el inicio de la string y nunca cambia la variable original — devuelve una nueva string.

Esta página cubre la sintaxis de chop(), qué caracteres elimina por defecto, cómo pasar una máscara de caracteres personalizada y los errores comunes a tener en cuenta.

chop() es un alias de rtrim()

Lo más importante que debes saber: chop() es simplemente un alias de rtrim(). Las dos funciones tienen un comportamiento idéntico — chop es el nombre más antiguo (familiar para los desarrolladores de Perl), mientras que rtrim ("right trim") es el más descriptivo. El código nuevo generalmente prefiere rtrim(), pero seguirás viendo chop() en bases de código existentes.

Si necesitas eliminar caracteres del lado izquierdo, usa ltrim(); para eliminarlos de ambos lados, usa trim().

Sintaxis

chop(string $string, string $characters = " \n\r\t\v\0"): string

La función acepta uno o dos parámetros:

  • $string — la string a recortar.
  • $characters (opcional) — una lista de caracteres a eliminar del final. Si se omite, chop() elimina los caracteres de espacio en blanco predeterminados que se indican a continuación.

Devuelve la string recortada. La entrada se pasa por valor, por lo que $string en sí misma no se modifica.

Caracteres eliminados por defecto

Cuando llamas a chop() con un solo argumento, elimina estos caracteres del final:

CarácterSignificado
" "espacio ordinario
"\t"tabulación
"\n"nueva línea (salto de línea)
"\r"retorno de carro
"\0"byte NUL
"\v"tabulación vertical

Eliminar espacios en blanco al final

El uso más común es limpiar espacios, tabulaciones o saltos de línea al final — por ejemplo, después de leer una línea de un archivo:

php— editable, runs on the server

Añadimos un | para que el límite del recorte sea visible. Salida:

Hello, World!|

Los espacios al final han desaparecido, mientras que todo lo anterior permanece intacto.

Usar una máscara de caracteres

Pasa un segundo argumento para eliminar un conjunto personalizado de caracteres en lugar de espacios en blanco. Cada carácter de la máscara se elimina del final, de forma repetida, hasta que se encuentra un carácter que no está en la máscara:

php— editable, runs on the server

Salida:

Hello, Wor

La máscara "ld!" es un conjunto de caracteres, no una subcadena. Leyendo desde la derecha, !, d, l y luego d están todos en el conjunto y se eliminan; r no está en el conjunto, por lo que el recorte se detiene ahí.

Rangos de caracteres con ..

Dentro de la máscara puedes expresar un rango con dos puntos. Por ejemplo, "0..9" significa "cualquier dígito", por lo que esto elimina todos los números al final:

<?php
echo chop("order100200", "0..9");
?>

Salida:

order

Errores comunes

  • Solo recorta los extremos, no el interior. chop("a b ") devuelve "a b" — los espacios entre a y b se conservan.
  • La máscara es un conjunto de caracteres, no un sufijo literal. chop("Hello, World!", "Hd") devuelve la string sin cambios, porque el último carácter ! no está en el conjunto H/d, por lo que el recorte nunca comienza.
  • No modifica la variable original. Siempre asigna o usa el valor de retorno: $clean = chop($raw);.

Cuándo usarlo

Recurre a chop() / rtrim() siempre que los caracteres al final puedan romper una comparación o la visualización:

  • Eliminar el salto de línea al final de una línea leída con fgets().
  • Limpiar la entrada del usuario antes de almacenarla.
  • Eliminar una barra diagonal al final de una ruta o URL: rtrim($path, "/").

Para reemplazar caracteres en cualquier parte de una string (no solo los extremos), usa str_replace() en su lugar.

Práctica

Práctica
¿Cuál es la función de la función 'chop()' en PHP?
¿Cuál es la función de la función 'chop()' en PHP?
Was this page helpful?