说明 string fread ( int handle,int length ) fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读取文件,视乎先碰到哪种情况。 返回所读取的字符串,如果出错返回 FALSE。 <div class="codetitle"><a style="CURSOR: pointer" data="78828" class="copybut" id="copybut78828" onclick="doCopy('code78828')"> 代码如下:<div class="codebody" id="code78828"> <?php // 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'。 <div class="codetitle"><a style="CURSOR: pointer" data="70542" class="copybut" id="copybut70542" onclick="doCopy('code70542')"> 代码如下:<div class="codebody" id="code70542"> <?php $filename = "c:filessomepic.gif"; $handle = fopen($filename,"rb"); $contents = fread($handle,filesize ($filename)); fclose($handle); ?> 警告 当从任何不是普通本地文件读取时,例如在读取从远程文件或 popen() 以及 proc_open() 返回的流时,读取会在一个包可用之后停止。这意味着应该如下例所示将数据收集起来合并成大块。 <div class="codetitle"><a style="CURSOR: pointer" data="48515" class="copybut" id="copybut48515" onclick="doCopy('code48515')"> 代码如下:<div class="codebody" id="code48515"> <?php // 对 PHP 5 及更高版本 $handle = fopen("http://www.example.com/","rb"); $contents = stream_get_contents($handle); fclose($handle); ?> <?php $handle = fopen ("http://www.example.com/","rb"); $contents = ""; while (!feof($handle)) { $contents .= fread($handle,8192); } fclose($handle); ?> 注意: 如果只是想将一个文件的内容读入到一个字符串中,用 file_get_contents(),它的性能比上面的代码好得多。 额外: file_get_contents (PHP 4 >= 4.3.0,PHP 5) file_get_contents -- 将整个文件读入一个字符串 说明 string file_get_contents ( string filename [,bool use_include_path [,resource context [,int offset [,int maxlen]]]] ) 和 file() 一样,只除了 file_get_contents() 把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen 的内容。如果失败,file_get_contents() 将返回 FALSE。 file_get_contents() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。 (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|