<?php
include_once $_SERVER['DOCUMENT_ROOT'] . '/include/shared-manual.inc';
$TOC = array();
$TOC_DEPRECATED = array();
$PARENTS = array();
include_once dirname(__FILE__) ."/toc/ref.strings.inc";
$setup = array (
  'home' => 
  array (
    0 => 'index.php',
    1 => 'PHP Manual',
  ),
  'head' => 
  array (
    0 => 'UTF-8',
    1 => 'es',
  ),
  'this' => 
  array (
    0 => 'function.crc32.php',
    1 => 'crc32',
    2 => 'Calcula la suma de comprobaci&oacute;n CRC32',
  ),
  'up' => 
  array (
    0 => 'ref.strings.php',
    1 => 'Funciones de strings',
  ),
  'prev' => 
  array (
    0 => 'function.count-chars.php',
    1 => 'count_chars',
  ),
  'next' => 
  array (
    0 => 'function.crypt.php',
    1 => 'crypt',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'es',
    'path' => 'reference/strings/functions/crc32.xml',
  ),
  'history' => 
  array (
  ),
);
$setup["toc"] = $TOC;
$setup["toc_deprecated"] = $TOC_DEPRECATED;
$setup["parents"] = $PARENTS;
manual_setup($setup);

contributors($setup);

?>
<div id="function.crc32" class="refentry">
 <div class="refnamediv">
  <h1 class="refname">crc32</h1>
  <p class="verinfo">(PHP 4 &gt;= 4.0.1, PHP 5, PHP 7, PHP 8)</p><p class="refpurpose"><span class="refname">crc32</span> &mdash; <span class="dc-title">Calcula la suma de comprobación CRC32</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.crc32-description">
  <h3 class="title">Descripción</h3>
  <div class="methodsynopsis dc-description">
   <span class="methodname"><strong>crc32</strong></span>(<span class="methodparam"><span class="type"><a href="language.types.string.php" class="type string">string</a></span> <code class="parameter">$string</code></span>): <span class="type"><a href="language.types.integer.php" class="type int">int</a></span></div>

  <p class="para rdfs-comment">
   Genera la suma de comprobación cíclica CRC32, calculada en 32 bits, y
   aplicada a la cadena <code class="parameter">string</code>. Esta función se
   utiliza generalmente para validar la integridad de los datos durante una
   transmisión.
  </p>
  <div class="warning"><strong class="warning">Advertencia</strong>
   <p class="simpara">
    Debido a que el tipo entero de PHP es firmado,
    la mayoría de las sumas de comprobación crc32 resultan ser
    enteros negativos en plataformas de 32 bits. En instalaciones
    de 64 bits, todos los resultados de la función <span class="function"><strong>crc32()</strong></span>
    serán enteros positivos.
   </p>
   <p class="simpara">
    Asimismo, se debe utilizar el formateador &quot;%u&quot; de la función
    <span class="function"><a href="function.sprintf.php" class="function">sprintf()</a></span> o de la función <span class="function"><a href="function.printf.php" class="function">printf()</a></span>
    para obtener una representación en cadena de caracteres de la suma
    de comprobación no firmada de la función <span class="function"><strong>crc32()</strong></span>
    en formato decimal.
   </p>
   <p class="simpara">
    Para una representación hexadecimal de la suma de comprobación, se
    puede utilizar el formateador &quot;%x&quot; de la función <span class="function"><a href="function.sprintf.php" class="function">sprintf()</a></span>
    o de la función <span class="function"><a href="function.printf.php" class="function">printf()</a></span>, o bien las funciones de
    conversión <span class="function"><a href="function.dechex.php" class="function">dechex()</a></span>, ambas soluciones se encargan
    de convertir el resultado de la función <span class="function"><strong>crc32()</strong></span>
    en un entero no firmado.
   </p>
   <p class="simpara">
    En instalaciones de 64 bits, la función también devolverá enteros
    negativos para valores devueltos muy grandes, pero esto romperá
    la conversión hexadecimal al tener una posición adicional 0xFFFFFFFF########.
    Sabiendo que la representación decimal parece ser el caso más ampliamente utilizado,
    se ha decidido no romperla incluso si esto rompe directamente la comparación decimal
    en el 50% de los casos al pasar de 32 a 64 bits.
   </p>
   <p class="simpara">
    Con perspectiva, el hecho de que la función devuelva un entero quizá no
    fue la mejor idea, y devolver desde el principio una representación hexadecimal
    en forma de cadena de caracteres (tal como hace la función
    <span class="function"><a href="function.md5.php" class="function">md5()</a></span>), habría sido una mejor solución.
   </p>
   <p class="simpara">
    Para una solución más duradera, se puede recurrir a la función
    genérica <span class="function"><a href="function.hash.php" class="function">hash()</a></span>. <code class="code">hash(&quot;crc32b&quot;, $str)</code>
    devolverá la misma cadena de caracteres que <code class="code">str_pad(dechex(crc32($str)), 8, &#039;0&#039;, STR_PAD_LEFT)</code>.
   </p>
  </div>
 </div>


 <div class="refsect1 parameters" id="refsect1-function.crc32-parameters">
  <h3 class="title">Parámetros</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">string</code></dt>
     <dd>
      <p class="para">
       Los datos.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.crc32-returnvalues">
  <h3 class="title">Valores devueltos</h3>
  <p class="para">
   Devuelve la suma de comprobación crc32 de la cadena
   <code class="parameter">string</code>, en forma de un entero.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.crc32-examples">
  <h3 class="title">Ejemplos</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Ejemplo #1 Mostrar una suma de comprobación CRC32</strong></p>
    <div class="example-contents"><p>
     Este ejemplo ilustra cómo mostrar la suma de comprobación
     con la función <span class="function"><a href="function.printf.php" class="function">printf()</a></span>:
    </p></div>
    <div class="example-contents">
<div class="annotation-interactive phpcode"><code><span style="color: #000000"><span style="color: #0000BB">&lt;?php<br />$checksum </span><span style="color: #007700">= </span><span style="color: #0000BB">crc32</span><span style="color: #007700">(</span><span style="color: #DD0000">"Le vif zéphyr jubile sur les kumquats du clown gracieux."</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">printf</span><span style="color: #007700">(</span><span style="color: #DD0000">"%u\n"</span><span style="color: #007700">, </span><span style="color: #0000BB">$checksum</span><span style="color: #007700">);<br /></span><span style="color: #0000BB">?&gt;</span></span></code></div>
    </div>

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


 <div class="refsect1 seealso" id="refsect1-function.crc32-seealso">
  <h3 class="title">Ver también</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.hash.php" class="function" rel="rdfs-seeAlso">hash()</a> - Genera un valor de hachado (huella digital)</span></li>
    <li><span class="function"><a href="function.md5.php" class="function" rel="rdfs-seeAlso">md5()</a> - Calcula el md5 de un string</span></li>
    <li><span class="function"><a href="function.sha1.php" class="function" rel="rdfs-seeAlso">sha1()</a> - Calcula el sha1 de un string</span></li>
   </ul>
  </p>
 </div>


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