Error php to get data from a certain area of a site

1

Good night I have a code in php to get the data of a certain page, I use the initial model and it works I'm trying to use it in another site like this one in the model but it gives an error:

  

E_NOTICE: type 8 - Undefined offset: 3 - at line 68

     

E_NOTICE: type 8 - Undefined offset: 2 - at line 68

     

E_NOTICE: type 8 - Undefined offset: 1 - at line 68

     

E_NOTICE: type 8 - Undefined offset: 0 - at line 68

Below is the code I have no idea how to solve, thank you.

<?php class cotacoes { public function pegaValores() {

    if(!$fp=fopen("http://www.valor.com.br/valor-data/moedas" ,"r" )) { 
        echo "Erro ao abrir a página de cotação" ; 
        return(0);
    } 

    //variáveis de classe
    $arrayValores = array();

    //inicio do processamento - ler página
    $uolHTML = "";
    while(!feof($fp)) { // leia o conteúdo da página, uma linha por vez, armazene na variável uolHTML
        $uolHTML .= fgets($fp); 
    }
    fclose($fp);

    //array contendo as expressoes regulares que indicam cada moeda
    $patterns = array(
        "dolarComercial" => "/table-data valor_tabela.*Dólar Comercial/",
        "dolarTurismo"   => "/table-data valor_tabela.*Dólar Turismo/"

    );


    $uolHTML = preg_replace("/id=.block-valor_data_blocks-dolar-euro-full./", "", $uolHTML); 
    $uolHTML = preg_replace("/<tr>/", "\n<tr>", $uolHTML); //acrescentar quebra de linha
    $uolHTML = preg_replace("/<td>/", "\n<td>", $uolHTML); //acrescentar quebra de linha


    //loop para cada moeda
    while( list($moeda, $pattern) = each($patterns) ) {

        $arrayHTML = explode("\n", $uolHTML);

        //loop por cada linha da pagina HTML
        while ( list($indice, $linha) = each($arrayHTML) ) {

            //se bloco HTML casa com a pattern da moeda do looping atual...
            if (preg_match($pattern, $linha)) {

                //print "Encontrei '$pattern' em: $linha\n\n";

                //ler proxima linha
                $linha = $arrayHTML[++$indice]; 

                //pegar cotacao compra
                preg_match("/<td>(.*)<\/td>/", $linha, $valor);
                $compra = substr($valor[1],0,4);

                //ler proxima linha
                $linha = $arrayHTML[++$indice]; 

                //pegar cotacao venda
                preg_match("/<td>(.*)<\/td>/", $linha, $valor);
                $venda = substr($valor[1],0,4);

                //atribuindo valores ao array de retorno
                array_push($arrayValores, $compra, $venda);
            }

        } // fim while

    } // fim while

    return($arrayValores);

} } $uol = new cotacoes(); list($dolarComercialCompra, $dolarComercialVenda, $dolarTurismoCompra, $dolarTurismoVenda) = $uol->pegaValores(); print ($dolarComercialCompra); ?> 

The line with the error in question would be

  

list ($ dolarComercialCompra, $ dolarComercialVenda, $ dolarTurismoCompra, $ dolarTurismoVenda) = $ uol- > pegaValores ();

If someone knows something

    
asked by anonymous 19.03.2016 / 04:18

0 answers