Comunicación con los puertos serie en PHP

Hace tiempo nos preguntaban como leer de los puertos serie desde PHP, y ahora acabo de encontrar eso mismo y además cómo hacerlo para Windows y para Linux.
Para Windows se necesita la extensión PHP Serial Extension, la cual una vez instalada nos permite manejar los puertos y las comunicaciones de los puertos serie. Aunque su uso se sale de lo normal, pero seguro que hay algún caso en el que pueda ser útil, como controlar cámaras, video, modems y terminales GSM, lectores de códigos de barras o algún otro dispositivo conectado al puerto serie.
En el caso de Linux, es necesaria la clase PHP Serial Class, la cual toma la ruta del dispositivo y comprueba qué es válido antes de abrir la conexión, y una vez abierta, envía datos al puerto serie. Además puede cambiar los parámetros de conexión para el dispositivo conectado.
Vía / VT’s Tech Blog

Captura pantallas con PHP y GD

El tema de los screenshots de páginas web es algo que ahora está bastante de moda. Existen servicios que nos muestran miniaturas de páginas web a las que enlazamos (algo que a mucha gente desespera), pero en algunos casos somos nosotros quienes queremos obtener esas capturas.
En este caso se van a realizar mediante PHP y la librería GD, aunque para ello haya que modificar la librería GD por esta otra, la cual añade las funciones imagegrabscreen y imagegrabwindow, permitiendo grabar pantallas completas y ventanas (usando su manejador) respectivamente.
Los ejemplos que nos muestran funcionan bajo Windows y ejecutando PHP en modo línea de comandos, nos abre una ventana de IE y captura su contenido. ¿Pegas? no tengo claro si se puede redimensionar la ventana y nos muestra también el IE, no el contenido HTML únicamente.
Screen capture with PHP and GD
Vía / Planet PHP

Generar documentos Excel con CakePHP

CakePHP es uno de los mejores frameworks de PHP que nos ofrece muchas posibilidades en nuestros desarrollos. En este caso se trata de crear documentos Excel, algo muy frecuente en las aplicaciones de gestión de empresas.
En el artículo ofrecido por la gente de CakePHP, nos indican paso a paso qué pasos debemos seguir para poder exportar nuestros contenidos a hojas Excel. Para ello es necesario tener instalado las librerías que aporta PEAR para la generación de documentos Excel.
Mi experiencia desarrollando una librería para generar Excel (en Java) me obliga a decir dice que cualquier ayuda es buena, ya que la diferencia entre versiones de Excel es significativa.
No olvidemos a Drake si queremos usar esta librería en nuestro Drupal.
Generate Excel spreadsheets from your database
Vía / Prográmame.net

Corrector ortográfico con PHP

Algo que nos sorprendió a muchos fue que Google nos corrigiera los errores ortográficos que introducíamos cuando realizábamos una búsqueda. Ahora tan de moda las aplicaciones web, sería algo muy interesante a incluir en los buscadores.
El artículo que os presento a continuación explica paso a paso todo lo que hay que hacer para usar la librería pspell, las cuales nos permiten: usar diferentes lenguajes, saber si una palabra es correcta para un lenguaje, sugerir posibles alternativas para la palabra incorrecta y facilitar la posibilidad de añadir nuevas palabras.
Lo mejor de todo es que su implementación es sencilla y que con pocas llamadas podemos saber si una palabra es correcta, sugerencias y demás. Me gustaría hacer pruebas para ver el rendimiento, ya que Google tiene una arquitectura impresionante, pero quizás en nuestras aplicaciones puede ser algo costoso. También ver cómo poder pasar para leer el diccionario de la base de datos nuestra y no de un fichero.
Spell checking in PHP

|

PhpSecInfo: información sobre la seguridad de tu PHP

PhpSecInfo es un equivalente a phpinfo() que nos muestra información similar a este pero indicando los puntos negros en nuestra instalación, mediante una serie de test realizados miediante una única llamada en el entorno de PHP, identifica posibles problemas de seguridad y ofrece soluciones.
phpsecinfo.png
Eso sí, hay que tener en cuenta que PhpSecInfo no sustituye métodos de programación para evitar problemas de seguridad y no hace comprobaciones de nuestro código PHP, tan solo detecta posibles fallos de seguridad.
PhpSecInfo

|

Consola remota mediante PHP y Ajax

Os voy a pasar una referencia a script de php que nos proporciona una consola remota para ejecutar comandos desde una página web. Con ella podréis ejecutar comandos mediante php, teniendo en cuenta los permisos de php para poder ejecutar los comandos que pasemos.
phpconsola.png
Algunos os llevaréis las manos a la cabeza y no sin razón, pero la verdad es que a mí personalmente me vendría muy bien en ciertos proyectos en los que para ejecutar el más mínimo comando casi hay que enviar cien peticiones a la gente de redes encargada de los servidores de los proyectos. O cuando el acceso a telnet lo tienes restringido desde el trabajo.
Lo que está claro es que hay que añadirle toda la seguridad habida y por haber. En el artículo al que hago referencia, se pueden ver todos los controles de seguridad que hay que usar y copiar el script php necesario.
PHP and AJAX shell console

|

Composite Pattern en PHP 5

Aunque a la gente que trabajamos con Java este concepto nos es muy conocido, ha sido en PHP5 cuando han sacado los composite patterns para usar esta funcionalidad, la cual nos puede dar mucho juego.
Una composite pattern ofrece una sencilla interfaz que permite a los programadores de clientes trabajar con un componente o un conjunto de componentes de forma intercambiable. De hecho, según el código no se debe saber si se trata de un componente o de un conjunto de ellos.
Para ello se define una clase como abstracta y los métodos que la componen también. Luego habrá que crear otras clases que se extiendan de esta primera para poder tratar los diferentes tipos.
Un buen inicio para aprender a usar está técnica, que es sencilla aunque no lo parezca.
Introducing the Composite Pattern in PHP 5 – Introducing the basics of the composite pattern
Vía / PHPDeveloper.org

Suhosin: sistema de protección para PHP

Suhosin es un sistema avanzado de protección para PHP. Ha sido diseñado para proteger los servidores y a los usuarios de defectos conocidos y desconocidos del core de PHP y de las aplicaciones realizadas con PHP.
Viene en dos partes independientes que pueden ser usadas de forma separada o en combinación. La primera de ellas es un pequeño parche para el core de PHP que implementa unas protecciones de bajo nivel para solucionar vulnerabilidades desbordamiento del buffer y de formateo de cadenas de texto. La segunda parte es una extensión PHP que implementa las otras protecciones.
Suhosin es compatible a una instalación normal de PHP, lo cual significa que a su vez lo es de extensiones de terceros como ZendOptimizer.
Suhosin
Vía / PHP Security Blog

Trabajar con directorios en PHP

Algo que suele ser bastante común como tratar con directorios, algunas veces nos puede causar alguna dificultar porque los que desarrollamos web no solemos necesitarlos.
En el siguiente tutorial se muestra todo lo necesario para crear directorios, borrarlos, borrarlos cuando hay contenido de forma recuersiva y crearlos, y algo importante, diferenciando funcionalidades de PHP4 y PHP5
PHP: Working with Directories
Vía / Good PHP Tutorials