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:
-
"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:
-
// 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.