Evandro Araujo Postado Setembro 23, 2008 Denunciar Share Postado Setembro 23, 2008 php-pt@yahoogrupos.com.brlistaphp@googlegroups.comPessoal, 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 Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 ESerra Postado Setembro 23, 2008 Denunciar Share Postado Setembro 23, 2008 Acabei de copiar/colar o seu script o valor foi calculado corretamente... Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Evandro Araujo Postado Setembro 23, 2008 Autor Denunciar Share Postado Setembro 23, 2008 sERA QUE PODE SER ALGUMA CONFIGURACAO DO MEU EASY PHP Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
Evandro Araujo
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.
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.