Archivo para PHP

Recursos destacados

  • ZAMZAR. Excelente sitio para convetir de cualquier formato, a otro, en línea. Soporta gran variedad de formatos, a mí me ha servido muchísimo.
  • Ajax Resources. Gran recopilación de enlaces web relacionados con AJAX, por parte del equipo de solutoire. Encontrarás mucho sobre frameworks Javascript, toolkits, debugging, libros, manuales, tutoriales, API’s, y recursos de todo tipo.
  • Javascript packer en php. Compresor de código javascript hecho en php. Disponible para descarga e incluir en tus proyectos. Puedes relacionar archivos JS sin comprimir y al vuelo empaquetarlo.
  • mooItems. Vladimir Prieto desarrolla esta ingeniosa clase que por medio de JSON, permite manejarcon una mínima configuración una serie de items, con posibilidad de realizar funciones sobre ellos.

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.

Contador de caracteres en un Textarea

En Sentido Web publican esta entrada en la cual muestran el código con el que por medio de Javascript controlan el número de teclas pulsadas, con el fin de limitar el número de caracteres de entrada. Esto es útil sobre todo cuando la información que se está escribiendo se va directo a un campo de la base de datos, que esté limitado a un tamaño, y así hacer una buena validación de entrada a la base de datos. Bien, pues el ejemplo no impide que se continue escribiendo, pero si te indica con una barra en color rojo cuando te pasaste, y así permitirte reducir el texto deseado a fin e dejarlo en la longitud deseada. Luis Sacristán lo explica a detalle.

Lo que procedemos hacer acontinuación tomando como base el ejemplo de Luis Sacristán, y para todos aquellos que como yo ya no saben escribir Javascript sino MooTools, es Mootoorizar el ejemplo de la siguiente manera:

HTML____________________________________

HTML:
  1. <div class="contenedor">
  2.     <textarea id="txtArea"></textarea>
  3.     <div id="progreso">&nbsp;</div>
  4. </div>

JAVASCRIPT_______________________________

JavaScript:
  1. var Site={
  2.         max:250,
  3.         w:300,
  4.         start:function(){
  5.             var args=[$('progreso'), textarea=$('txtArea')];
  6.             textarea.addEvent('keyup',Site.progreso_tecla.pass(args)).fireEvent("keyup", args);
  7.         },
  8.         progreso_tecla:function(progreso,obj){
  9.               progreso.setStyles(
  10.                 (obj.value.length <Site.max)?
  11.                     {backgroundPosition:"-"+(Site.w-((Site.w*obj.value.length.toInt())/Site.max).toInt())+"px 0px", backgroundColor:'#FFF',backgroundImage:'url(textarea.png)',color:'#000'}:
  12.                     {backgroundColor:'#C00',backgroundImage:'url()',color:'#fff'}
  13.               ).setHTML("("+obj.value.length+" / "+Site.max+")");
  14.         }
  15.     }
  16.     window.addEvent('domready',Site.start);

El ejemplo corriendo aqui.

   

últimos compilados

en el cajón

lo que no he podido escribir en twitter

los colegas