如何找到crc32的大文件?

Ars*_*eep 4 php crc32 checksum

PHP的crc32支持字符串作为输入.对于一个文件,下面的代码将工作OFC.

crc32(file_get_contents("myfile.CSV"));
Run Code Online (Sandbox Code Playgroud)

但是如果文件变得很大(2 GB),它可能会引发内存不足致命错误.

所以任何方式找到大文件的校验和?

dev*_*ler 5

PHP不支持大于2GB的文件(32位限制)

从文件计算crc32的更有效方法:

$hash = hash_file('crc32b',"myfile.CSV" );
Run Code Online (Sandbox Code Playgroud)


Pek*_*ica 2

用户贡献的注释中的此功能crc32()可以计算值,而无需完全加载文件。如果工作正常,应该可以消除任何内存问题。

然而,对于大于 2 GB 的文件,它可能会停止在您现在遇到的相同 32 位限制。

如果可能的话,我会调用一个外部工具来计算与手头一样大的文件的校验和。

  • @zaf - 工作得很好你是一个**明星** (3认同)