Fazer Script PHP de Rastreamento Correios com File_Get_Contents

O Site dos Correios já possui uma página de rastreamento de objetos, onde você só precisa digitar o código do objeto para poder visualizar todo o histórico do mesmo. Mas, e se você quisesse colocar no teu site ou sistema um recurso onde o usuário pudesse cosultar o histórico de um objeto sem precisar acessar o site dos correios? Como você faria? Neste artigo vou te mostrar exatamente como fazer Script PHP de Rastreamento Correios com File_Get_Contents

Fazer Script PHP de Rastreamento Correios com File_Get_Contents

Função PHP File_Get_Contents

Antes de ver o script que pega o histórico de um dado objeto dos correios, vamos falar um pouco sobre a função file get contentes do PHP. Essa função permite você efetuar a leitura de um arquivo e retorna o conteúdo do mesmo no formato string (texto).

Por exemplo, se você tiver um arquivo de texto chamado Jesus.txt com o seguinte texto “Jesus é Filho de Deus”, e quiser obter este texto, poderia usar a função file_get_contents da seguinte forma:

<?php

	$file = "Jesus.txt";
	
	$retorno = file_get_contents($file);
	
	echo $retorno;
	
	
?>

A saída será “Jesus é filho de Deus.”

File_Get_Contents possui ainda outros parâmetros opcionais, que são:

Primeiro Parâmetro (obrigatório): caminho do arquivo ou url do da página web

Segundo Parâmetro (opcional): Define se é para buscar no diretório include. Nas versões anteriores ao PHP 6, passe o valor booleano true, já a partir do PHP 6, passe a constante: FILE_USE_INCLUDE_PATH ou as demais flags que citarei a seguir.

Ainda como Segundo Parâmetro, você também pode usar as flags FILE_TEXT ou FILE_BINARY para definir como a leitura do arquivo será feita. Você deve usar o operador OR (|) para unir duas flags, por exemplo: file_get_contents(“Jesus.txt”, FILE_USE_INCLUDE_PATH | FILE_TEXT). Não use FILE_TEXT E FILE_BINARY ao mesmo tempo, até porque não faz sentido usar as duas. Note que estas flags só são aceitas a partir do PHP6, se estiver usando uma versão anterior, passe apenas o valor “true” como segundo parâmetro, caso queria que a função busque o arquivo na pasta includes definida pelo servidor web.

Terceiro Parâmetro (opcional): Um recurso de contexto válido, criado com stream_context_create(). Se não precisar, pode passar NULL como parâmetro.

Quarto Parâmetro (opcional): Inteiro que define o ponto onde a leitura deve começar. Por exemplo, se você quer obter um texto a partir do centésimo caractere, poderia passar o valor 100 neste parâmetro. O Padrão é iniciar a leitura desde o primeiro caractere.

Quinto Parâmetro (opcional): Inteiro que define o comprimento máximo do retorno. Por exemplo, se você quer somente duzentos caracteres do arquivo lido, passa o valor 200 neste parâmetro. O padrão é ler o arquivo até o fim.

Fazer Script PHP de Rastreamento Correios com File_Get_Contents

O barato da função file_get_contents é que além da leitura de arquivos locais (hospedados no mesmo servidor web), você também pode obter o conteúdo de páginas web de qualquer website.

Abaixo, mostro um exemplo onde obtenho o retorno do site dos correio. Veja:


function anderson_makiyama_rastreamento_correios($codigo){

	$url = 'http://websro.correios.com.br/sro_bin/txect01$.Inexistente?P_LINGUA=001&P_TIPO=002&P_COD_LIS=' . $codigo;

	$retorno = file_get_contents($url);
	

	preg_match('/<table  border cellpadding=1 hspace=10>.*<\/TABLE>/s',$retorno,$tabela);

   if(count($tabela) == 1){
	   
		return $tabela[0];  
   
   }else{
	   
		return "ojbeto não encontrado";   
   }

}


echo anderson_makiyama_rastreamento_correios('CodigoAquiBR');

No script acima, o preg_match foi utilizado para obter apenas o conteúdo existente na tabela. O retorno foi o seguinte:

Fazer Script PHP Rastreamento Correios com File_Get_Contents

Conclusão

Com esta ideia, creio que você já vai conseguir adicionar o recurso de rastreio de objetos dos correios em teu site ou sistema web. De lambuja você também aprendeu como usar a função file_get_contents do PHP. Em todo caso, se ficou alguma dúvida, deixei teu comentário que tentarei te ajudar. Finalizando, embora eu sugeri a função file_get_contents, caso teu servidor web não ofereça suporte para ela, uma alternativa é usar cUrl.

Até o próximo artigo aqui no blog Fazer Site!

5 respostas a Fazer Script PHP de Rastreamento Correios com File_Get_Contents

  • eu tava procurando isso e o artigo ajudou muito, obrigada 🙂

  • Interessante, mas como pegar somente o último resultado (primeira linha da tabela), mais especificamente ainda, a célula onde consta a situação da entrega, que é o que realmente interessa?

  • Parabéns pelo post, muito bom, simples e funcional

  • eu Joaquim , mandei um sedex dia 29-06 2015 + ou – por volta das 13:00 h para pinitenciaria Balbinos 2 CEP 16640-000 Rodovia de acesso Aarssirio Rigotto Km 2,5 são paulo S.P. para João gostaria de saber O numero do tikete e se foi entregue.

    antecipadamente agradeço.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *