Ver Mensaje Individual
  #1 (permalink)  
Antiguo 14/04/2010, 19:46
Avatar de X3r0s
X3r0s
 
Fecha de Ingreso: febrero-2010
Mensajes: 90
Antigüedad: 14 años, 2 meses
Puntos: 3
(Xclass-CodeIgniter) Libreria en php para interaccion con otros websites

CodeIgniter es un liviano framework para php , que cuenta con bastantes librerias/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”,”ultimos comentarios de una persona”..
Xclass nos facilita la tarea , solo ingresando 3 parametros:
-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 tambien sirve para cadenas comunes a las que necesitemos extraer una parte)
Instalando Xclass en CodeIgniter:

http://xerotutos.vacau.com/Xclass.zip

Instalar una libreria 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:
Ver original
  1. <?php
  2. class Xero extends Controller{
  3. function Xero()
  4. {
  5. parent::Controller();
  6. }
  7. function index()
  8. {
  9. $this->load->library(“xclass”);
  10. echo $this->xclass->xas(‘http://www.cristalab.com/usuario/88793-xer0s’,'<div class=”profile-info”>’,'<div class=”pie”></div>’);
  11. }
  12. }
  13. ?>

Simplemente es un controlador normal , llamamos a la libreria “Xclass” luego a la funcion con 3 parametros:
Código PHP:
Ver original
  1. $this->load->library(“xclass”);
  2. $this->xclass->xas($target’,'$primera_cadena’,'$segunda_cadena’);
El primer parametro es la url, el segundo es la primera aparición donde empezaremos a extraer el codigo y el tercer parametro indica hasta donde seguira extrayendo.
La parte que nos interesa:
Código HTML:
Ver original
  1. <div class=”profile-info“>
  2. <p>
  3. <big><strong>Xer0s</strong> es <em>Usuario</em> de Cristalab</big><br />
  4. <a href=”http://xerotutos.vacau.com” target=”_userwww“>http://xerotutos.vacau.com</a><br />
  5. <span>Con <strong class=”relevante“>63</strong> de
  6. <strong><acronym title=”Nivel de participaci&oacute;n en la comunidad. Lo obtienes posteando, con tutoriales, tips, etc.“>clabLevel</acronym></strong></span><br />
  7. Desde el 05 Ene 2010 </p>
  8. <p></p>
  9. </div>
  10. <ul id=”user-stats“>
  11. <li class=”mssages-q“><a href=”http://foros.cristalab.com/search.php?search_author=Xer0s“>21 mensajes</a></li>
  12. <li>0 tutoriales</li>
  13. <li>0 ejemplos</li>
  14. <li>1 tips</li>
  15. <li>0 art&iacute;culos</li>
  16. </ul>
  17. <div class=”pie“></div>
  18. (Extraido del  ”Codigo fuente de mi perfil de cristalab”)
Mi perfil:(primer parametro)

http://www.cristalab.com/usuario/88793-xer0s

El segundo parametro parametro:

<divclass=”profile-info“>

El tercer Parametro:

<div class=”pie“></div>

Dando como resultado: http://localhost/index.php/xero/

Asi de simple ha sido extraer esa informacion , solo usando el parametro que extraemos viendo el html que deseamos extraer.Tambien es aconsejable leer sobre expreciones regulares.