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($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_POST, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$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(" ", "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