加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

关于php fread()使用技巧

发布时间:2020-12-13 05:38:44 所属栏目:PHP教程 来源:网络整理
导读:说明 string fread ( int handle,int length ) fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完最多 length 个字节数,或到达 EOF 的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了 8192 个字节时就会停止读

说明
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() 函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读