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

GeSHI: resalta el código en tu web

GeSHI (Generic Syntax Highlighter) es un script PHP que resalta el código que indiquemos realizado en un total de más de 50 lenguajes de programación, entre los que se encuentran PHP, Java, HTML, CSS, C#, Javascript y SQL.
Inicialmente desarrollado para el sistema de foros phpBB, finalmente ha pasado a ser un proyecto independiente. Entre sus características destaca la cantidad de lenguajes que admite, la facilidad de añadir un lenguaje nuevo y la facilidad para modificar la salida del script.
geshi.png
Lo que más me gusta de este script es que enlaza con las URLs de las funciones de los lenguajes.
GeSHI

|

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

Pixy: localiza XSS y SQL Injection en tu PHP

Pixy es una aplicación Java que rastreará nuestro código PHP en busca de vulnerabilidades XSS y SQL Injection.
Encuentrq vulnerabilidades que normalmente se encuentran en auditorías manuales, salvo que estas pueden pasar por encima algunas. Pixy tan solo es válido para código PHP4, aún no es compatible con PHP5. Realiza informes sobre los puntos vulnerables del código, para lo cual toma el programa PHP como entrada y acto seguido lo analiza.
Pixy
Vía / VT’s Tech Blog

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