CT554778689 发表于 2020-7-27 10:54

PHP如何读取一个大于8192 个字节的二进制文件,获取正确的crc

<?php
function crc16($string)
{
    $length = strlen($string);
    //echo "crc check length-->".$length."\n";
    $crc = 0xFFFF;
    for ($x = 0; $x < strlen($string); $x++) {
      $crc = $crc ^ ord($string[$x]);
      for ($y = 0; $y < 8; $y++) {
            if (($crc & 0x0001) == 0x0001) {
                $crc = (($crc >> 1) ^ 0xA001);
            } else { $crc = $crc >> 1;}
      }
    }
    return $crc;
}
$filename= '**********';
$size      = filesize($filename);
$handle    = fopen($filename, "rb");
$file_data = fread($handle, $size); //fread不能读取大于8192字节的bin文件
$crc = crc16($file_data);
print_r($crc);
?>
哪位大佬有可以替代fread的方法
// $handle= fopen($filename, "rb");
// $content = "";
// while (!feof($handle)) {
// //测试文件指针是否到了文件结束的位置
//   $content .= fgets($handle);
// }
// fclose($handle);
该方法也是不能突破8192字节
页: [1]
查看完整版本: PHP如何读取一个大于8192 个字节的二进制文件,获取正确的crc