mirror of
https://github.com/macintoshplus/doc-fr.git
synced 2026-03-24 17:02:18 +01:00
git-svn-id: https://svn.php.net/repository/phpdoc/fr/trunk@351916 c90b9560-bf6c-de11-be94-00142212c4b1
146 lines
4.8 KiB
XML
146 lines
4.8 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<!-- $Revision$ -->
|
|
<!-- EN-Revision: e095023e408c8cb6378ae16bb6870343a3946919 Maintainer: yannick Status: ready -->
|
|
<!-- Reviewed: yes -->
|
|
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.crc32">
|
|
<refnamediv>
|
|
<refname>crc32</refname>
|
|
<refpurpose>Calcule la somme de contrôle CRC32</refpurpose>
|
|
</refnamediv>
|
|
|
|
<refsect1 role="description">
|
|
&reftitle.description;
|
|
<methodsynopsis>
|
|
<type>int</type><methodname>crc32</methodname>
|
|
<methodparam><type>string</type><parameter>string</parameter></methodparam>
|
|
</methodsynopsis>
|
|
<para>
|
|
Génère la somme de contrôle cyclique CRC32, calculée sur 32 bits, et
|
|
appliquée à la chaîne <parameter>string</parameter>. Cette fonction est
|
|
généralement utilisée pour valider l'intégrité de données durant une
|
|
transmission.
|
|
</para>
|
|
<warning>
|
|
<simpara>
|
|
En raison du fait que le type entier de PHP est signé,
|
|
la plupart des sommes de contrôle crc32 se trouve être des
|
|
entiers négatifs sur les plateformes 32bits. Sur des installations
|
|
64bits, tous les résultats de la fonction <function>crc32</function>
|
|
seront des entiers positifs.
|
|
</simpara>
|
|
<simpara>
|
|
Aussi, vous devez utiliser le formatteur "%u" de la fonction
|
|
<function>sprintf</function> ou de la fonction <function>printf</function>
|
|
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 <function>crc32</function>
|
|
au format décimal.
|
|
</simpara>
|
|
<simpara>
|
|
Pour une représentation hexadécimale de la somme de contrôle, vous
|
|
pouvez utiliser soit le formatteur "%x" de la fonction <function>sprintf</function>
|
|
ou de la fonction <function>printf</function> , ou bien les fonctions de
|
|
conversion <function>dechex</function>, les deux solutions prennent soin
|
|
de convertir le résultat de la fonction <function>crc32</function>
|
|
en un entier non-signé.
|
|
</simpara>
|
|
<simpara>
|
|
Sur les installations 64bits, la fonction retournera aussi des entiers
|
|
négatifs pour des valeurs retournées très grandes, mais cela va casser
|
|
la conversion en hexadécimal en ayant une position 0xFFFFFFFF########
|
|
supplémentaire. Sachant que la représentation décimale semble être le
|
|
cas le plus largement utilisé, nous avons décidé de ne pas la casser
|
|
même si elle casse directement la comparaison décimale dans 50% des
|
|
cas lors d'un passage de 32 à 64bits.
|
|
</simpara>
|
|
<simpara>
|
|
Avec du recul, le fait que la fonction retourne un entier n'était peut-être
|
|
pas la meilleure idée, et retourner dès le début une représentation hexadécimale
|
|
sous la forme d'une chaîne de caractères (tel que le fait la fonction
|
|
<function>md5</function>), aurait été meilleure solution.
|
|
</simpara>
|
|
<simpara>
|
|
Pour une solution plus pérenne, vous pouvez vous retourner vers la fonction
|
|
générique <function>hash</function>. <code>hash("crc32b", $str)</code>
|
|
va retourner la même chaîne de caractères que <code>str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)</code>.
|
|
</simpara>
|
|
</warning>
|
|
</refsect1>
|
|
|
|
<refsect1 role="parameters">
|
|
&reftitle.parameters;
|
|
<para>
|
|
<variablelist>
|
|
<varlistentry>
|
|
<term><parameter>string</parameter></term>
|
|
<listitem>
|
|
<para>
|
|
Les données.
|
|
</para>
|
|
</listitem>
|
|
</varlistentry>
|
|
</variablelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="returnvalues">
|
|
&reftitle.returnvalues;
|
|
<para>
|
|
Retourne la somme de contrôle crc32 de la chaîne
|
|
<parameter>string</parameter>, sous la forme d'un entier.
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="examples">
|
|
&reftitle.examples;
|
|
<para>
|
|
<example>
|
|
<title>Afficher une somme de contrôle CRC32</title>
|
|
<para>
|
|
Cet exemple illustre comment afficher la somme de contrôle
|
|
avec la fonction <function>printf</function> :
|
|
</para>
|
|
<programlisting role="php">
|
|
<![CDATA[
|
|
<?php
|
|
$checksum = crc32("Le vif zéphyr jubile sur les kumquats du clown gracieux.");
|
|
printf("%u\n", $checksum);
|
|
?>
|
|
]]>
|
|
</programlisting>
|
|
</example>
|
|
</para>
|
|
</refsect1>
|
|
|
|
<refsect1 role="seealso">
|
|
&reftitle.seealso;
|
|
<para>
|
|
<simplelist>
|
|
<member><function>hash</function></member>
|
|
<member><function>md5</function></member>
|
|
<member><function>sha1</function></member>
|
|
</simplelist>
|
|
</para>
|
|
</refsect1>
|
|
|
|
</refentry>
|
|
<!-- Keep this comment at the end of the file
|
|
Local variables:
|
|
mode: sgml
|
|
sgml-omittag:t
|
|
sgml-shorttag:t
|
|
sgml-minimize-attributes:nil
|
|
sgml-always-quote-attributes:t
|
|
sgml-indent-step:1
|
|
sgml-indent-data:t
|
|
indent-tabs-mode:nil
|
|
sgml-parent-document:nil
|
|
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
|
|
sgml-exposed-tags:nil
|
|
sgml-local-catalogs:nil
|
|
sgml-local-ecat-files:nil
|
|
End:
|
|
vim600: syn=xml fen fdm=syntax fdl=2 si
|
|
vim: et tw=78 syn=sgml
|
|
vi: ts=1 sw=1
|
|
-->
|