Leer feeds no es algo que se deba limitar a aplicaciones lectoras de feeds, ya que actualmente muchas webs ofrecen sus datos mediante este formato. Hacer un lector de feeds puede ser algo complicado, o más bien laborioso, ya que hay varios formatos y versiones, a parte de que no todo el mundo publica feeds válidados.
Se puede realizar un sencillo lector de feeds con PHP gracias a la librería SimpleXML (se necesita PHP5). Tan solo habrá que leer el feed y parsearlo, y luego acceder a sus elementos. Algo así como:
$data = @simplexml_load_string(file_get_contents($url));
if ($data) {
// Obtiene el los elementos <item>
$items = $data->xpath('//item');
}
Pero hay que tener en cuenta que el existen etiquetas como <content:encoded> que la librería no las leerá y recuperará tan fácilmente. Para ello deberemos mirar el xmlns correspondiente:
Con este código se puede empezar a leer feeds, pero aún así, si necesitáis más, podéis mirar este post, que es donde he encontrado la solución al <content:encoded>.
VCL para PHP es un framework pensado para ser usado en el IDE Delphi for PHP. Quizás no sea el framework ideal, pero permite realizar aplicaciones de forma rápida, y eso, en muchos proyectos, suele ser lo que importa.
Nos ofrece la posibilidad de crear aplicaciones orientadas a objetos, sistema MVC, internacionalización, motor de plantillas, abstracción Ajax, abstracción de la base de datos, filtros para los datos de entrada e integración con webservices.
Se puede ver unos ejemplos aquí
Gracias InnovacionWeb.com 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.
A veces cuando desarrollamos mapas usando Google Maps, nos pueden quedar iconos muy pegados los unos a los otros, siendo bastante complicado apreciar algo en el mapa.
php_google_maps es una librería que nos permite trabajar facilmente con los mapas de Google, y que además añade una clase que permite agrupar puntos en el mapa según su separación. Introduction to Marker Clustering With Google Maps
Vía / fede.carg
Completo tutorial que nos muestra como realizar nuestras aplicaciones de escritorio con PHP. Antes de nada es importante realizar un cambio de mentalidad, ya que normalmente PHP se usa para realizar aplicaciones Web, que están basadas en entrada de datos, mientras que las aplicaciones de escritorio están basadas en eventos.
Para realizar estas aplicaciones es necesario usar PHP-GTK, la cual nos permite crear ventanas usando las herramientas de GTK.
El tutorial empieza con una pequeña introducción y luego una explicación de los beneficios de aplicaciones de escritorio. Y como remate final, un ejemplo de Hello Wolrd:
<?php
// Code snippet from the PHP-GTK manual.
if (!class_exists('gtk')) die("Please load the php-gtk2 module in your php.ini");
$window = new GtkWindow();
$window->set_title('Our PHP-GTK window');
$window->connect_simple('destroy', array('gtk', 'main_quit'));
$label1 = new GtkLabel("Hello world!");
$window->add($label1);
$window->show_all();
Gtk::main();
?>