PHP读写二进制文件

php php 文件操作 1146      收藏
PHP读写二进制文件

下面展示一例,将字符串以二进制流写入文件中:

<?php  
$number = 512;//要存入的字符串
$handle = fopen ("data.dat", "wb");//打开date.bat文件不存在则创建文件
if (fwrite ($handle, pack ("L", $number)) == FALSE) {//数据打包成二进制字符串后写入文件 
	echo "Can not write data.dat.";  
} else {  
	echo "Created data.dat. and stored $number.";  
}
fclose ($handle);//关闭一个已打开的文件指针
?>

执行上述代码后,会发现同一目录下多出了一个data.dat的文件,用记事本打开后会是这样的:

换一款工具来打开看看结果如何:

这会就看清了,以十六进制模式打开;学过汇编的朋友应该很熟悉;

好,上面展示了如何编写一个二进制流的文件,下面展示如何读取二进制流的文件:

$handle = fopen ("data.dat", "rb");//打开进行二进制读取的文件
$data = fread ($handle, 4);//使用函数fread读取二进制数据,并且指示需要4个字节(长整型整数的长度)
$array = unpack ("Ldata", $data);//使用函数unpack把数据还原到一个数组中,该数组在索引data下带有包含长整型值的元素
$data = $array["data"];//使用键"data"从数组中恢复二进制数据
echo "Read this value from data.dat: ", $data;

通过上面的文件读取操作,通过浏览器访问PHP文件查看下结果是否正确: