fny*_*fny 8 php hash checksum md5
我编写了一个脚本,它读取目录中的所有文件,并为每个文件返回md5哈希值.但是,它不会为相当大的文件呈现任何内容.我假设解释器为最大处理时间设置了一些值,并且由于获取此值需要很长时间,因此它只是跳到其他文件.无论如何通过PHP获取大文件的md5校验和?如果没有,是否可以通过cpanel的chron工作完成?我在那里试了一下,但似乎我的md5sum命令似乎没有被处理过:我从未收到过带有哈希的电子邮件.这是我已经写过的PHP.对于合理大小的文件,这是一个非常简单的代码和工作文件:
function md5_dir($dir) {
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
echo nl2br($file . "\n" . md5_file($file) . "\n\n");
}
closedir($dh);
}
}
}
Run Code Online (Sandbox Code Playgroud)
小智 9
如果您决定使用shell_exec()或system()调用,请务必使用escapeshellarg(http://us3.php.net/manual/en/function.escapeshellarg.php).也就是说,
shell_exec('md5sum -b ' . escapeshellarg($filename));
Run Code Online (Sandbox Code Playgroud)
虽然我无法使用 PHP 5.2 或 5.3 的 2GB 文件重现它,但问题似乎出现在 32 位 PHP 构建上。
即便如此,这并不是一个很好的解决方案,您可以尝试让系统自行解决
echo system("md5sum test.txt");
Run Code Online (Sandbox Code Playgroud)
46d6a7bcbcf7ae0501da341cb3bae27c测试.txt
| 归档时间: |
|
| 查看次数: |
15786 次 |
| 最近记录: |