Tratar datos binarios en PHP
Método sencillo para leer cabeceras binarias de imágenes GIF o JPEG u otros ficheros guardados en binario…
Método sencillo para leer cabeceras binarias de imágenes GIF o JPEG u otros ficheros guardados en binario…
Me avisan los creadores de esta librería para la generación de ficheros docx de Microsoft, la cual dispone de una versión gratuita que ofrece bastantes características e incluso las más necesarias:
require_once('../classes/cCreateDocx.inc');
$objDocx = new cCreateDocx();
$arrParamsText = array( 'b' => 'single', 'jc' => 'center’); //b for bold and jc for alignment
$objDocx->fAddText('Hello World.', $arrParamsText);
$objDocx->fCreateDocx('hello_world.docx');
Si hay algo que odio a la hora de desarrollar una aplicación es tener que hacer thumbs de las imágenes, sobre todo para los perfiles: que si el thumb es cuadrado y la imagen rectangular, que si se debe recortar o meter bordes, … PHP Thumbnailer nos facilita enormemente esta tarea:
Hacer resize:
try {
$thumb = PhpThumbFactory::create('/path/to/image.jpg');
} catch (Exception $e) {
// error
}
$thumb->resize(100, 100);
$thumb->show();
Hacer resize y crop si es rectangular:
$thumb->adaptiveResize(175, 175);
$thumb->save('/path/to/new_image.jpg');
La librería SPL trae muchas cosas interesantes y que son un poco desconocidas. Pero en PHP6 traerá más novedades que pueden facilitarnos mucha la programación. En este caso se trata de SplObjectStorage, una clase que nos permitirá crear colecciones de datos únicos de forma muy sencilla, ya que si insertamos dos veces el mismo elemento, la segunda vez lo ignorará. A parte trabaja con los elementos como referencia, por lo que si modificamos el objeto una vez insertado, este será también modificado en la clase que guarda la colección de objetos.
Un ejemplo del mismo es el siguiente:
<?php
/**
* Test class that we will store in the
* SplObjectStorage object.
*/
class StorageTest {
private $title;
public function __construct( $title ) {
$this->title = $title;
}
public function __toString() {
return $this->title;
}
}
$storage = new SplObjectStorage();
$obj = new StorageTest( "www.eide.org" );
$storage->attach( $obj );
$storage->attach( $obj );
foreach( $storage as $o ) {
echo $o;
echo "\n";
}
?>
El resultado de esta ejecución solo nos devolverá un resultado.
Interesante estudio que muestra la velocidad de tres frameworks PHP (Cake PHP, CodeIgniter y Zend Framework).
Realiza diferentes pruebas: sin usar caché, usando caché propio, usando caché externo, acceso a BD, acceso mediante Active Records, … Los resultados demuestran que CodeIgniter es el más rápido y Cake PHP el más lento.
Es también destacable los datos sobre número de peticiones por segundo cuando se usa un framework a cuando se usa HTML estático. Por eso es recomendable realizar un caché para servir HTML estático.
El autor también realiza una comparativa de funcionalidades entre CodeIgniter y Zend Framework, aunque lo miraría con cuidado, porque dice que CI no admite internacionalización y no es cierto.
PHP framework comparison benchmarks
El UTF-8 es un tipo de codificación de caracteres para Unicode que nos permite escribir nuestras páginas web y no preocuparnos por si se va a ver correctamente o van a aparecer caracteres extraños.
Las veces que he trabajado en proyectos multilenguaje es lo que hemos usado, salvo en el caso de japonés y coreano que es preferible usar el UTF-16 porque ocupa menos espacio. Eso ha hecho que me haya acostumbrado a realizar siempre los proyectos en UTF-8 y así evitar luego los problemas que puedan surgir en futuras actualizaciones o en testeos y tener luego que cambiar todo el proyecto a UTF-8.
Protolize es una lista con herramientas web, algunas imprescindibles y otras que nos pueden ser bastante útiles. Organizada en categorías y algunas separadas en grupos: aplicaciones en general: herramientas como Type Navigator, Web Developer Extension y Color Scheme Generator, y recursos como The Web Developer’s Handbook, Design Melt Down y A List Apart; CMS (Modx, WordPress, Drupal); herramientas CSS como CSS Photo Gallery, Background Image Maker y Nifty Corners Cube, y sitios para inspirarse como CSS Mania, CSS Import y CSS Beauty; Javascript (Script.aculo.us, Prototype, Image Reflection); AJAX (Ajaxload, Ajax Downloadables, Lightbox); PHP (Hot Scripts, Php Freaks, Pear); Flash (Fuse Kit, Zigo Tween Engine, MC Tween).
Protolize | Essential web tools in one place
Vía / Digg