Ir para conteúdo
Fórum Script Brasil
  • 0

Calculo frete 0,00


Evandro Araujo

Pergunta

php-pt@yahoogrupos.com.br

listaphp@googlegroups.com

Pessoal, estou usando este script mas esta saindo zerado o valor do frete: mas porem se uso a url

http://www.correios.com.br/encomendas/prec...mp;resposta=xml,

aparece o xml.

<?php



         function getSEDEX($cepOrigem = "88818-520", $cepDestino = "88818-400", $peso = 0.5)
             {
                 $urlCorreios = "http://www.correios.com.br/encomendas/precos/calculo.cfm?resposta=xml&servico=40010&cepOrigem=%s&cepDestino=%s&peso=%s";



              $urlCorreios = sprintf($urlCorreios, $cepOrigem, $cepDestino, $peso);



              //carregando url dos correios...

              //caso o seu servidor não permita o uso da função file para url's externas

              //recomenda-se a utilização de CURL - [url=http://www.php.net/manual/en/ref.curl.php]http://www.php.net/manual/en/ref.curl.php[/url]

              $carrega = file($urlCorreios) or die("Problemas em obter os dados dos correios");

                //tratando string xml obtida. Removendo espaços e linhas para facilitar...

              $conteudo = trim(str_replace(array("\n", chr(13)), "", implode($carrega, "")));



              if(strlen($conteudo) <1) return false;



              //informações de origem tratadas com RegExp...

              preg_match_all("/<uf_origem>(.+)<\/uf_origem>/", $conteudo, $uf_origem);

              preg_match_all("/<local_origem>(.+)<\/local_origem>/", $conteudo, $local_origem);

              preg_match_all("/<cep_origem>(.+)<\/cep_origem>/", $conteudo, $cep_origem);



              //informações de destino tratadas com RegExp...

              preg_match_all("/<uf_destino>(.+)<\/uf_destino>/", $conteudo, $uf_destino);

              preg_match_all("/<local_destino>(.+)<\/local_destino>/", $conteudo, $local_destino);

              preg_match_all("/<cep_destino>(.+)<\/cep_destino>/", $conteudo, $cep_destino);



              //informações sobre a encomenda tratadas com RegExp...

              preg_match_all("/<peso>(.+)<\/peso>/", $conteudo, $peso);

              preg_match_all("/<preco_postal>(.+)<\/preco_postal>/", $conteudo, $preco_postal);



              //objeto contendo as informações sobre o frete...

              $sedex = array(

                  "uf_origem" => $uf_origem[1][0],

                  "local_origem" => $local_origem[1][0],

                  "cep_origem" => $cep_origem[1][0],

                  "uf_destino" => $uf_destino[1][0],
                    "local_destino" => $local_destino[1][0],

                  "cep_destino" => $cep_destino[1][0],

                  "peso" => floatval($peso[1][0]),

                  "valor" => floatval($preco_postal[1][0])

              );





              return $sedex;

          }



         //informações processadas. Cep de Origem, Cep destino, Peso...

          $sedex = getSEDEX("88818-520", "88818-400", 0.750);



          //enfim exibimos o valor de nossa encomenda...

          echo "R$ " . number_format($sedex["valor"], 2, ",", ","); //valor do sedex, já formatado em reais...



      ?>

mas quando utilizo o script acima, aparece R$ 0,00

Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...