<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.curl.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'pt_BR',
  ),
  'this' => 
  array (
    0 => 'function.curl-getinfo.php',
    1 => 'curl_getinfo',
    2 => 'Obt&eacute;m informa&ccedil;&atilde;o sobre uma transfer&ecirc;ncia espec&iacute;fica',
  ),
  'up' => 
  array (
    0 => 'ref.curl.php',
    1 => 'Fun&ccedil;&otilde;es cURL',
  ),
  'prev' => 
  array (
    0 => 'function.curl-exec.php',
    1 => 'curl_exec',
  ),
  'next' => 
  array (
    0 => 'function.curl-init.php',
    1 => 'curl_init',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'pt_BR',
    'path' => 'reference/curl/functions/curl-getinfo.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.curl-getinfo" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">curl_getinfo</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.4, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">curl_getinfo</span> &mdash; <span class="dc-title">Obtém informação sobre uma transferência específica</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.curl-getinfo-description">
  <h3 class="title">Descrição</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>curl_getinfo</strong></span>(<span class="methodparam"><span class="type"><a href="class.curlhandle.php" class="type CurlHandle">CurlHandle</a></span> <code class="parameter">$handle</code></span>, <span class="methodparam"><span class="type"><span class="type"><a href="language.types.null.php" class="type null">?</a></span><span class="type"><a href="language.types.integer.php" class="type int">int</a></span></span> <code class="parameter">$option</code><span class="initializer"> = <strong><code><a href="reserved.constants.php#constant.null">null</a></code></strong></span></span>): <span class="type"><a href="language.types.mixed.php" class="type mixed">mixed</a></span></div>

  <p class="para rdfs-comment">
   Obtém informação sobre a última transferência.
  </p>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.curl-getinfo-parameters">
  <h3 class="title">Parâmetros</h3>
  <p class="para">
   <dl>
    <dt><code class="parameter">handle</code>
</dt><dd><p class="para">Um manipulador cURL retornado por
<span class="function"><a href="function.curl-init.php" class="function">curl_init()</a></span>.</p></dd>
    
     <dt><code class="parameter">option</code></dt>
     <dd>
      <p class="para">
       Uma das constantes <strong><code><a href="curl.constants.php#constant.curlinfo-text">CURLINFO_<span class="replaceable">*</span></a></code></strong>.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.curl-getinfo-returnvalues">
  <h3 class="title">Valor Retornado</h3>
  <p class="para">
   Se o parâmetro <code class="parameter">option</code> for fornecido, retorna seu valor.
   Caso contrário, retorna um array associativo com os elementos a seguir
   (que correspondem a <code class="parameter">option</code>), ou <strong><code><a href="reserved.constants.php#constant.false">false</a></code></strong> em caso de falha:
   <ul class="itemizedlist">
    <li class="listitem">
     <span class="simpara">
      &quot;url&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;content_type&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;http_code&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;header_size&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;request_size&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;filetime&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;ssl_verify_result&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;redirect_count&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;total_time&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;namelookup_time&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;connect_time&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;pretransfer_time&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;size_upload&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;size_download&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;speed_download&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;speed_upload&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;download_content_length&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;upload_content_length&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;starttransfer_time&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;redirect_time&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;certinfo&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;primary_ip&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;primary_port&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;local_ip&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;local_port&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;redirect_url&quot;
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;request_header&quot; (Este somente será definido se a opção <strong><code><a href="curl.constants.php#constant.curlinfo-header-out">CURLINFO_HEADER_OUT</a></code></strong>
      for configurada por uma chamada prévia a <span class="function"><a href="function.curl-setopt.php" class="function">curl_setopt()</a></span>)
     </span>
    </li>
    <li class="listitem">
     <span class="simpara">
      &quot;posttransfer_time_us&quot; (Disponível a partir do PHP 8.4.0 e cURL 8.10.0)
     </span>
    </li>
   </ul>
   Observe que dados privados não são incluídos no array associativo e devem ser obtidos individualmente com a opção <strong><code><a href="curl.constants.php#constant.curlinfo-private">CURLINFO_PRIVATE</a></code></strong>.
  </p>
 </div>


 <div class="refsect1 changelog" id="refsect1-function.curl-getinfo-changelog">
  <h3 class="title">Registro de Alterações</h3>
  <p class="para">
   <table class="doctable informaltable">
    
     <thead>
      <tr>
       <th>Versão</th>
       <th>Descrição</th>
      </tr>

     </thead>

     <tbody class="tbody">
      <tr>
       <td>8.4.0</td>
       <td>
        Introduzida a constante <strong><code><a href="curl.constants.php#constant.curlinfo-posttransfer-time-t">CURLINFO_POSTTRANSFER_TIME_T</a></code></strong> e a chave <code class="literal">posttransfer_time_us</code> (Curl 8.10.0 ou posterior).
       </td>
      </tr>

      <tr>
       <td>8.3.0</td>
       <td>
        Introduzidas as constantes <strong><code><a href="curl.constants.php#constant.curlinfo-cainfo">CURLINFO_CAINFO</a></code></strong>
        e <strong><code><a href="curl.constants.php#constant.curlinfo-capath">CURLINFO_CAPATH</a></code></strong>.
       </td>
      </tr>

      <tr>
       <td>8.2.0</td>
       <td>
        Introduzidas as constantes <strong><code><a href="curl.constants.php#constant.curlinfo-proxy-error">CURLINFO_PROXY_ERROR</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-referer">CURLINFO_REFERER</a></code></strong> e
        <strong><code><a href="curl.constants.php#constant.curlinfo-retry-after">CURLINFO_RETRY_AFTER</a></code></strong>.
       </td>
      </tr>

      <tr>
 <td>8.0.0</td>
 <td>
  O parâmetro <code class="parameter">handle</code> agora espera uma instância de <span class="classname"><a href="class.curlhandle.php" class="classname">CurlHandle</a></span>;
  anteriormente, um <span class="type"><a href="language.types.resource.php" class="type resource">resource</a></span> era esperado.
 </td>
</tr>

      <tr>
       <td>8.0.0</td>
       <td>
        <code class="parameter">option</code> agora pode ser nulo;
        anteriormente, o padrão era <code class="literal">0</code>.
       </td>
      </tr>

      <tr>
       <td>7.3.0</td>
       <td>
        Introduzidas as opções <strong><code><a href="curl.constants.php#constant.curlinfo-content-length-download-t">CURLINFO_CONTENT_LENGTH_DOWNLOAD_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-content-length-upload-t">CURLINFO_CONTENT_LENGTH_UPLOAD_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-http-version">CURLINFO_HTTP_VERSION</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-protocol">CURLINFO_PROTOCOL</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-proxy-ssl-verifyresult">CURLINFO_PROXY_SSL_VERIFYRESULT</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-scheme">CURLINFO_SCHEME</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-size-download-t">CURLINFO_SIZE_DOWNLOAD_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-size-upload-t">CURLINFO_SIZE_UPLOAD_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-speed-download-t">CURLINFO_SPEED_DOWNLOAD_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-speed-upload-t">CURLINFO_SPEED_UPLOAD_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-appconnect-time-t">CURLINFO_APPCONNECT_TIME_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-connect-time-t">CURLINFO_CONNECT_TIME_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-filetime-t">CURLINFO_FILETIME_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-namelookup-time-t">CURLINFO_NAMELOOKUP_TIME_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-pretransfer-time-t">CURLINFO_PRETRANSFER_TIME_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-redirect-time-t">CURLINFO_REDIRECT_TIME_T</a></code></strong>,
        <strong><code><a href="curl.constants.php#constant.curlinfo-starttransfer-time-t">CURLINFO_STARTTRANSFER_TIME_T</a></code></strong> e
        <strong><code><a href="curl.constants.php#constant.curlinfo-total-time-t">CURLINFO_TOTAL_TIME_T</a></code></strong>.
       </td>
      </tr>

     </tbody>
    
   </table>

  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.curl-getinfo-examples">
  <h3 class="title">Exemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemplo #1 Exemplo de <span class="function"><strong>curl_getinfo()</strong></span></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Cria um manipulador cURL<br /></span><span style="color: #0000BB">$ch </span><span style="color: #007700">= </span><span style="color: #0000BB">curl_init</span><span style="color: #007700">(</span><span style="color: #DD0000">'http://www.example.com/'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Executa<br /></span><span style="color: #0000BB">curl_exec</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Verifica se algum erro ocorreu<br /></span><span style="color: #007700">if (!</span><span style="color: #0000BB">curl_errno</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">)) {<br />  </span><span style="color: #0000BB">$info </span><span style="color: #007700">= </span><span style="color: #0000BB">curl_getinfo</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">);<br />  echo </span><span style="color: #DD0000">'Demorou '</span><span style="color: #007700">, </span><span style="color: #0000BB">$info</span><span style="color: #007700">[</span><span style="color: #DD0000">'total_time'</span><span style="color: #007700">], </span><span style="color: #DD0000">' segundos para enviar uma requisição a '</span><span style="color: #007700">, </span><span style="color: #0000BB">$info</span><span style="color: #007700">[</span><span style="color: #DD0000">'url'</span><span style="color: #007700">], </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
  <p class="para">
   <div class="example" id="example-2">
    <p><strong>Exemplo #2 Exemplo de <span class="function"><strong>curl_getinfo()</strong></span> com parâmetro <code class="parameter">option</code></strong></p>
    <div class="example-contents">
<div class="phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br /></span><span style="color: #FF8000">// Cria um identificador cURL<br /></span><span style="color: #0000BB">$ch </span><span style="color: #007700">= </span><span style="color: #0000BB">curl_init</span><span style="color: #007700">(</span><span style="color: #DD0000">'http://www.example.com/'</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Executa<br /></span><span style="color: #0000BB">curl_exec</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">);<br /><br /></span><span style="color: #FF8000">// Verifica o código de estado do HTTP<br /></span><span style="color: #007700">if (!</span><span style="color: #0000BB">curl_errno</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">)) {<br />  switch (</span><span style="color: #0000BB">$http_code </span><span style="color: #007700">= </span><span style="color: #0000BB">curl_getinfo</span><span style="color: #007700">(</span><span style="color: #0000BB">$ch</span><span style="color: #007700">, </span><span style="color: #0000BB">CURLINFO_HTTP_CODE</span><span style="color: #007700">)) {<br />    case </span><span style="color: #0000BB">200</span><span style="color: #007700">:  </span><span style="color: #FF8000"># OK<br />      </span><span style="color: #007700">break;<br />    default:<br />      echo </span><span style="color: #DD0000">'Código HTTP inesperado: '</span><span style="color: #007700">, </span><span style="color: #0000BB">$http_code</span><span style="color: #007700">, </span><span style="color: #DD0000">"\n"</span><span style="color: #007700">;<br />  }<br />}<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

   </div>
  </p>
 </div>


 <div class="refsect1 notes" id="refsect1-function.curl-getinfo-notes">
  <h3 class="title">Notas</h3>
  <blockquote class="note"><p><strong class="note">Nota</strong>: 
   <p class="para">
    Informações obtidas por esta função são mantidas se o identificador for reutilizado. Isto significa
    que a menos que uma estatística seja substituída internamente por esta função, a informação anterior
    é retornada.
   </p>
  </p></blockquote>
 </div>

</div><?php manual_footer($setup); ?>