Swift Mailer es una potente librería que permite el envío de emails y que entre las características que ofrece, nos encontramos con: cabecera de control RFC 2822, internacionalización, balance de carga, soporte para SSL y TLS (para servidores GMail), imágenes embebidas, MIME 1.0 (adjuntos, …), y mucho más. Swift Mailer
Gracias Óscar por el aviso.
Para mí, uno de los mayores fracasos de Twitter es su API, una limitación de su uso increíble para algo que le podría dar mucho juego a la aplicación. Ahora mismo no sé en cuánto está el límite, pero la posibilidad de realizar una aplicación basada en Twitter es una pesadilla.
Para aquellos que no quieran sufrir lo que hemos sufrido con TwitterPoster (los espacios en blanco es porque la gente actualiza su imagen y no podemos recuperar la de todos los usuarios por el límite en el API de Twitter), les recomiendo usar Twitter mediante CURL.
Os paso un script sencillito que he realizado:
<?php
// Primer hacemos login
$url ="https://twitter.com/sessions";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
// Por si tienen limitación por navegador
curl_setopt($ch, curlOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax)");
// Poned una ruta para las cookies
curl_setopt ($ch, CURLOPT_COOKIEJAR, '/temp/');
curl_setopt ($ch, CURLOPT_COOKIEFILE, '/temp/');
curl_setopt ($ch, CURLOPT_POSTFIELDS, "username_or_email=[usuario]&password=[contraseña]");
// Para que funcione el https
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($ch, curlOPT_SSL_VERIFYHOST, 2);
curl_exec ($ch);
// Cargamos el home, porque Twitter añade dos campos ocultos para poder publicar por web
$url ="http://twitter.com/home";
curl_setopt($ch, CURLOPT_URL, $url);
$result = curl_exec ($ch);
// Recuperamos los campos ocultos
preg_match('//', $result, $match);
$authenticity_token = $match[1];
preg_match('//', $result, $match);
$siv = $match[1];
// Insertamos el texto
$res = $url ="http://twitter.com/status/update";
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'siv='.$siv.'&authenticity_token='.$auth.'&status=[texto]');
curl_exec ($ch);
curl_close ($ch);
unset($ch);
?>
¿Qué fallo tiene este script? pues que si cambian el HTML (campos de formulario, …) o las URLs deja de funcionar, pero al menos no tenemos limitaciones. Eso sí, es más costoso para sus servidores y para los nuestros, porque en vez de hacer una llamada, hacemos 3, y en nuestro caso, a parte parseamos una página para obtener dos campos ocultos.
CodeIgniter, el framework de PHP y uno de los que personalmente más me gustan, ha sacado una nueva versión, lo que no tengo muy claro es cual, porque ellos indican en la noticia que es la 1.5.2, cuando ya hace tiempo salió la 1.5.4, por lo cual, viendo el código se puede ver que es la 1.6.0
// CI Version
define('CI_VERSION', '1.6.0');
Tampoco le hagáis mucho caso (por ahora) a lo que diga el changelog, ya que muestra el de la version 1.5.2, en el changelog del SVN se pueden ver los cambios realizados a esta última versión:
La posibilidad de cargar varias vistas, añadiendo el contenido de estas al buffer.
Añadida la clase DBForge a las herramientas de la base de datos.
Modificaciones en Active Record, como por ejemplo vaciar tablas, contar resultados, seleccionar máximos o mínimos.
Posibilidad de decidir si se guarda o no el histórico de SQLs ejecutadas, antes sí se guardaban siempre, lo cual podía acabar con la memoria si se realizaban procesos con muchas quueries (por ejemplo importaciones).
Poder autocargar modelos y lenguajes de traducción.
En muchos sitios web de almacenamiento de imágenes se nos permite retocar las imágenes. Hoy vamos a explicar como recortar una imagen directamente desde una página web.
Para ello tenemos que crearnos una página web que nos permita seleccionar la zona de la imagen que queremos recortar y de un script PHP que usando la librería GD recortará la imagen y la devolverá en formato PNG.