¿Qué es y para qué sirve str_pad() en PHP?

En el desarrollo con PHP, a menudo nos encontramos con la necesidad de formatear cadenas para que tengan una longitud específica. Un caso muy común es el famoso "zero fill" o relleno con ceros, donde queremos que un número como 7 se muestre como 007 o un ID 123 se convierta en FACT-000123.

Para resolver esto de una manera elegante y eficiente, PHP nos ofrece la función str_pad(). Esta función nos permite "rellenar" una cadena hasta una longitud determinada con otro carácter o cadena.

Sintaxis Básica de str_pad()

La estructura de la función es muy sencilla:

str_pad(string $string, int $length, string $pad_string = " ", int $pad_type = STR_PAD_RIGHT): string
  • $string: La cadena original que queremos modificar.
  • $length: La longitud final que deseamos que tenga la cadena.
  • $pad_string (opcional): El carácter o cadena que se usará para el relleno. Por defecto es un espacio en blanco.
  • $pad_type (opcional): La dirección del relleno. Por defecto es a la derecha.

Ejemplos Prácticos: De lo Básico a lo Avanzado

1. El Clásico "Zero Fill" (Relleno a la Izquierda)

Este es el uso más popular. Queremos que un número tenga siempre una cantidad fija de dígitos, rellenando con ceros a la izquierda.

<?php
$numero = 45;
$numero_formateado = str_pad($numero, 5, "0", STR_PAD_LEFT);

echo $numero_formateado; // Salida: 00045
?>

Aquí le decimos a PHP: toma el número 45, asegúrate de que la cadena final tenga 5 caracteres, y si no los tiene, rellena con ceros ("0") por la izquierda (STR_PAD_LEFT).

2. Relleno con Caracteres Personalizados

No estás limitado a usar ceros. Puedes usar cualquier carácter para crear separadores o formatos visuales.

<?php
$titulo = "Mi Título";
$titulo_decorado = str_pad($titulo, 20, "=-", STR_PAD_BOTH);

echo $titulo_decorado; // Salida: =-=-Mi Título-=-=-=
?>

En este caso, rellenamos con la cadena "=-" en ambos lados (STR_PAD_BOTH) hasta alcanzar 20 caracteres.


La Ventaja de sus Parámetros

Aquí es donde reside el verdadero poder de str_pad(). Su flexibilidad es su mayor fortaleza.

La ventaja de usar str_pad es que puedes modificar el número de espacios a rellenar con solo cambiar el 2º parámetro, o el carácter de relleno cambiando el 3º parámetro. Además, puedes pasar un 4º parámetro para controlar totalmente la alineación.

Relleno por la Derecha (STR_PAD_RIGHT)

Útil para alinear texto a la izquierda en una columna de ancho fijo.

<?php
$producto = "Laptop";
$linea_producto = str_pad($producto, 20, ".");

echo $linea_producto . " $1200"; // Salida: Laptop.............. $1200
?>

Relleno por la Izquierda (STR_PAD_LEFT)

Perfecto para alinear números o texto a la derecha.

<?php
$precio = "99.99";
$linea_precio = str_pad($precio, 10, " ", STR_PAD_LEFT);

echo $linea_precio; // Salida:     99.99
?>

Relleno por Ambos Lados (STR_PAD_BOTH)

Ideal para centrar texto dentro de un espacio definido.

<?php
$aviso = "¡OFERTA!";
$aviso_centrado = str_pad($aviso, 21, "*", STR_PAD_BOTH);

echo $aviso_centrado; // Salida: *******¡OFERTA!*******
?>

Conclusión

La función str_pad() es una herramienta simple pero increíblemente potente en el arsenal de cualquier desarrollador PHP. Ya sea para generar IDs con formato, alinear texto en reportes o simplemente para darle un toque visual a una salida, dominar str_pad() te ahorrará tiempo y te permitirá escribir un código más limpio y legible.

¡Pruébala en tu próximo proyecto!