Ver Mensaje Individual
  #1 (permalink)  
Antiguo 04/11/2015, 12:09
-thor-
 
Fecha de Ingreso: febrero-2006
Mensajes: 446
Antigüedad: 18 años, 9 meses
Puntos: 3
duda con curl en php

hola, buscando en internet encontre este codigo que me permite obtener la uf desde la pagina www.sii.cl, y solo es necesario enviar el año y dia. Mi problema es cuando creo un

objeto de la clase UF en mi pagina para desplegar la uf del dia. Cuando la pagina sii.cl esta sin problemas funciona todo bien y se puede visualizar la uf diaria, pero si la

pagina www.sii.cl esta caida en mi pagina se despliega el mensaje die("Error obteniendo datos via cURL"); que es parte de la clase y no se puede realizar ninguna operacion mas

en mi web.

Mi consulta es si existe alguna forma de validar curl cuando este caida la pagina http://www.sii.cl para que la mia siga funcionando y no se caiga.

Gracias
Código PHP:

class Uf {

    
/**
     *
     * @var private
     */
    
private $url;

private function 
getFromSII($anyo) {
        
$this->anyo $anyo;
        
$this->url "http://www.sii.cl/pagina/valores/uf/uf$anyo.htm";
        
$ch curl_init("$this->url");
        
curl_setopt($chCURLOPT_HEADER1);
        
curl_setopt($chCURLOPT_POST0);
        
curl_setopt($chCURLOPT_RETURNTRANSFER1);
        
$output curl_exec($ch) or die("Error obteniendo datos via cURL");
        
curl_close($ch);
        
$output explode("<table"$output);
        
$output explode("<tr>"$output[1]);
        
$arr_dia = array();
        for (
$i 2$i count($output); $i++) {
            
$tmp explode("<th style='text-align:center;'>"$output[$i]);
            
$tmp explode("</th>"$tmp[1]);
            
$tmp2 explode("<td style='text-align:right;'>"$output[$i]);
            for (
$o 0$o count($tmp2); $o++) { //aqui es para limpiar los datos
                
$tmp2[$o] = str_replace("\n   """str_replace("</td>"""$tmp2[$o]));
                
$tmp2[$o] = str_replace("\n"""$tmp2[$o]);
                
$tmp2[$o] = str_replace("</tr>"""$tmp2[$o]);
                
$tmp2[$o] = str_replace("&nbsp;""0"$tmp2[$o]);
                
$tmp2[$o] = str_replace("."""$tmp2[$o]);
                
$tmp2[$o] = str_replace(","$this->separador_decimal$tmp2[$o]); //aqui cambiamos el separador decimal
                
$tmp2[$o] = str_replace("<th style='text-align:center;'>"""$tmp2[$o]);
                
$tmp2[$o] = str_replace("</th>"""$tmp2[$o]);
            }
            
$arr_dia[$tmp[0]] = $tmp2;
        }
        
//caso especial 31-12
        
$tmp $arr_dia[31][12];
        
$tmp explode("\r"$tmp);
        
$arr_dia[31][12] = $tmp[0];
        
$this->data $arr_dia;
    } 
en mi pagina la llamo de esta forma para desplegar la uf diaria y funciona todo bien cuando la pagina del sii.cl no esta caida.

Código PHP:
include("UF.php");
$uf = new Uf(2012); 
echo 
$uf->getDate('01-01-2012')//TRAERIA LA UF DEL DIA 1 DE ENERO


//otras operaciones del formulario de ingreso