<?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 => 'fr',
  ),
  'this' => 
  array (
    0 => 'function.crc32.php',
    1 => 'crc32',
    2 => 'Calcule la somme de contr&ocirc;le CRC32',
  ),
  'up' => 
  array (
    0 => 'ref.strings.php',
    1 => 'Fonctions sur les cha&icirc;nes de caract&egrave;res',
  ),
  'prev' => 
  array (
    0 => 'function.count-chars.php',
    1 => 'count_chars',
  ),
  'next' => 
  array (
    0 => 'function.crypt.php',
    1 => 'crypt',
  ),
  'alternatives' => 
  array (
  ),
  'source' => 
  array (
    'lang' => 'fr',
    '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">Calcule la somme de contrôle CRC32</span></p>

 </div>

 <div class="refsect1 description" id="refsect1-function.crc32-description">
  <h3 class="title">Description</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">
   Génère la somme de contrôle cyclique CRC32, calculée sur 32 bits, et
   appliquée à la chaîne <code class="parameter">string</code>. Cette fonction est
   généralement utilisée pour valider l&#039;intégrité de données durant une
   transmission.
  </p>
  <div class="warning"><strong class="warning">Avertissement</strong>
   <p class="simpara">
    En raison du fait que le type entier de PHP est signé,
    la plupart des sommes de contrôle crc32 se trouvent être des
    entiers négatifs sur les plateformes 32bits. Sur des installations
    64bits, tous les résultats de la fonction <span class="function"><strong>crc32()</strong></span>
    seront des entiers positifs.
   </p>
   <p class="simpara">
    Aussi, il faut utiliser le formateur &quot;%u&quot; de la fonction
    <span class="function"><a href="function.sprintf.php" class="function">sprintf()</a></span> ou de la fonction <span class="function"><a href="function.printf.php" class="function">printf()</a></span>
    pour récupérer une représentation en chaîne de caractères de la somme
    de contrôle non-signée de la fonction <span class="function"><strong>crc32()</strong></span>
    au format décimal.
   </p>
   <p class="simpara">
    Pour une représentation hexadécimale de la somme de contrôle, il est possible de
     utiliser soit le formateur &quot;%x&quot; de la fonction <span class="function"><a href="function.sprintf.php" class="function">sprintf()</a></span>
    ou de la fonction <span class="function"><a href="function.printf.php" class="function">printf()</a></span> , ou bien les fonctions de
    conversion <span class="function"><a href="function.dechex.php" class="function">dechex()</a></span>, les deux solutions prennent soin
    de convertir le résultat de la fonction <span class="function"><strong>crc32()</strong></span>
    en un entier non-signé.
   </p>
   <p class="simpara">
    Faire en sorte que les installations 64bits retournent aussi des entiers
    négatifs pour les valeurs de résultat élevées a été envisagé, mais cela
    casserait la conversion hexadécimale car les valeurs négatives auraient
    un décalage supplémentaire de 0xFFFFFFFF########. Étant donné que la
    représentation hexadécimale semble être le cas d&#039;utilisation le plus
    courant, nous avons décidé de ne pas la casser même si cela casse
    directement la comparaison décimale dans environ 50% des cas lors d&#039;un
    passage de 32 à 64bits.
   </p>
   <p class="simpara">
    Avec du recul, le fait que la fonction retourne un entier n&#039;était peut-être
    pas la meilleure idée, et retourner dès le début une représentation hexadécimale
    sous la forme d&#039;une chaîne de caractères (tel que le fait la fonction
    <span class="function"><a href="function.md5.php" class="function">md5()</a></span>), aurait été une meilleure solution.
   </p>
   <p class="simpara">
    Pour une solution plus pérenne, il est possible de se retourner vers la fonction
    générique <span class="function"><a href="function.hash.php" class="function">hash()</a></span>. <code class="code">hash(&quot;crc32b&quot;, $str)</code>
    va retourner la même chaîne de caractères 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">Liste de paramètres</h3>
  <p class="para">
   <dl>
    
     <dt><code class="parameter">string</code></dt>
     <dd>
      <p class="para">
       Les données.
      </p>
     </dd>
    
   </dl>
  </p>
 </div>


 <div class="refsect1 returnvalues" id="refsect1-function.crc32-returnvalues">
  <h3 class="title">Valeurs de retour</h3>
  <p class="para">
   Retourne la somme de contrôle crc32 de la chaîne
   <code class="parameter">string</code>, sous la forme d&#039;un entier.
  </p>
 </div>


 <div class="refsect1 examples" id="refsect1-function.crc32-examples">
  <h3 class="title">Exemples</h3>
  <p class="para">
   <div class="example" id="example-1">
    <p><strong>Exemple #1 Afficher une somme de contrôle CRC32</strong></p>
    <div class="example-contents"><p>
     Cet exemple illustre comment afficher la somme de contrôle
     avec la fonction <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">Voir aussi</h3>
  <p class="para">
   <ul class="simplelist">
    <li><span class="function"><a href="function.hash.php" class="function" rel="rdfs-seeAlso">hash()</a> - G&eacute;n&egrave;re une valeur de hachage (empreinte num&eacute;rique)</span></li>
    <li><span class="function"><a href="function.md5.php" class="function" rel="rdfs-seeAlso">md5()</a> - Calcule le md5 d'une cha&icirc;ne</span></li>
    <li><span class="function"><a href="function.sha1.php" class="function" rel="rdfs-seeAlso">sha1()</a> - Calcule le sha1 d'une cha&icirc;ne de caract&egrave;res</span></li>
   </ul>
  </p>
 </div>


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