Posts tagged php

Status Correios

Meu amigo precisava de uma ajuda para recuperar os status que o Correios gera para as encomendas.

Lembrei que havia feito isso na última empresa que trabalhei e agora resolvi compartilhar.

Não é 100% garantido, pois eu leio via REGEX o source da página ok?

Após recuperar o source HTML da página do Correios via cURL ou file_get_contents, utilizo a seguinte função para tratar o conteúdo e retornar um array contendo os dados do Correios.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
 /**
 * Retorna todos os status do Correios para ID enviado
 *
 * @param  string $id_correios ID do Correios
 * @return array  $array_retorno
 */
function status_correios( $id_correios ) {
 
    $conteudo = file_get_contents('http://websro.correios.com.br/sro_bin/txect01$.QueryList?P_LINGUA=001&P_TIPO=001&P_COD_UNI='.$id_correios);
 
    if ( empty($conteudo) ) return false;
 
    $array_retorno = array();
 
    preg_match_all( '/<tr>\s*<td[^>]*>(.*)<\/td>\s*<\/tr>/' , $conteudo , $array_regex );
 
    if ( !is_array($array_regex) || count($array_regex) <= 0 ) return false;
 
    foreach ( $array_regex[ 1 ] as $key => $linha ) {
 
        $foo = explode( '</td><td>' , $linha );
 
        if ( strip_tags( $foo[ 2 ] ) ) {
            $array_retorno[] = array( strip_tags( $foo[ 0 ] ), strip_tags( $foo[ 1 ] ), strip_tags( $foo[ 2 ] ) );
        }  
    }
 
    return $array_retorno;
}
 
?>

Status Correios PHP Baixar Código Fonte Completo

ps.: tentei colocar o código fonte completo aqui mas foi humanamente impossível.

Utilizei esse método pois tratava o array com os dados e armazenava em um banco de dados. Caso queria apenas exibir o João Vagner me mostrou esse link.

Dúvidas? Só enviar um email ou perguntar nos comentários.

PHP-SP

Programador PHP clique aqui para entender e participar da comunidade de SP.

Reclamar é fácil! Está na hora de contribuir….