1
0
mirror of https://github.com/php/doc-es.git synced 2026-03-26 16:32:13 +01:00
Files
archived-doc-es/reference/strings/functions/crc32.xml
Pedro Antonio Gil Rodríguez 9a0c1b5169 Actualización a la última versión
git-svn-id: https://svn.php.net/repository/phpdoc/es/trunk@337659 c90b9560-bf6c-de11-be94-00142212c4b1
2015-08-28 10:13:46 +00:00

139 lines
4.5 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<!-- EN-Revision: 33bb5e19aef8b15b0f8b3170cecc3a8f455020bc Maintainer: seros Status: ready -->
<!-- Reviewed: no -->
<refentry xmlns="http://docbook.org/ns/docbook" xml:id="function.crc32">
<refnamediv>
<refname>crc32</refname>
<refpurpose>Calcula el polinomio crc32 de una cadena</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type>int</type><methodname>crc32</methodname>
<methodparam><type>string</type><parameter>str</parameter></methodparam>
</methodsynopsis>
<para>
Genera el polinomio de comprobación de redundancia cíclica de 32 bits
de longitud de <parameter>str</parameter>. Este valor se usa por lo general
para validar la integridad de los datos transmitidos.
</para>
<warning>
<simpara>
Dado que el tipo integer de PHP es con signo, muchas comprobaciones de suma de crc32
resultarán en números enteros negativos en plataformas de 32 bits. Aunque en instalaciones
de 64 bits, todos los resultados de <function>crc32</function> serán enteros positivos.
</simpara>
<simpara>
Por lo tanto, es necesario usar el formateador "%u" de <function>sprintf</function> o
<function>printf</function> para obtener la representación de cadena de la comprobación
de suma de <function>crc32</function> sin signo en formato decimal.
</simpara>
<simpara>
Para una representación hexadecimal de la comprobación de suma se puede usar el
formateador "%x" de <function>sprintf</function> o <function>printf</function> ,
o las funciones de conversión de <function>dechex</function>, en donde se ha de tener
cuidado en ambos casos de convertir el resultado de <function>crc32</function> a
un entero sin signo.
</simpara>
<simpara>
Las instalaciones de 64 bits también devuelven enteros negativos para resultados de
valores mayores que los considerados, aunque rompería la conversión a hexadecimal
ya que los valores negativos tendrían un índice 0xFFFFFFFF######## extra. Ya que
las representaciones hexadecimales parecen ser el caso de uso más común,
hemos decidido no deshacernos de ellas incluso si rompe la comparación decimal directa
en alrededor del 59% de los casos donde se convierten de 32 a 64 bits.
</simpara>
<simpara>
Mirando atrás, el tener una función que devolvía un entero quizás no era la
mejor idea y el devolver una representación de cadena hexadecimal de inmediato (como
lo hace, p.ej., <function>md5</function>) podría haber sido un plan mejor con el
que comenzar.
</simpara>
<simpara>
Para una solución más portable se podría considerar también el
<function>hash</function> genérico. <code>hash("crc32b", $str)</code>
devolverá la misma cadena 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>str</parameter></term>
<listitem>
<para>
Los datos.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Devuelve la suma de verificación CRC32 de <parameter>str</parameter> como un integer.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Mostrar una suma de verificación crc32</title>
<para>
Este ejemplo muestro cómo imprimir una suma de verificación convertida
con la función <function>printf</function>:
</para>
<programlisting role="php">
<![CDATA[
<?php
$suma = crc32("El veloz murcielago hindu comia feliz cardillo y kiwi.");
printf("%u\n", $suma);
?>
]]>
</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
-->