hyphenate de MooTools en PHP

Hace un rato terminaba un sitio, en el que por cuestiones de logística requería convertir una cadena con nomenclatura "camelCased" a una cadena del tipo "hyphen-ated". No tengo la menor idea que signifiquen esos términos. Básicamente la necesidad es pasar cadenas del tipo "yoLeoTechniqCadaDia" a cadenas del tipo "Yo leo techniq cada dia". En MooTools es cosa sencilla, haciendo lo siguiente:

JavaScript:
  1. "yoLeoTechniqCadaDia2000".hyphenate(); //la salida es: "Yo-Leo-Techniq-Cada-Dia2000"

El problema es que yo lo quería hacer con php, y además no quería los guiones, ni las mayúsculas, excepto por la primera; y además que si hay una cadena que comience por número, haga lo mismo. Comencé a hacer una función que haga dicho proceso. Pero me dije: - Tiene que haber una manera sencilla, así que procedí a hacer lo propio. Buscar en San Google. Y efectivamente, encontré la manera exacta de hacer lo que necesitaba. De la siguiente forma:

PHP:
  1. echo ucfirst(strtolower(ereg_replace("([A-Z])|([0-9].+)"," \\0","yoLeoTechniqCadaDia2000")));
  2. // Efectivamente, eso me devuelve lo buscado, "Yo leo techniq cada dia 2000"

Explicando brevemente la línea, lo que hace es buscar un patrón a partir de una expresión regular, en este caso busca cualquier letra mayúscula de la A a la Z, ó una cadena que comience con un número, dentro de la cadena de texto que se le pasa como tercer parámetro a la función ereg_replace. Una vez que encuentra el patrón, lo sistutuye por lo mismo que se encontró, pero antecedido por un espacio. Luego, a esto que se obtuvo, se le aplica la función strtolower que se encarga de pasarnos toda la cadena de texto a minúsculas. Y por último, le aplicamos mayúscula sólo a la primer letra de la cadena resultante, con la función de php "ucfirst".

Eso es todo, ese renglón me sacó de un gran apuro. La instrucción puede ser tremendamente útil, y muy variada, con tan sólo cambiar la expresión regular por otra. Ya depende de lo que se necesite hacer, y utilizando un poco de creatividad.

Leave a Comment

Name: (Required)

E-mail: (Required)

Website:

Comment:

últimos compilados

en el cajón

lo que no he podido escribir en twitter

los colegas