Bi0[x]iD's WaY oF LiFe

Un blog a 60 pulsaciones por minuto


Hacer un doble trim en una línea

Hay un truco muy sencillo de «trim» que queremos compartir. Un trim, en programación, es una función de php que ajusta (redimensiona) un texto. Su uso es bastante sencillo. Sólo tenemos que pasarle como variable el texto que queremos recortar, y qué es lo que queremos que se recorte.

Si tuviéramos este texto y usáramos la función trim con él de esta forma:

$texto = «lo que quiero recortar»;
trim ($texto,»recortar»);

Tendríamos como respuesta «lo que quiero».

Pero si quisiéramos recortar dos palabras (es decir, encadenar dos trim) la cosa no funcionaría. ¿Cómo resolverlo?

Si seguimos el razonamiento anterior, la siguiente cadena debería darnos como resultado «lo quiero»:

trim(trim($texto,»recortar»),»que»);

0-3ldus5r8-codingpero, en cambio, nos vuelve a dar como resultado «lo que quiero».

Ya sabemos, y acabamos de probar, que las asociaciones recursivas de algunas funciones no funcionan en PHP, instándonos a utilizar arrays, así que hay que buscar otra forma de poder eliminar las dos palabras y que siga siendo igual de sencillo.

Una de ellas puede ser la utilización de la función ereg_replace, que sustituye cualquier cadena dentro de un texto:

$texto = «lo que quiero recortar»;
ereg_replace(«que»,»»,$texto);

Teniendo en cuenta que los parámetros de ereg_replace son («cadena a modificar»,»texto que lo suple»,texto completo), este código nos daría como solución «lo quiero recortar». Ahora sí podríamos hacer la asociación de funciones, de forma que:

trim(ereg_replace(«que»,»»,$texto),»recortar»);
o
trim(ereg_replace(«recortar»,»»,$texto),»que»);

nos darían como solución final «lo quiero», que era lo que estábamos buscando. Simple, rápido y efectivo.

Publicado originalmente en Mecus.es. Comentarios allí 🙂