SQL en arrays en PHP

Si el otro día decíamos cómo usar SQL en datos de Javascript, hoy vamos a mostrar la clase sql4array que usa las sentencias SQL para buscar dentro de arrays en PHP.

La clase es válida para PHP5, e incluye las siguientes características:

  • Admite las siguientes cláusulas: SELECT, DISTINCT, FROM, WHERE, ORDER BY, LIMIT, OFFSET
  • Operadores: =, <>, !=, <, >, <=, >=, IS, IS IN, NOT IN, IS NOT IN, LIKE, ILIKE, NOT LIKE, NOT ILIKE
  • Funciones en el WHERE: LOWER(), UPPER(), TRIM()

Aún es algo lento, aunque mejora la visibilidad de tu código. Entre las funcionalidades que van a incluir están los joins, funciones en el SELECT y GROUP BY.

sql4array

Actualización: Víctor nos deja una modificación para que funcione en PHP4.

Blitz: sistema de plantillas para PHP

Blitz es un sistema de plantillas para PHP que está desarrollado en C y compilado como una extensión para PHP. Habiendo ya muchos sistemas de plantillas para PHP, la pregunta es ¿por qué usar una nueva? la respuesta es simple, Blitz es uno de los sistema de plantillas más rápidos que hay y permite a los desarrolladores crear código compacto y sencillo de leer y modificar, incluso para aquellas aplicaciones con una lógica de presentación compleja.
Blitz se basa en dos conceptos: view controllers que contienen la lógica de presentación sin etiquetas HTML, y las plantillas que contienen el HTML, variables y lógica como condiciones de presentación de datos, includes y llamadas a métodos de usuario.
Blitz
Vía / International PHP Magazine

Stubbles: framework PHP

stubbles.pngStubbles es un framework para PHP5 que combina las características favoritas de otros lenguajes de programación y frameworks, en vez de usar los paquetes que te gustan y combianrlos con PEAR, Zend Framework u otros frameworks de PHP.

Entre las características que ofrece, nos encontramos con:

Stubbles

Vía / PHPDeveloper.org

|

Recursos para crear paginación

A la hora de crear paginación en los resultados que devuelve una búsqueda en nuestra aplicación hay que tener varias cosas en cuenta. Sobre todo cuando queremos mostrar los resultados totales. Para saber cuántos resultados se han obtenido, debemos hacer una consulta del tipo:

select count(1) from tabla

Esto suele ser lo más eficiente, ya que la otra opción es hacer la consulta sin más y luego contar el número de registros (a mí me parece una locura, pero lo he visto en varios sitios).

Si ya hemos calculado el número de registros, ahora podemos obtener únicamente un rango de registros ya sea con LIMIT en MySQL o haciendo uso del ROWNUM en Oracle.

¿Presenta algún problema calcular inicialmente el número de registros?, pues sí, si la consulta es pesada, por ejemplo por su complejidad, se deberá realizar dos veces, la primera para calcular el número de registros y la segunda para obtener los datos, por lo que perdemos un tiempo precioso.

Lo lógico sería hacer un estudio de cuántos registros se pueden obtener de la consulta, si son relativamente pocos, quizás compense obtener todos y no tener que hacer dos consultas. También puede ser interesante conocer hasta que página suele acceder el usuario, no creo que más de 5 a 10 páginas, si el usuario llega a ese número de páginas consultadas y no encuentra nada, o lo da por imposible o refina la búsqueda.

Lo mejor sería que no aparecieran el número de registros totales encontrados, aunque esto a veces no es posible ya que las especificaciones del cliente lo obligan, entre otras cosas porque ese dato puede llegar a dar cierto prestigio sobre la calidad del buscador.

Tampoco olvidar que las bases de datos no recuperan todos los registros de una sola vez, sino que los va recuperando según se van solicitando, al menos así lo hacen bases de datos como Oracle.

De todas formas, para aquellos que necesiten realizar paginación en sus aplicaciones web, os pasamos una serie de tutoriales que esperamos sean de utilidad:

phpTube: sube y descarga vídeos desde Youtube

phpTube es una librería que nos permitirá subir nuestros vides a Youtube o descargarlos. Para descargarlos deberemos indicar el id del vídeo en Youtube y la ruta donde querremos guardarlo. Para subir un vídeo a Youtube, habrá que indicar el nombre del fichero que contiene el vídeo, el título, la descripción, las etiquetas, la categoría, el idioma y el modo de publicación (público o para amigos).

Unos ejemplos de uso serían los siguientes:

<?php
include_once ("phptube.php");
$tube = new PHPTube ();
$tube->download("clOCFKak1_c","video.flv");
?>
<?php
include_once ("phptube.php");
$tube = new PHPTube ();
$tube = new PHPTube ("usuario","contraseña");
$id = $tube->upload ("/path/video.avi","Video", "Demo video", "…", 10, "ES");
?>

phpTube

Zend Framework 1.0.0

zendframework.pngDespués de un año que anunciábamos sobre la aparición de Zend Framework, acaban de anunciar la salida de la versión 1.0 definitiva del framework.
Antes de esta versión oficial, ha habido muchas contribuciones de código, tests, documentación, traducciones (hasta 16) y mucho más, haciendo este framework más completo. Siendo uno de sus mayores logros la simplicidad de uso, no siendo tan complicado como otros frameworks o entornos, teniendo siempre en cuenta la posibles extensiones y la flexibilidad.
Zend Framework 1.0
Vía / Andi Gutmans’ Weblog

|

Crear documentos OpenDocument con PHP

OpenDocument es un paquete PHP para generar, modificar y leer documentos en formato Open Document. Aún existe la costumbre de exportar la información a documentos con formato propietarios, ya sean de Microsoft o de Adobe, mientras que Open Document es un estándar.
Inicialmente fue un proyecto del Google Summer of Code 2006 Program que ahora a pasado parte del PEAR, en fase poco avanzada, la documentación no es la gran cosa, pero tres ejemplos que ofrecen en el paquete pueden ser suficientes para ir empezando.
OpenDocument para PHP

phpOCR: reconocedor óptico de caracteres

phpOCR, como su nombre muy bien indica, se trata de una librería OCR para PHP.
Cierto tipo de aplicaciones necesitan leer texto de documentos que están guardados como imágenes, para poder pasar esa imagen a texto plano, es necesaria una aplicación OCR.
Esta clase ofrece una implementación básica de este tipo de herramientas, ya que sólo reconoce texto en imágenes monocromo. Debe ser entrenada para reconocer cada letra escrita en la imagen, pudiendo después reconocer texto de documentos escaneados una vez entrenada la aplicación.
phpOCR
Vía / WebDevLogs

|

HTML Purifier: filtro HTML en PHP

htmlpurifier.pngHTML Purifier es un filtro HTML para PHP que no solo elimina código XSS, sino que asegura que tus HTML cumplan los estándares.
A parte admite configurar el filtro con una serie de parámetros, pudiendo decir si se quiere que sea XHTML Strict o Transitional, HTML o XHTML, indicar el nivel de filtro.
HTML Purifier
Vía / dzone

|

PHPIDS: seguridad en tus aplicaciones

phpids.pngPHPIDS (PHP-Intrusion Detection System) es una librería que podemos añadir a nuestras aplicaciones realizadas en PHP, que nos ofrece capa de seguridad de forma sencilla. No evita ni filtra ataques contra nuestra aplicación, tan solo detecta cuando se produce un ataque y actúa como nosotros queremos que lo haga.
Basado en un conjunto de filtros aprobados y testeados, cada ataque tiene asignado un número que valora su impacto en nuestra aplicación, lo cual hace sencillo decidir que acción tomar contra el intento de ataque, lo cual puede ser un mensaje de aviso por correo a los desarrolladores, mostrar un aviso al atacante o finalizar la aplicación.
La integración con nuestra aplicación es sencilla.
PHPIDS
Vía / PHPDeveloper.org