Tutorial de SimplePie
- 30/05/2009
- 10:17 pm
SimplePie es una librería PHP muy popular que permite parsear Feeds del tipo RSS o Atom. Tiene todos los métodos necesarios para obtener todos los datos del Feed, incluso permite hacer cache de feeds para acelerar las consultas.

Empezando con SimplePie
Lo primero es descargar la librería desde la página oficial en SimplePie Download la cual en estos momentos esta en la versión 1.1.3, extraemos el archivo donde encontramos el archivo simplepie.inc el cual es el archivo que contiene las funciones necesarias para leer feeds. Luego creamos un archivo PHP en donde incluimos este archivo:
-
<?php require("simplepie.inc"); ?>
El siguiente paso es crear una instancia de la clase SimplePie, luego utilizamos el método set_feed_url para asignar el feed que deseamos leer y con el método set_cache_location definimos la carpeta donde se guardarán los archivos temporales de cache.
-
$feed = new SimplePie();
-
$feed->set_feed_url("http://blog.unijimpe.net/feed/");
-
$feed->set_cache_location("cache");
-
$feed->init();
-
$feed->handle_content_type();
Hasta este punto ya tenemos los datos del feed en la variable $feed, lo siguiente es mostrar cada ítem del feed. Para ello hacemos un recorrido por cada elemento del feed, haciendo un foreach por cada elemento devuelto por el método get_items,
-
<?php foreach ($feed->get_items() as $item) { ?>
-
<a href="<?php echo $item->get_link(); ?>">
-
<?php echo $item->get_title(); ?>
-
</a>
-
<br />
-
<?php echo $item->get_description(); ?>
-
</li>
-
<?php } ?>
-
</ul>
En donde hemos utilizado get_description para obtener un resumen de cada post, si deseamos obtener el post completo se puede utilizar get_content. Pueden ver el ejemplo funcionando en /simplepie/parser.php.
Ahora si aplicamos estilos y formateamos los resultados devueltos por SimplePie podemos lograr excelente resultados, incluso podemos incluir un formulario para que los visitantes ingresen el feed que desean leer. Pueden ver un ejemplo mucho mas completo en /simplepie/.
Pueden ver el listado completo de funciones disponibles para extraer los datos del Feed en la documentación oficial SimplePie: API Reference. Finalmente les dejo los archivos fuente de estos ejemplos para que hagan sus pruebas.
Posts Relacionados
- SimplePie: Parser RSS o Atom
- SimplePie Live
- Reporte del Clima en PHP
- bajar-youtube.com
- Buscador Youtube con PHP
IP Location con PHP
- 13/04/2009
- 10:31 pm
IP Location Tools es un servicio gratuito que te devolverá la posición, la ciudad, región y país de un determinado número IP. Este servicio ofrece dos versiones para consultar esta información: una base de datos SQL para descargar y un API para consultar directamente.

Utilizando el API de IP Location Tools
En nuestra caso utilizaremos el API para no estar instalando la base de datos, entonces para acceder a la información requerida es necesario acceder a un URL de la forma:
-
http://iplocationtools.com/ip_query.php?ip=74.125.45.100
Esto nos devolverá un XML conteniendo el IP consultado, el estado de la consulta, los datos de pais, región, ciudad incluso los valores de latitud y longitud de posición del IP consultado.
-
<?xml version="1.0" encoding="UTF-8"?>
-
<Response>
-
<Ip>200.121.243.199</Ip>
-
<Status>OK</Status>
-
<CountryCode>PE</CountryCode>
-
<CountryName>Peru</CountryName>
-
<RegionCode>15</RegionCode>
-
<RegionName>Lima</RegionName>
-
<City>Lima</City>
-
<ZipPostalCode></ZipPostalCode>
-
<Latitude>-12.05</Latitude>
-
<Longitude>-77.05</Longitude>
-
</Response
Utilizando PHP
Como el resultado es un XML podríamos utilizar la función xml2array de la cual comentamos en xml2array: PHP XML Parser, entonces tendríamos el siguiente código para leer los datos del XML.
-
include("xml2array.php");
-
$ipquery = $_SERVER['REMOTE_ADDR'];
-
$pathAPI = "http://www.iplocationtools.com/ip_query.php?ip=".$ipquery."&output=xml";
-
$arrdata = xml2array($xmldata);
-
$params = $arrdata['Response'];
Donde notamos que tomamos el IP del visitante para hacer la consulta, luego de ello imprimimos estos datos en nuestro HTML como se muestra:
-
<strong>IP:</strong>
-
<?php echo $params['Ip']['value']; ?><br />
-
<strong>País:</strong>
-
<?php echo $params['CountryName']['value']; ?><br />
-
<strong>Región:</strong>
-
<?php echo $params['RegionName']['value']; ?><br />
-
<strong>Ciudad:</strong>
-
<strong>Latitud:</strong>
-
<?php echo $params['Latitude']['value']; ?><br />
-
<strong>Longitud:</strong>
-
<?php echo $params['Longitude']['value']; ?>
El resultado de este ejemplo lo podemos ver funcionando en iplocation.

Integrando los resultados con Google Maps
Podríamos mejorar aun mas nuestro ejemplo si mostramos los resultados de la búsqueda en un mapa, para ello basados en el ejemplo Google Maps en tu Web creamos una instancia de nuestro mapa centrado en la latitud y longitud recién obtenidas, ademas de ello posicionamos un campo de texto con los datos de la consulta.
-
<title>IP Location Demo - unijimpe</title>
-
<script type="text/javascript"
-
src="http://maps.google.com/maps?file=api&v=2&key=TU_KEY"></script>
-
<script type="text/javascript">
-
//<![CDATA[
-
function load() {
-
if (GBrowserIsCompatible()) {
-
var map = new GMap2(document.getElementById("map"));
-
var pos = new GLatLng(<?php echo $params['Latitude']['value']; ?>,<?php echo $params['Longitude']['value']; ?>)
-
-
map.setCenter(pos, 12);
-
map.addOverlay(new GMarker(pos));
-
-
map.openInfoWindow(pos, myHtml);
-
}
-
}
-
//]]>
-
</script>
-
</head>
-
<body onload="load()" onunload="GUnload()">
-
<h3>IP Location Demo</h3>
-
<div id="map" style="width:500px; height:300px"></div>
-
</body>
-
</html>
El resultado de este ejemplo lo puedes ver en maplocation.php en donde se muestran los datos de la consulta sobre el mapa. Finalmente les dejo los archivos fuente de este post para que hagan sus pruebas y lo utilicen en sus webs.
Posts Relacionados
- Crear Buscador de MP3
- PHP Youtube Downloader 2.0
- PHP and MySQL by Example
- PHP: Descargar videos YouTube
- PHP Youtube Video Downloader
Packer: JavaScript Compressor
- 22/03/2009
- 10:44 pm
Packer es una interesante herramienta para comprimir archivos Javascript sin perder su funcionalidad, esto es muy útil para disminuir el tamaño de los archivos js con lo cual aceleramos la carga de nuestra web.
Esta excelente herramienta, tiene un campo donde ingresar tu cóidgo javascript y generará la versión optimizada, para ello elimina los espacios en blanco y saltos de línea. También tiene la opción Shrink variables, con la cual acorta los nombres de las variables, si por ejemplo tenemos funciones con variables: nombre, url, las reemplazará por a, b con lo cual se logra ahorrar espacio sin perder funcionalidad. Finalmente cuenta con la opción Base62 encode con la cual se codifica aun mas las funciones y variables logrando así reducir mas espacio.
Por ejemplo si tenemos una función que se encarga de limpiar los campos de texto de nuestros formularios al hacer focus sobre ellos de la siguiente forma:
-
function init(){
-
var inp = document.getElementsByTagName('input');
-
for(var i = 0; i <inp.length; i++) {
-
if(inp[i].type == 'text') {
-
inp[i].setAttribute('rel', inp[i].defaultValue);
-
inp[i].onfocus = function() {
-
if(this.value == this.getAttribute('rel')) {
-
this.value = '';
-
} else {
-
return false;
-
}
-
}
-
inp[i].onblur = function() {
-
if(this.value == '') {
-
this.value = this.getAttribute('rel');
-
} else {
-
return false;
-
}
-
}
-
inp[i].ondblclick = function() {
-
this.value = this.getAttribute('rel')
-
}
-
}
-
}
-
}
Utilizamos Packer para comprimir el archivo y obtenemos el siguiente resultado, en donde el archivo original pesaba 824 bytes y el archivo optimizado 431 bytes lo cual es prácticamente el 50% de eficiencia.
-
function init(){var inp=document.getElementsByTagName('input');for(var i=0;i<inp.length;i++){if(inp[i].type=='text'){inp[i].setAttribute('rel',inp[i].defaultValue);inp[i].onfocus=function(){if(this.value==this.getAttribute('rel')){this.value=''}else{return false}}inp[i].onblur=function(){if(this.value==''){this.value=this.getAttribute('rel')}else{return false}}inp[i].ondblclick=function(){this.value=this.getAttribute('rel')}}}}
Packer puedes usarlo directamente desde http://deanedwards.me.uk/packer/ pero si deseas hay versiones en .NET, perl y PHP disponibles para descargar y utilizarlos directamente en nuestro servidor.
Posts Relacionados
- Acelerar carga web con PHP
- Comprimir archivos Javascript
- Ajedrez JavaScript
- jQuery Flash Plugin
- PNG transparente en IE



