使用哪个 PHP 函数将二进制文件读入字符串?
2022-08-30 20:41:14
使用哪个 PHP 函数将二进制文件读入字符串?
file_get_contents
已经足够好了。它似乎以二进制模式读取文件。我做了一个小的PHP脚本来检查这一点。未生成不匹配消息。
<?php
foreach (glob('/usr/bin/*') as $binary) {
$php = md5(file_get_contents($binary));
$shell = shell_exec("md5sum $binary");
if ($php != preg_replace('/ .*/s', '', $shell)) {
echo 'MISMATCH', PHP_EOL;
}
else {
echo 'MATCH', PHP_EOL;
}
echo $php, ' ', $binary, PHP_EOL;
echo $shell, PHP_EOL;
}
以下说明来自手册:
注意:此函数是二进制安全的。
您正在寻找胎面
功能。
fread — 二进制安全文件读取
例:
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);
注意:
在区分二进制文件和文本文件(即 Windows)的系统上,必须使用 fopen() 模式参数中包含的 “b” 打开该文件。