crc32

(PHP 4 >= 4.0.1, PHP 5, PHP 7, PHP 8)

crc32 — Обчислює поліном CRC32 для рядка

Опис

crc32(string $string): int

Функція обчислює циклічний надлишковий код 32-бітових поліномів (CRC32) для рядка string. Це зазвичай використовується для контролю цілісності даних, що передаються.

Увага

У PHP цілі числа мають знак, тому багато контрольні суми можуть виявитися негативними на 32-бітових платформах. На 64-бітних платформах усі результати crc32() будуть позитивними цілими.

Тому вам потрібно використовувати формат "%u" у функціях sprintf() або printf() для отримання строкового подання суми crc32() без знаку.

Для шістнадцяткового подання суми ви можете використовувати або формат "%x" у функціях sprintf() і printf(), або функцію конвертації dechex(). Обидва ці способи також подбають про конвертацію результату crc32() у беззнакове ціле.

При використанні 64-бітових платформ також розглядалася можливість повертати негативні цілі для великих значень, але це ламало шістнадцяткове уявлення, додаючи додаткові зсуви 0xFFFFFFFF######## для них. Оскільки шістнадцяткове уявлення є затребуваним, було вирішено не ламати його, навіть якщо це ламає пряме порівняння десяткових значень у 50% випадків при переході з 32-бітних на 64-бітові платформи.

Озираючись назад, можна повертати ціле число було не найкращою ідеєю і краще було повертати відразу шістнадцяткову виставу (як наприклад робить md5()

Можна також скористатися більш загальним рішенням з використанням функції hash(). . hash("crc32b", $str) поверне той самий рядок, що й str_pad(dechex(crc32($str)), 8, '0', STR_PAD_LEFT)

Список параметрів

string

Дані.

Значення, що повертаються

Повертає контрольну суму crc32 рядка string як цілого числа.

Приклади

Приклад #1 Виведення контрольної суми CRC32

Цей приклад ілюструє виведення обчисленої контрольної суми за допомогою функції printf() :

Loading...

Дивіться також

  • hash() - Генерує хеш-код (підпис повідомлення)
  • md5() - Повертає MD5-хеш рядки
  • sha1() - Повертає SHA1-хеш рядки