Publicidad [cerrar]
                 ¿Quieres registrarte?

Manejar strings de tamaño variable en PHP con str_pad

Por: Hernán
8 de Julio del 2010
4478 de clabLevel
Otros artículos de Hernán
1,536 visitas
php

Hace un tiempo me vi en el problema de crear con PHP uno de esos archivos de reporte, en texto, que tienen "n cantidad de caracteres" para cada registro. Ya saben, esos del estilo:

xxxxxx|yyyyy|mmmmm

Ese tipo de reportes o archivos son muy usados por esquemas bancarios, sistemas de reportes, etc. Lo molesto es tener un string de 3 caracteres y que deba ocupar 15, los caracteres en blanco deben ser *. Algo que resulte en:

************xxx

Eso es molesto de hacer, por suerte encontré una función de PHP, muy útil y simple que ya lo hace:

Código :

$str = "xxx";
$char = "*";
echo str_pad($str, 15,$char);
// Produce:   xxx************


Casi con eso, pero además nos permite controlar el reemplazo, en este caso hacia el otro lado:

Código :

$str = "xxx";
$char = "*";
echo str_pad($str, 15,$char,STR_PAD_LEFT);
// Produce:   ************xxx


Tenemos entonces la función:

Código :

str_pad(cadena_texto,cantidad_caracteres,default_blank,default_right)


Finalmente debemos saber que podemos alinear a la izquierda (STR_PAD_LEFT) o ambos lados (STR_PAD_BOTH).

¡Espero les sea de utilidad!

 


También te interesa


Etiquetasphp

Comentarios | Enviar un comentario
corto pero util, lo bueno de php es que siempre tiene una función para lo que necesites, es cosa de estar siempre atento a las referencias
Por: Inyaka
Te felicito mi hermano, sin tanta fanfarronería pero muy útil...
Por: DevCH-blog
wow por eso amo PHP muy util y yo que tanto me quebraba la cabeza y ya estaba harto de tanto y tanta vuelva muy util sabia que debia de existir una funcion pero no sabia como buscarla !:D
Por: Dantelox-blog
Si, es util en muchos casos. Olvidé mencionar, una utilidad interesante, que es cuando calculamos horas y no tenemos "0" adelante porque es 10:01, y el cálculo nos da: 10:1.

Esto se soluciona por muchos con un if, pero con esto solo haces:

Código :

echo str_pad($minutos, 2,"0",STR_PAD_LEFT);


Saludos, Hernán . -
Por: Hernán
Es muy útil y lo he utilizado a veces justo para eso, TXT de alimentación de programas bancarios.

Pero MUY IMPORTANTE, recomiendo la utilización de esto combiando con substr, me explico:

str_pad(substr($cadena, 0, 10), 10,"0");

Es MUCHO más potente porque si la cadena supera los 10 caracteres, el TXT saldrá perfecto.

Si no se utiliza esto, alguna columna podría desbordar generando un GRAVE error.

Un saludo
Por: Enrique Muñoz-blog
genial, para las horas con cero a la izquierda es MUY útil u.u
Por: gersonm

gersonm-blog :

genial, para las horas con cero a la izquierda es MUY útil u.u


¿mas útil que un cero a la izquierda?

XD


si, estoy seguro que tarde o temprano me salvara la vida
Por: Inyaka
Deja un comentario
IMPORTANTE

Recuerda ser respetuoso, no insultes a otras personas, ni uses palabrotas, hay una persona al otro lado de la pantalla.

Habla bien, NO ESCRIBAS EN MAYUSCULA TODO, no escribas como en un SMS, evita cosas como "ke", "x q" y demás abreviaciones.

Aquí funcionan las etiquetas de los foros, puedes usar [b] para negrita, [img] para las imágenes, [url] para los enlaces, etc.

Si tienes preguntas técnicas, envíalas mejor al foro.





Publicidad [cerrar]
[ musica | lanzarote | horoscopos | camaras de cine | juegos ]
horoscopos diseño grafico valencia