'b' 标志强制二进制模式。
如果您想处理二进制文件,则可以使用“b”标志,即。一个图像。
Note:
当您编写文本文件并想要插入换行符时,您需要使用适合您的操作系统的正确行结束字符。
基于Unix的系统使用\n
作为行结束符,基于 Windows 的系统使用\r\n
作为行结束字符和基于 Macintosh 的系统使用\r
作为行结束符。
Windows 提供了一个文本模式翻译标志('t'),它将透明地翻译\n
to \r\n
处理文件时。
相反,您还可以使用“b”强制二进制模式,这不会转换您的数据。
您可以通过使用 'b' 标志来避免翻译mode
范围。用法示例:
$handle_read = fopen($filepath, 'rb');
$handle_write = fopen("/home/user/file.gif", "wb");
所以...推荐这个的原因已经清楚地写在了manual http://php.net/manual/en/function.fopen.php:
如果在处理二进制文件时不指定“b”标志,则可能会遇到奇怪的数据问题,包括损坏的图像文件和 \r\n 字符的奇怪问题。
'b' 标志的用法也在手册页上注明fwrite()
and fread()
这是二进制安全文件读/写函数。
Warning:
在区分二进制文件和文本文件的系统(即 Windows)上,必须使用 fopen() 模式参数中包含的“b”打开文件。
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize($filename));
fclose($handle);