fread() 一次只能读8 KB?? http://cn2.php.net/manual/en/function.fread.php是的 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我也了一段测试代码没有出现你的情况,代码如下:<?phpecho "No.1:<br/>";$handle = fopen ("2.txt", "rb");$contents = "";$len = "";$fileLen = filesize("2.txt");while (!feof($handle)) { $contents .= fread($handle, 8192);}$len = strlen($contents);echo "文件长度:".$fileLen."<br/>";echo "读取长度:".$len."<br/>";echo "文件内容:<br/>".$contents."<br/>";fclose($handle);echo "-------------------------------";echo "No.2:<br/>";$fh = fopen("2.txt", "rb"); $data = fread($fh, filesize("2.txt"));$lenred = strlen($data);echo "读取长度:".$lenred."<br/>";fclose($fh); ?>No.2的方法就是你所写的。我用的测试文件大小是16.2KB,16680字节的二进制文件。测试结果两种方法得到的读取长度都是16880.换了几个更大的也如此。 fread(PHP 3, PHP 4, PHP 5)fread -- 读取文件(可安全用于二进制文件)说明string fread ( int handle, int length )fread() 从文件指针 handle 读取最多 length 个字节。 该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。 // get contents of a file into a string$filename = "/usr/local/something.txt";$handle = fopen($filename, "r");$contents = fread($handle, filesize ($filename));fclose($handle); 警告 在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 'b'。 $filename = "c:\\files\\somepic.gif";$handle = fopen($filename, "rb");$contents = fread($handle, filesize ($filename));fclose($handle); 警告 当从网络流或者管道读取时,例如在读取从远程文件或 popen() 以及 proc_open() 的返回时,读取会在一个包可用之后停止。这意味着你应该如下例所示将数据收集起来合并成大块。 <?php$handle = fopen ("http://www.example.com/", "rb");$contents = "";while (!feof($handle)) { $contents .= fread($handle, 8192);}fclose($handle);?> fread()这个函数的确只能一次性读入8KB的东西,如一楼讲的,一楼的是英文的,中文官方的解释在这里http://cn2.php.net/manual/zh/function.fread.php,这里讲的很明白,“已读取了 8192 个字节时就会停止读取文件” 试了下可以一次读出,我要读取是struct 结构里边的数据<8192 ^ ^读取的二进制文件是struct 结构的,我想将读取到的数据在php 中定义并赋读取到的值要怎么做??<?phpecho "No.1:<br/>";$handle = fopen ("2.txt", "rb");$contents = "";$len = "";$fileLen = filesize("2.txt");while (!feof($handle)) { $contents .= fread($handle, 8192);}$contents --- $contents就是你要读取的数据.不用定义.不过你可以初始化一下.$content = ""; 关于网页运行时间过长就会挂掉的问题 为什么加alert(id)这句addcounter才执行。 关于php调用mysql的存储过程的问题 关于PHP的小白问题 Mysql插入大量数据出错。。。 Cookie被盗取之后,如何判断是否真实用户 有谁知道那种点对点的聊天,是怎么做的呀?用PHP!急,谢谢各位高手了! 问一个问题 怎样在php中,将字符串ip转换成整数型的ip? 关于日期,有点难!! 求回复成串的思路(应该有点难度了,高手可以进来看看) checkbox 的值写入数据库后,如何访问
echo "No.1:<br/>";
$handle = fopen ("2.txt", "rb");
$contents = "";
$len = "";
$fileLen = filesize("2.txt");
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
$len = strlen($contents);
echo "文件长度:".$fileLen."<br/>";
echo "读取长度:".$len."<br/>";
echo "文件内容:<br/>".$contents."<br/>";
fclose($handle);
echo "-------------------------------";
echo "No.2:<br/>";
$fh = fopen("2.txt", "rb");
$data = fread($fh, filesize("2.txt"));
$lenred = strlen($data);
echo "读取长度:".$lenred."<br/>";
fclose($fh);
?>No.2的方法就是你所写的。
我用的测试文件大小是16.2KB,16680字节的二进制文件。
测试结果两种方法得到的读取长度都是16880.
换了几个更大的也如此。
(PHP 3, PHP 4, PHP 5)fread -- 读取文件(可安全用于二进制文件)
说明
string fread ( int handle, int length )fread() 从文件指针 handle 读取最多 length 个字节。 该函数在读取完 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时就会停止读取文件,视乎先碰到哪种情况。 // get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize ($filename));
fclose($handle);
警告
在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen() 函数的 mode 参数要加上 'b'。
$filename = "c:\\files\\somepic.gif";
$handle = fopen($filename, "rb");
$contents = fread($handle, filesize ($filename));
fclose($handle); 警告
当从网络流或者管道读取时,例如在读取从远程文件或 popen() 以及 proc_open() 的返回时,读取会在一个包可用之后停止。这意味着你应该如下例所示将数据收集起来合并成大块。
<?php
$handle = fopen ("http://www.example.com/", "rb");
$contents = "";
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>
读取的二进制文件是struct 结构的,
我想将读取到的数据在php 中定义并赋读取到的值要怎么做??<?php
echo "No.1:<br/>";
$handle = fopen ("2.txt", "rb");
$contents = "";
$len = "";
$fileLen = filesize("2.txt");
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}$contents ---
不过你可以初始化一下.
$content = "";