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

Função Array_Search não está retornando número da chave.


Lucas Gustavo Stefaniak

Pergunta

Olá,

Estou com um problema com o comando array_search, no meu php, ele esta puxando dados de um outro site, no meu array quando dou o comando print_r ele aparece todas as arrays com dados certinho. Só que essas arrays não são fixas, tem cnpj que muda a posição dos dados dentro da array. Tentei localizar os dados e trazer qual o número da array certa para salvar os dados, mas ele não aparece nada no comando que coloquei na variavel $chave (já tentei echo, print, print_r) e não aparece em qual chave que esta o que estou procurando. Obs.: Zerei o CNPJ e o nome do site, mas quando esta com os dados certos ele puxa as informações do site.

    $cnpj = "000000000000000";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch,CURLOPT_URL,"http://xxxxxxxxxx.xxxxx/".$cnpj);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit/525.13 (KHTML, like Gecko) Chrome/0.A.B.C Safari/525.13");
    $data = utf8_encode(curl_exec($ch));
    $texto = explode("<td>",$data);
    
    $chave = array_search('Natureza Jurídica',$texto);
    
    echo $chave;
    print_r ($texto);
 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Pelo que eu entendi, você está recebendo assim

array (size=6)
  0 => string '1' (length=1)
  1 => string 'Cem Porcento Musical Ind e Com Ltda' (length=35)
  2 => string '03301914/0001-80' (length=16)

Mas você queria mais descritivo, assim
 

array (size=6)
  'codp' => string '1' (length=1)
  'pessoa' => string 'Cem Porcento Musical Ind e Com Ltda' (length=35)
  'cnpj' => string '03301914/0001-80' (length=16)

Eu acredito que não seja possível pedir para cURL receber no formato descritivo, mesmo assim, é possível usar a função de busca no array, assim

 

$chave = array_search('03301914/0001-80',$array);
    

Se fosse descritivo, $chave retornaria 'cnpj', em se tratando de número, ele vai retornar '2'.

Mas se você tem o número da chave e quer o valor dela, a gramática é outra:

 

$cnpj=$array[2];

 

Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites

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
      152k
    • Posts
      651,8k
×
×
  • Criar Novo...