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...