至于php fread(卡塔尔国使用本领

?phpfile_put_contents(apos;file.txtapos;, apos;Hello World!apos;);?

二、读取文件内容

$handle = fopen (“”, “rb”);
$contents = “”;
while (!feof($handle)) {
$contents .= fread($handle, 8192);
}
fclose($handle);
?>

当书面申请网页,它通常重要的是能够保存数据。一般的做法是两种方式之一:写入数据到一个文件,或保存在一个数据库
。当然,更容易的方法是写入文件,然后读取并解析它们自己。这简单的这正是我在这里讨论。
因此,让我们开始吧:
打开一个文件的阅读和写作,我们开始使用打开功能。这只是开辟了档案资源为我们在以后的使用功能
?php$filename = apos;file.txtapos;;$handle = fopen($filename,
apos;rapos;);?值得一提的是我打开文件进行读取。请注意’ R
‘等?这是模式的论点,并允许您使用变量$文件阅读,或写作,这取决于你的需要。
你可以看到不同的模式,开辟了档案文件的功能 。
读取一个文件,最简单的方法是利用fread方法。这需要两个参数,档案资源从以前的功能和一个长度参数。
?php$content = fread($handle,
filesize($filename));?我不得不使用文件大小,以便阅读文件的末尾。否则,该功能将不知道什么时候停止阅读。
写作到一个文件中做类似的方便。这一次,我们将只使用fwrite
,其中有两个要求论点:文件处理资源,该字符串写入 。 ?php$handle =
fopen($filename, apos;aapos;);fwrite($handle, apos;Hello
World!apos;);?我不得不重新处理美元的变量,因为以前的资源仅开放供读。
捷径
好吧,既然你知道如何打开,读,写的全部档案,很长的路,这里有一些捷径。我倾向于避免这些,但真的没有错用。请注意,这两种需要PHP5
。 而不是打开和fread ,可以简单地使用file_get_contents
。唯一的理由是需要的文件,它会返回一个字符串的内容 ?php$contents =
file_get_contents(apos;file.txtapos;);?

复制代码 代码如下:
//声明一个变量用来保存文件名
$fileName = “data.txt”;
//声明一个变量用来保存被写入文件中的数据
$data = “共10行数据n”;
for($row=0;$row<10;$row++){
//将10数据都存放到一个字符串变量中
$data .= $row.”:www.lampbrother.netn”;
}
//一次将所有数据写入到指定的文件中
file_put_contents($fileName, $data);
?>

说明
string fread ( int handle, int length )
fread() 从文件指针 handle 读取最多 length 个字节。该函数在读取完最多
length 个字节数,或到达 EOF
的时候,或(对于网络流)当一个包可用时,或(在打开用户空间流之后)已读取了
8192 个字节时就会停止读取文件,视乎先碰到哪种情况。
返回所读取的字符串,如果出错返回 FALSE。
复制代码 代码如下:
// get contents of a file into a string
$filename = “/usr/local/something.txt”;
$handle = fopen($filename, “r”);
$contents = fread($handle, filesize ($filename));
fclose($handle);
?>

PHP 文件处理

该函数可以将数据直接写入到指定的文件中。如果同时调用多次时,并向同一个文件中写入数据,则文件中只保存了最后一次调用该函数写入的数据。因为在每次掉哟哦那个时都会重新打开文件并将文件中原有的数据清空,所以不能像第一个程序那样连续写入多行数据。

警告
当从任何不是普通本地文件读取时,例如在读取从远程文件或 popen() 以及
proc_open()
返回的流时,读取会在一个包可用之后停止。这意味着应该如下例所示将数据收集起来合并成大块。
复制代码 代码如下:
// 对 PHP 5 及更高版本
$handle = fopen(“”, “rb”);
$contents = stream_get_contents($handle);
fclose($handle);
?>

该函数从文件指针资源handle中读取最多length个字节。在读取完length个字节数,或到达EOF时,或(对于网络流)当一个包可用时都会停止读取文件,就看先碰到哪种情况了。该函数返回读取的内容字符串,如果失败则返回FALSE。函数的使用代码如下所示:
复制代码 代码如下:
//从文件中读取指定字节数的内容存入到一个变量中
$filename = “data.txt”;
$handle = fopen($filename, ‘r’) or die(“文件打开失败 “);
$contents = fread($handle, 100);         //从文件中读取100个字节
fclose($handle);         //关闭文件资源
echo $contents;          //将从文件中读取的内容输出
 
//从文件中读取全部内容到一个变量中,每次读取一部分,循环读取
$filename = “c:\files\somepic.gif”;
$handle = fopen($filename, ‘rb’) or die(“文件打开失败”);    
//以只读的方式,模式加了‘b’
$contents = “”;
while(!feof($handle)){          //使用feof()判断文件结尾
$contents .=fread($handle, 1024);        //每次读取1024个字节
}
fclose($handle);       //关闭文件资源
echo $contents;         //将从文件中读取的全部内容输出
 
//另一种从文件中读取全部内容的方法
$filename = “data.txt”;
$handle = fopen($filename, “r”)or die(“文件打开失败”);
$contents = fread($handle, filesize($filename));       
//使用fielsize()函数一起读出
fclose($handle);
echo $contents;
?>

警告
在区分二进制文件和文本文件的系统上(如 Windows)打开文件时,fopen()
函数的 mode 参数要加上 ‘b’。
复制代码 代码如下:
$filename = “c:\files\somepic.gif”;
$handle = fopen($filename, “rb”);
$contents = fread($handle, filesize ($filename));
fclose($handle);
?>

该函数非常有用,与file_get_contents()类似,不需要使用fopen()函数打开文件,不同的是file()函数可以把整个文件读入到一个数组中。数组中的每个元素对应文件中相应的行,各元素由换行符分割,同时换行符仍附加在每个元素的末尾。这样,就可以使用数组的相关函数对文件内容进行处理。该函数的使用代码如下所示:
复制代码 代码如下:
//将文件test.txt中的内容读入到一个数组中,并输出
print_r(file(test.txt));
?>

和 file() 一样,只除了 file_get_contents()
把文件读入一个字符串。将在参数 offset 所指定的位置开始读取长度为 maxlen
的内容。如果失败,file_get_contents() 将返回 FALSE。
file_get_contents()
函数是用来将文件的内容读入到一个字符串中的首选方法。如果操作系统支持还会使用内存映射技术来增强性能。

在PHP中提供了多个从文件中读取内容的标准函数,可以根据它们的功能特性在程序中选择哪个函数使用。这些函数功能及其描述如下表所示。

注意: 如果只是想将一个文件的内容读入到一个字符串中,用
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]]]] )

①函数fread()

将程序中的数据保存到文件中比较容易,使用fwrite()函数就可以将字符串内容写入文件中。在文件中中通过字符序列n表示换行符,表示文件中一行的末尾。当需要一次输入或输出一行信息时,请记住这一点。不同的操作系统具有不同的结束符号,基于UNIX的系统使用“n”作为行结束字符,基于Windows系统使用“rn”作为行结束字符,基于Macintosh的系统使用“r”作为行结束字符。当要写入一个文本文件并想插入一个新行时,需要使用相应操作系统的行结束符号。函数fwrite()的原型如下所示:
复制代码 代码如下:
int fwrite(resource handle,string string[,int length])          
//写入文件

发表评论

电子邮件地址不会被公开。 必填项已用*标注