LucianoCharles2017

viacep-curl

Oct 8th, 2018
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 1.98 KB | None | 0 0
  1. <?php
  2.  
  3. $seuCepAqui = '';
  4.  
  5. $curl = curl_init();
  6.  
  7. curl_setopt_array($curl, array(
  8.     CURLOPT_URL => "http://viacep.com.br/ws/{$seuCepAqui}/json/",
  9.     CURLOPT_RETURNTRANSFER => true,
  10.     CURLOPT_ENCODING => "",
  11.     CURLOPT_MAXREDIRS => 10,
  12.     CURLOPT_TIMEOUT => 30,
  13.     CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  14.     CURLOPT_CUSTOMREQUEST => "GET",
  15.     CURLOPT_HTTPHEADER => array(
  16.         "Cache-Control: no-cache",
  17.     ),
  18. ));
  19.  
  20. $response = curl_exec($curl);
  21. $err = curl_error($curl);
  22.  
  23. curl_close($curl);
  24.  
  25. if ($err) {
  26.     /**
  27.      * Aqui vem os erros caso aconteça
  28.      */
  29.     echo "cURL Error #:" . $err;
  30. } else {
  31.     /**
  32.      * Aqui os retornos caso não haja erros
  33.      */
  34.     /**
  35.      * Vamos debugar o json retornado e armazenado na variavel $response
  36.      */
  37.     echo "Retorno em JSON";
  38.     echo "<br/>";
  39.     echo $response;
  40.  
  41.     echo "<hr>";
  42.  
  43.     /*
  44.      * aqui eu transformo o json retornado em array php
  45.      * passando o segundo parametro como TRUE no json_decode
  46.      * eu transformo em array associativo
  47.      */
  48.  
  49.     $retorno = json_decode($response, true);
  50.     echo "Retorno em ARRAY ASSOCIATIVO";
  51.     var_dump($retorno);
  52.  
  53.     echo "<hr>";
  54.  
  55.     /*
  56.      * agora posso pegar os dados com php bem simples
  57.      */
  58.  
  59.     echo "CEP: " . $retorno['cep'];
  60.     echo "<br/>";
  61.     echo "LOGRADOURO: " . $retorno['logradouro'];
  62.  
  63.     echo "<hr>";
  64.  
  65.     /*
  66.      * Caso queira trabalhar com array de objetos
  67.      * basta NÂO passar o segundo parametro no json_decode
  68.      */
  69.  
  70.     $retorno = json_decode($response);
  71.     echo "Retorno em ARRAY DE OBJETOS";
  72.     var_dump($retorno);
  73.  
  74.     echo "<hr>";
  75.  
  76.     /*
  77.      * agora posso pegar os dados com php bem em forma de objeto
  78.      */
  79.  
  80.     echo "CEP: " . $retorno->cep;
  81.     echo "<br/>";
  82.     echo "LOGRADOURO: " . $retorno->logradouro;
  83.  
  84.     /**
  85.      * como esse retorno veio apenas um array,
  86.      * eu consigo extrai-lo da forma que fiz acima,
  87.      * sem precisar fazer um foreach
  88.      */
  89. }
Advertisement
Add Comment
Please, Sign In to add comment