Capturar datos de otra web en PHP
A veces es necesario extraer datos “públicos” desde alguna fuente en internet, en PHP, lo podemos hacer con un GET y una que otra expresión regular.
Como en todo, hay varias formas, pero creo que la más sencilla es utilizar la función file_get_contents para realizar un simple GET y obtener el contenido del sitio web.
La función file_get_contents soporta varios wrappers, desde un archivo local (ejemplo /tmp/my-file) a una url http, pasando por ftp, scp, etc. (más información sobre wrappers).
Vamos a extraer la UF desde el sitio www.terra.cl/valores/
Al analizar el código fuente del sitio, podemos ver que la UF se encuentra en el siguiente trozo de código
<tr bgcolor="EFEBE7">
<td align="right" class="texto2">UF : </td>
<td class="texto2"><b>22.213,43</b></td>
</tr>
Solo nos queda realizar una expresión regular que sea capaz de representar al patrón del trozo de código y la sección que deseamos capturar.
<?php
// Example by deerme.org
$data = file_get_contents("http://www.terra.cl/valores/");
if ( preg_match('|<td align="right" class="texto2">UF : </td>\s+<td class="texto2"><b>(.*?)</b></td>|is' , $data , $cap ) )
{
echo "UF ".$cap[1];
}
Si ejecutamos nuestro script (vía web o por consola) obtenemos la UF de hoy a través de Terra xD.


Articulos
Tips
This site uses valid HTML and CSS.
If you like what we do, please don't hestitate and subscribe to our