W3docs

wordwrap()

La función wordwrap() en PHP ajusta un string a un número de caracteres especificado, insertando saltos de línea en los puntos adecuados.

Introducción

La función wordwrap() en PHP ajusta un string en múltiples líneas para que ninguna línea supere un ancho determinado. Recorre el string e inserta un salto de línea en el último espacio antes de que se alcance el límite, de modo que las palabras permanecen intactas. Esto es útil para formatear salida de texto plano — correos electrónicos, archivos de registro, mensajes de consola, o cualquier lugar donde necesites un ancho de columna fijo y no tengas CSS para hacer el ajuste.

Sintaxis

wordwrap(string $string, int $width = 75, string $break = "\n", bool $cut_long_words = false): string
ParámetroDescripción
$stringEl string de entrada que se va a ajustar.
$widthEl ancho de columna en el que se ajusta. Por defecto es 75.
$breakEl string que se inserta en cada punto de ruptura. Por defecto es un salto de línea "\n".
$cut_long_wordsSi es true, las palabras más largas que $width se dividen. Si es false (por defecto), las palabras largas se dejan intactas y pueden exceder el ancho.

La función devuelve un nuevo string — no modifica el original. Ten en cuenta que wordwrap() ajusta en espacios, no en límites de palabras en general; una secuencia larga de caracteres sin espacios solo se rompe cuando $cut_long_words es true.

Ejemplo básico

Ajustar una oración a 20 caracteres:

php— editable, runs on the server

Salida:

This is a long piece
of text that needs
to be wrapped.

Ninguna línea supera los 20 caracteres. Cada ruptura reemplaza el espacio en el último límite de palabra que cabe dentro del límite, por lo que las palabras nunca se dividen.

Ajuste para HTML con un salto personalizado

El argumento $break puede ser cualquier string, no solo un salto de línea. Para ajustar texto dentro de HTML, utiliza una etiqueta <br /> (combinada con \n para que el código fuente sea legible):

<?php

$text = "The quick brown fox jumped over the lazy dog.";
echo wordwrap($text, 15, "<br />\n");

Salida:

The quick brown<br />
fox jumped over<br />
the lazy dog.

Si tu objetivo es simplemente convertir los saltos de línea existentes en etiquetas <br>, usa nl2br() en su lugar — wordwrap() es para crear los saltos de línea, y nl2br() es para convertirlos.

Cortar palabras largas

Por defecto, una palabra más larga que $width se deja completa y desborda la línea. Pasa true como cuarto argumento para forzar a la función a romper dentro de las palabras largas:

<?php

$word = "Supercalifragilisticexpialidocious";

echo "Default (no cut):\n";
echo wordwrap($word, 10, "\n"), "\n\n";

echo "With cut:\n";
echo wordwrap($word, 10, "\n", true);

Salida:

Default (no cut):
Supercalifragilisticexpialidocious

With cut:
Supercalif
ragilistic
expialidoc
ious

Usa la opción de corte para contenido que debe respetar un límite de columna estricto — por ejemplo, salida de terminal de ancho fijo o URLs que de otro modo sobrepasarían el margen.

Errores comunes

  • Los saltos de línea existentes no se normalizan. wordwrap() cuenta los caracteres entre puntos de ruptura; no redistribuye el texto que ya contiene sus propios saltos de línea. Limpia la entrada primero si es necesario.
  • El ancho se mide en bytes, no en caracteres. Como la mayoría de las funciones de string clásicas de PHP, wordwrap() está basada en bytes. Los caracteres multibyte (UTF-8) pueden por tanto contarse incorrectamente e incluso dividirse a la mitad cuando $cut_long_words es true. Para un ajuste seguro con multibyte, usa una librería dedicada como mb_wordwrap() de symfony/polyfill o ajusta en límites de grafemas tú mismo.
  • El string de ruptura no cuenta para nada. El ancho solo mide el texto original, por lo que un $break largo (como "<br />\n") no acortará tus líneas.

Funciones relacionadas

  • nl2br() — insertar saltos de línea HTML antes de los saltos de línea existentes.
  • chunk-split() — dividir un string en fragmentos de igual longitud sin importar los límites de palabras.
  • str-split() — dividir un string en un array de piezas de longitud fija.
  • substr() — extraer una porción de un string.
  • explode() — dividir un string en un array usando un delimitador.

Práctica

Práctica
¿Qué hace la función wordwrap() de PHP?
¿Qué hace la función wordwrap() de PHP?
Was this page helpful?