Follow By Email

miércoles, 28 de noviembre de 2012

Insertar indices económicos con PHP y Ajax (tipo webservice)

   Estoy desarrollando un sistema de gestión empresarial, el cuál necesitaba integrar índices económicos dentro de la aplicación en PHP. Busqué distintos webservices que entregarán dicha información pero en Chile escasean. Entonces encontre un tutorial de como tomar las tag de una página web que contiene los índices y poder tomarlos y trabajarlos en mi web.
   El link es este:

http://www.maskin.cl/programacion/insertar-indices-economicos-en-tu-sitio


<?php //Dolar Observado!
$url = "http://www.terra.cl/valores/";
$palabra = "DOLAR OBSERVADO";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para solo lectura; ubica el apuntador de archivo al comienzo del mismo.
while ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>


<?php //UF
$url = "http://www.terra.cl/valores/";
$palabra = "UF :";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para s�lo lectura; ubica el apuntador de archivo al comienzo del mismo.
while ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>


<?php //UTM
$url = "http://www.terra.cl/valores/";
$palabra = "UTM :";
$x = 1; //evita tags <! (invisibles)

$fd = @fopen($url, "r"); //abre la url y comienza desde el principio para solo lectura. Apertura para s�lo lectura; ubica el apuntador de archivo al comienzo del mismo.
while ($line=@fgets($fd,1000)){
$pos = strpos ($line, $palabra);
if ($pos){
$glosa = " ";
$line2=fgets($fd,1000);
echo strip_tags($glosa.trim($line2));
}
}
@fclose ($fd);
?>


   Sin embargo, al integrarlo este demora mucho en cargar, quedando muy lenta mi web. Entonces encontré una solución bastante práctica y es integrar código jQuery Ajax para que al momento de tener la página cargada completamente (DOM), esta llame a un archivo de PHP que contengra estos códigos, y muestre los datos una vez ya cargada la página completa.

ÍndicesEconómicos.php


<table class="table">
    <tr>
        <td><b>Dolar</b></td>
        <td>
            <?php
            //Dolar Observado!
            $url = "http://www.terra.cl/valores/";
            $palabra = "DOLAR OBSERVADO";
            $x = 1; //evita tags <! (invisibles)

            $fd = @fopen($url, "r");
            while ($line = @fgets($fd, 1000)) {
                $pos = strpos($line, $palabra);
                if ($pos) {
                    $glosa = " ";
                    $line2 = fgets($fd, 1000);
                    echo strip_tags($glosa . trim($line2));
                }
            }
            @fclose($fd);
            ?>
        </td>
    </tr>
    <tr>
        <td><b>UF</b></td><td>

            <?php
            //UF
            $url = "http://www.terra.cl/valores/";
            $palabra = "UF :";
            $x = 1; //evita tags <! (invisibles)

            $fd = @fopen($url, "r");
            while ($line = @fgets($fd, 1000)) {
                $pos = strpos($line, $palabra);
                if ($pos) {
                    $glosa = " ";
                    $line2 = fgets($fd, 1000);
                    echo strip_tags($glosa . trim($line2));
                }
            }
            @fclose($fd);
            ?>
        </td>
    <tr>
        <td><b>UTM</b></td><td>
            <?php
            //UTM
            $url = "http://www.terra.cl/valores/";
            $palabra = "UTM :";
            $x = 1; //evita tags <! (invisibles)

            $fd = @fopen($url, "r");
            while ($line = @fgets($fd, 1000)) {
                $pos = strpos($line, $palabra);
                if ($pos) {
                    $glosa = " ";
                    $line2 = fgets($fd, 1000);
                    echo strip_tags($glosa . trim($line2));
                }
            }
            @fclose($fd);
            ?>
        </td>
    </tr>
</table>


index.php

<script type="text/javascript" src="js/jquery-1.8.1.min.js"></script>
<script>
            $(document).ready(function(){ 
           indices()
            });
            
             function indices()
            {

                $.ajax({
                    async:true,
                    dataType: "html",
                    contentType: "application/x-www-form-urlencoded",
                    url: "indicesEconomicos.php",
                    beforeSend:function(){
                        var x=$('#indicesEconomicos');
                        x.html("<center><img width='30px' src='img/tree.gif' /></center>");
                   
                    },
                    success:function(datos){
                        $('#indicesEconomicos').html(datos);
                    },
                    timeout:4000,
                    error:function(){
                        $('#indicesEconomicos').html('Problemas con el servidor');
                    },
}); return false; } </script> <div id="indicesEconomicos"> </div>

No hay comentarios:

Publicar un comentario