Ejemplo n.º 1
0
function parseHtmlCNPJ($html)
{
    // respostas que interessam
    $campos = array('NÚMERO DE INSCRIÇÃO', 'DATA DE ABERTURA', 'NOME EMPRESARIAL', 'TÍTULO DO ESTABELECIMENTO (NOME DE FANTASIA)', 'CÓDIGO E DESCRIÇÃO DA ATIVIDADE ECONÔMICA PRINCIPAL', 'CÓDIGO E DESCRIÇÃO DAS ATIVIDADES ECONÔMICAS SECUNDÁRIAS', 'CÓDIGO E DESCRIÇÃO DA NATUREZA JURÍDICA', 'LOGRADOURO', 'NÚMERO', 'COMPLEMENTO', 'CEP', 'BAIRRO/DISTRITO', 'MUNICÍPIO', 'UF', 'ENDEREÇO ELETRÔNICO', 'TELEFONE', 'ENTE FEDERATIVO RESPONSÁVEL (EFR)', 'SITUAÇÃO CADASTRAL', 'DATA DA SITUAÇÃO CADASTRAL', 'MOTIVO DE SITUAÇÃO CADASTRAL', 'SITUAÇÃO ESPECIAL', 'DATA DA SITUAÇÃO ESPECIAL');
    // caracteres que devem ser eliminados da resposta
    $caract_especiais = array(chr(9), chr(10), chr(13), '&nbsp;', '</b>', '  ', '<b>MATRIZ<br>', '<b>FILIAL<br>');
    // prepara a resposta para extrair os dados
    $html = str_replace('<br><b>', '<b>', str_replace($caract_especiais, '', strip_tags($html, '<b><br>')));
    $html3 = $html;
    // faz a extração
    for ($i = 0; $i < count($campos); $i++) {
        $html2 = strstr($html, utf8_decode($campos[$i]));
        $resultado[] = trim(pega_o_que_interessa(utf8_decode($campos[$i]) . '<b>', '<br>', $html2));
        $html = $html2;
    }
    // extrai os CNAEs secundarios , quando forem mais de um
    if (strstr($resultado[5], '<b>')) {
        $cnae_secundarios = explode('<b>', $resultado[5]);
        $resultado[5] = $cnae_secundarios;
        unset($cnae_secundarios);
    }
    // devolve STATUS da consulta correto
    if (!$resultado[0]) {
        if (strstr($html3, utf8_decode('O número do CNPJ não é válido'))) {
            $resultado['status'] = 'CNPJ incorreto ou não existe';
        } else {
            $resultado['status'] = 'Imagem digitada incorretamente';
        }
    } else {
        $resultado['status'] = 'OK';
    }
    return $resultado;
}
function parseHtmlCPF($html)
{
    // respostas que interessam
    $campos = array('No do CPF:', 'Nome da Pessoa Física:', 'Data de Nascimento:', 'Situação Cadastral:', 'Data da Inscrição:');
    // caracteres que devem ser eliminados da resposta
    $caract_especiais = array(chr(9), chr(10), chr(13), '&nbsp;', '  ');
    // prepara a resposta para extrair os dados
    $html = str_replace('<br /><br />', '<br />', str_replace($caract_especiais, '', strip_tags($html, '<b><br>')));
    // para utilizar na hora de devolver o status da consulta
    $html3 = $html;
    // faz a extração
    for ($i = 0; $i < count($campos); $i++) {
        $html2 = strstr($html, utf8_decode($campos[$i]));
        $resultado[] = trim(pega_o_que_interessa(utf8_decode($campos[$i]), '<br', $html2));
        $html = $html2;
    }
    // devolve STATUS da consulta correto
    if (!$resultado[0]) {
        if (strstr($html3, utf8_decode('CPF incorreto'))) {
            $resultado['status'] = 'CPF incorreto';
        } else {
            if (strstr($html3, utf8_decode('não existe em nossa base de dados'))) {
                $resultado['status'] = 'CPF não existe';
            } else {
                if (strstr($html3, utf8_decode('Os caracteres da imagem não foram preenchidos corretamente'))) {
                    $resultado['status'] = 'Imagem digitada incorretamente';
                } else {
                    $resultado['status'] = 'Receita não responde';
                }
            }
        }
    } else {
        $resultado['status'] = 'OK';
    }
    return $resultado;
}