CodeIgniter es un liviano framework para php , que cuenta con bastantes librerías/clases/helpers y opciones muy útiles que nos ahorra mucho tiempo a la hora de empezar a programar.
Lamentablemente CodeIgniter no cuenta con ninguna herramienta para la extracción y manipulación de strings útiles, como en este caso usando Xclass , una librería que programe para esta tarea.
Cual tarea?
en ocasiones necesitaremos de alguna manera interactuar con otra pagina que no nos facilita ninguna api ni herramienta para hacerlo.. pues en este caso supongamos necesitemos extraer las ultimas noticias o las estadisticas del mundial,el clima,últimos comentarios de una persona..
Xclass nos facilita la tarea , solo ingresando 3 parámetros:
- La url de la pagina a solicitar la informacion.
- La cadena desde donde se iniciara a extraer.
- La cadena donde se terminara de extraer.
(A parte de webs , Xclass también sirve para cadenas comunes a las que necesitemos extraer una sección)
Instalando Xclass en CodeIgniter
http://xerotutos.vacau.com/Xclass.zip
Para instalar una librería en CodeIgniter , solo necesitamos descargar Xclass.php , ir a la carpeta en donde esta corriendo CodeIgniter->system->application->libraries y pegar Xclass.php.
Siguiendo esto ya instalamos Xclass y esta lista para usarse en CodeIgniter.
Usaremos mi perfil de Cristalab , extraeremos mi numero de post,tips,clablevel .
Crearemos un controlador Xero.php en la carpeta system->application->controlles con lo siguiente:
Código :
<?php class Xero extends Controller{ function Xero() { parent::Controller(); } function index() { $this->load->library("xclass"); echo $this->xclass->xas('http://www.cristalab.com/usuario/88793-xer0s','<div class=profile-info>','<div class=pie></div>'); } } ?>
Simplemente es un controlador normal , llamamos a la libreria Xclass luego a la funcion con 3 parametros:
Código :
$this->load->library("xclass"); $this->xclass->xas("$target","$primera_cadena","$segunda_cadena");
El primer parámetro es la url, el segundo es la primera aparición donde empezaremos a extraer el código y el tercer parámetro indica hasta donde seguirá extrayendo.
La parte que nos interesa:
Código :
<div class=profile-info> <p> <big><strong>Xer0s</strong> es <em>Usuario</em> de Cristalab</big><br /> <a href=http://xerotutos.vacau.com target=_userwww>http://xerotutos.vacau.com</a><br /> <span>Con <strong class=relevante>63</strong> de <strong><acronym title=Nivel de participación en la comunidad. Lo obtienes posteando, con tutoriales, tips, etc.>clabLevel</acronym></strong></span><br /> Desde el 05 Ene 2010 </p> <p></p> </div> <ul id=user-stats> <li class=mssages-q><a href=http://foros.cristalab.com/search.php?search_author=Xer0s>21 mensajes</a></li> <li>0 tutoriales</li> <li>0 ejemplos</li> <li>1 tips</li> <li>0 artículos</li> </ul> <div class=pie></div>
(Extraído del Código fuente)
Mi perfil:(primer parámetro)
http://www.cristalab.com/usuario/88793-xer0s
El segundo parámetro:
<divclass=profile-info>
El tercer Parámetro:
<div class=pie></div>
Dando como resultado: http://localhost/index.php/xero/
Así de simple ha sido extraer esa información , solo usando el parámetro que extraemos viendo el html que deseamos extraer. También es aconsejable leer sobre expresiones regulares.