PHP文件读写操作相关函数总括,文件读取

By admin in 4858.com on 2019年2月11日

fread()、fgets()、fgetc()、file_get_contents() 与 file()
函数用于从文件中读取内容。

fread()、fgets()、fgetc()、file_get_contents() 与 file()
函数用于从文件中读取内容。

fread()、fgets()、fgetc()、file_get_contents() 与 file()
函数用于从文件中读取内容。

一、fwrite()写入文件

 

fread()

fread() 函数用于读取文件(可无恙用于二进制文件)。
语法:

string fread( int handle, int length )

fread() 从文件指针 handle 读取最多 length
个字节。当碰着下列任何一种状态时,会告一段落读取文件:

  • 在读取完最多 length 个字节数时
  • 高达文件末尾的时候(EOF)
  • (对于互连网流)当一个包可用时
  • 或(在打开用户空间流之后)已读取了 8192 个字节时

从文件中读取 10 个字节(包涵空格):

<?php
// http://www.manongjc.com/article/1346.html
$filename = "test.txt";
$fh = fopen($filename, "r");
echo fread($fh, "10");
fclose($fh);
?>

提示

只要只是想将一个文本的内容读入到一个字符串中,应该用品质更好的
file_get_contents() 。

 

将顺序中的数据保存到文件中相比便于,使用fwrite()函数就足以将字符串内容写入文件中。在文书中中通过字符系列\n表示换行符,表示文件中一行的终极。当必要三次输入或输出一行信息时,请记住那一点。不一致的操作系统具有差其他了断符号,基于UNIX的体系使用“\n”作为行终止字符,基于Windows系统使用“\r\n”作为行终止字符,基于Macintosh的系列使用“\r”作为行终止字符。当要写入一个文书文件并想插队一个新行时,要求动用相应操作系统的行终止符号。函数fwrite()的原型如下所示:

fread()

fread() 函数用于读取文件(可安好用于二进制文件)。
语法:

string fread( int handle, int length )

fread() 从文件指针 handle 读取最多 length
个字节。当碰着下列任何一种意况时,会停下读取文件:

  • 在读取完最多 length 个字节数时
  • 直达文件末尾的时候(EOF)
  • (对于网络流)当一个包可用时
  • 或(在打开用户空间流之后)已读取了 8192 个字节时

从文件中读取 10 个字节(包蕴空格):

<?php
// http://www.manongjc.com/article/1346.html
$filename = "test.txt";
$fh = fopen($filename, "r");
echo fread($fh, "10");
fclose($fh);
?>

提示

只要只是想将一个文本的始末读入到一个字符串中,应该用品质更好的
file_get_contents() 。

 

fgets()

fgets() 函数用于从文件中读取 一行 数额,并将文件指针指向下一行。
提示:如若想在读取的时候去掉文件中的 HTML 标记,请使用 fgetss() 函数。
语法:

string fgets( int handle [, int length] )

fgets() 从 handle 指向的公文中读取一行并赶回长度最多为 length-1
字节的字符串。蒙受换行符(蕴含在回来值中)、EOF 可能曾经读取了 length-1
字节后截至。即使没有点名 length ,则专断认同为 1K ,或许说 1024 字节。
例子:

<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// if条件避免无效指针
// http://www.manongjc.com/article/1347.html
if($fh){
    while(!feof($fh)) {
        echo fgets($fh), '<br />';
    }
}
fclose($fh);
?>

填补表明

feof()
函数测试文件指针是或不是到了文件截止的义务,该公文指针必须有效,如果是无用的资源,则会陷于非凡循环中。参见《PHP
文件指针函数》

fread()

fread() 函数用于读取文件(可安好用于二进制文件)。
语法:

string fread( int handle, int length )

fread() 从文件指针 handle 读取最多 length
个字节。当遭逢下列任何一种情况时,会停下读取文件:

  • 在读取完最多 length 个字节数时
  • 完成文件末尾的时候(EOF)
  • (对于网络流)当一个包可用时
  • 或(在开辟用户空间流之后)已读取了 8192 个字节时

从文件中读取 10 个字节(包罗空格):

<?php
// http://www.manongjc.com/article/1346.html
$filename = "test.txt";
$fh = fopen($filename, "r");
echo fread($fh, "10");
fclose($fh);
?>

提示

如若只是想将一个文书的故事情节读入到一个字符串中,应该用质量更好的
file_get_contents() 。

PHP文件读写操作相关函数总括,文件读取。 

复制代码 代码如下:

fgets()

fgets() 函数用于从文件中读取 一行 数额,并将文件指针指向下一行。
升迁:假若想在读取的时候去掉文件中的 HTML 标记,请使用 fgetss() 函数。
语法:

string fgets( int handle [, int length] )

fgets() 从 handle 指向的文书中读取一行并赶回长度最多为 length-1
字节的字符串。遇到换行符(包蕴在回去值中)、EOF 或然曾经读取了 length-1
字节后终止。假诺没有点名 length ,则暗中同意为 1K ,恐怕说 1024 字节。
例子:

<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// if条件避免无效指针
// http://www.manongjc.com/article/1347.html
if($fh){
    while(!feof($fh)) {
        echo fgets($fh), '<br />';
    }
}
fclose($fh);
?>

补偿表明

feof()
函数测试文件指针是还是不是到了文本截至的职位,该文件指针必须有效,倘使是没用的资源,则会陷入万分循环中。参见《PHP
文件指针函数》

 

fgetc()

fgetc() 函数用于 逐字 读取文件数量,直到文件甘休。
语法:

string fgetc( resource handle )

例子:

<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// http://www.manongjc.com/article/1348.html
if($fh){
    while(!feof($fh)) {
        echo fgetc($fh);
    }
}
fclose($fh);
?>

fgets()

fgets() 函数用于从文件中读取 一行 数额,并将文件指针指向下一行。
唤醒:若是想在读取的时候去掉文件中的 HTML 标记,请使用 fgetss() 函数。
语法:

string fgets( int handle [, int length] )

fgets() 从 handle 指向的公文中读取一行并赶回长度最多为 length-1
字节的字符串。碰到换行符(包涵在回来值中)、EOF 可能已经读取了 length-1
字节后甘休。如若没有点名 length ,则暗中认同为 1K ,或许说 1024 字节。
例子:

<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// if条件避免无效指针
// http://www.manongjc.com/article/1347.html
if($fh){
    while(!feof($fh)) {
        echo fgets($fh), '<br />';
    }
}
fclose($fh);
?>

增补表达

feof()
函数测试文件指针是或不是到了文件甘休的岗位,该文件指针必须有效,即使是船到江心补漏迟的资源,则会陷于卓殊循环中。参见《PHP
文件指针函数》

 

int fwrite(resource handle,string string[,int length])          
//写入文件

fgetc()

fgetc() 函数用于 逐字 读取文件数量,直到文件截止。
语法:

string fgetc( resource handle )

例子:

<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// http://www.manongjc.com/article/1348.html
if($fh){
    while(!feof($fh)) {
        echo fgetc($fh);
    }
}
fclose($fh);
?>

 

file_get_contents()

file_get_contents() 函数用于把 整个文件
读入一个字符串,成功再次来到一个字符串,战败则赶回 FALSE。
语法:

string file_get_contents( string filename [, int offset [, int maxlen]] )

参数说明:
参数    说明
filename    要读取的文件名称
offset    可选,指定读取伊始的职位,暗中同意为文件开第四地点
maxlen    可选,指定读取文件的长度,单位字节
例子:

<?php
// 读取时同事将换行符转换成 <br />
echo nl2br(file_get_contents('test.txt'));
?>

fgetc()

fgetc() 函数用于 逐字 读取文件数量,直到文件截至。
语法:

string fgetc( resource handle )

例子:

<?php
$fh = @fopen("test.txt","r") or die("打开 test.txt 文件出错!");
// http://www.manongjc.com/article/1348.html
if($fh){
    while(!feof($fh)) {
        echo fgetc($fh);
    }
}
fclose($fh);
?>

 

首先个参数须求提供fopen()函数打开的文书资源,该函数将第一个参数提供的字符串内容输出到由第三个参数指定的资源中。假诺给出了第多个可选参数lenth,fwrite()将在写入了length个字符时会为止。否则将一贯写入,直到抵达内容结尾时才打住。若是写入的情节少于length个字节,该函数也会在写完全体内容后为止。函数fwrite()执行到位今后会回去写入的字符数,出现谬误时则赶回FALSE。上边的代码是写入文件的一个示范。

file_get_contents()

file_get_contents() 函数用于把 整个文件
读入一个字符串,成功再次回到一个字符串,退步则赶回 FALSE。
语法:

string file_get_contents( string filename [, int offset [, int maxlen]] )

参数表达:
参数    说明
filename    要读取的文件名称
offset    可选,指定读取初步的地点,暗许为文件先导地方
maxlen    可选,指定读取文件的尺寸,单位字节
例子:

<?php
// 读取时同事将换行符转换成 <br />
echo nl2br(file_get_contents('test.txt'));
?>

 

file()

file() 函数用于把 整个文件
读入一个数组中,数组中的各个单元都是文本中相应的一行,包罗换行符在内。成功重回一个数组,退步则赶回
FALSE。
语法:

array file( string filename )

例子:

<?php
$lines = file('test.txt');
// 在数组中循环并加上行号
// http://www.manongjc.com/article/1349.html
foreach ($lines as $line_num => $line) {
    echo "Line #{$line_num} : ",$line,'<br />';
}
?>

test.txt 文件内容:
你好!
那是第二行文字。
浏览器展现:
Line #0 : 你好!
Line #1 : 那是第二行文字。

file_get_contents()

file_get_contents() 函数用于把 整个文件
读入一个字符串,成功重临一个字符串,失败则赶回 FALSE。
语法:

string file_get_contents( string filename [, int offset [, int maxlen]] )

参数表明:
参数    说明
filename    要读取的文件名称
offset    可选,指定读取伊始的任务,默许为文件开第三地方
maxlen    可选,指定读取文件的尺寸,单位字节
例子:

<?php
// 读取时同事将换行符转换成 <br />
echo nl2br(file_get_contents('test.txt'));
?>

 

复制代码 代码如下:

file()

file() 函数用于把 整个文件
读入一个数组中,数组中的每一种单元都以文件中相应的一行,包涵换行符在内。成功再次来到一个数组,失利则赶回
FALSE。
语法:

array file( string filename )

例子:

<?php
$lines = file('test.txt');
// 在数组中循环并加上行号
// http://www.manongjc.com/article/1349.html
foreach ($lines as $line_num => $line) {
    echo "Line #{$line_num} : ",$line,'<br />';
}
?>

test.txt 文件内容:
你好!
那是第二行文字。
浏览器突显:
Line #0 : 你好!
Line #1 : 那是第二行文字。

file()

file() 函数用于把 整个文件
读入一个数组中,数组中的逐个单元都以文件中相应的一行,包蕴换行符在内。成功重返一个数组,战败则赶回
FALSE。
语法:

array file( string filename )

例子:

<?php
$lines = file('test.txt');
// 在数组中循环并加上行号
// http://www.manongjc.com/article/1349.html
foreach ($lines as $line_num => $line) {
    echo "Line #{$line_num} : ",$line,'<br />';
}
?>

test.txt 文件内容:
你好!
那是第二行文字。
浏览器彰显:
Line #0 : 你好!
Line #1 : 这是第二行文字。

<?php
//声美赞臣(Meadjohnson)(Nutrilon)(Karicare)个变量用来保存文件名
$fileName = “data.txt”;
//使用fopen()函数以只写的情势打开文件,假如不存在则开创它,打开失利则通进度序
4858.com ,$handle = fopen($fileName,’w’) or
die(‘打开<b>’.$fileName.'</br>文件失利!!’);
//循环10次写入10行数据到文件中
for($row=0;$row<10;$row++){
fwrite($handle, $row.”:www.lampbrother.net\n”);
}
fclose($handle);
?>

该程序执行后,假设当前目录下存在data.txt文件,则清空该文件并写入10行数据。如果不设有data.txt文件,则会创建该文件并将10行数据写入。别的写入文件仍是可以动用fputs()函数,该函数是fwrite()函数的别名函数假若急需飞快写入文件,可以使用file_put_contents()函数,和顺序调用fopen(),fwrite()以及fclose()函数的作用雷同。该函数的选用代码如下所示:

复制代码 代码如下:

<?php
//声圣元个变量用来保存文件名
$fileName = “data.txt”;
//注明一(Wissu)个变量用来保存被写入文件中的数据
$data = “共10行数据\n”;
for($row=0;$row<10;$row++){
//将10数额都存放到一个字符串变量中
$data .= $row.”:www.lampbrother.net\n”;
}
//一回将具有数据写入到指定的公文中
file_put_contents($fileName, $data);
?>

该函数可以将数据直接写入到指定的文书中。若是还要调用多次时,并向同一个文本中写入数据,则文件中只保留了最终三回调用该函数写入的多少。因为在每一次掉啊哦那些时都会重新打开文件并将文件中原来的数量清空,所以无法像第三个程序那样两次三番写入多行数据。

二、读取文件内容

在PHP中提供了多少个从文件中读取内容的正统函数,可以依照它们的功力特色在程序中甄选哪个函数使用。这么些函数成效及其描述如下表所示。

4858.com 1

在读取文件时,不仅要留意行终止符号“\n”,程序也亟需一种标准的主意来甄别曾几何时到达文件的尾声,那个正式一般成为EOF(End
Of
File)字符。EOF是丰裕主要的概念,大概每一种主流的编程语言中都提供了相应的停放函数,来分析是还是不是到达了文本EOF。在PHP中,使用feof()函数。该函数接受一个开拓的文书资源,判断一个文本指针是不是位于文件的为止处,假诺在文件末尾处,则赶回TRUE。

①函数fread()

该函数用来在开辟的文件中读取指定长度的字符串。也得以高枕无忧用于二进制文件,在界别二进制文件和文件文件的连串上(如Windows)打开文件时,fopen()函数的mode参数要增进’b’。函数fread()的原型如下所示:

复制代码 代码如下:

string fread(int handle,int length)         //读取打开的文书

该函数从文件指针资源handle中读取最多length个字节。在读取完length个字节数,或到达EOF时,或(对于互连网流)当一个包可用时都会停下读取文件,就看先蒙受哪一种情景了。该函数再次来到读取的内容字符串,如若战败则赶回FALSE。函数的应用代码如下所示:

复制代码 代码如下:

<?php
//从文件中读取指定字节数的情节存入到一个变量中
$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;
?>

要是您只是想将一个文书的始末读入到一个字符串中,可以用file_get_contents()函数,它的品质比下边的代码好得多。file_get_contents()函数是用来将文件的内容读入到一个字符串中的首选办法,假如操作系统协理,还会选择内存映射技术来增强质量。该函数的应用代码如下所示:

复制代码 代码如下:

<?php
echo file_get_contents(“data.txt”); //读取文本文件中的内容并出口
echo file_get_contents(“c:\\files\\somepic.gif”);
//读取二进制文件中的内容并出口
?>

②函数fgets()、fgetc()

fgets()该函数三回至多从打开的文件资源中读取一行内容。函数fgets()的原型如下所示:

复制代码 代码如下:

string fgets(int handle[,int length])                            
//从打开的文本中回到一行

首先个参数提供使用fopen()函数打开的资源。假诺提供了第四个可选参数length,该函数重返length-1个字节。只怕重临蒙受换行或EOF从前读取的持有内容。如若忽略可选的length参数,暗中认可为1024个字符。在超过一半动静下,那代表fgets()函数将读取到1024个字符前赶上换行符号,因而老是成功调用都会回到下一行。若是读取失利则赶回FALSE。该函数的应用代码如下所示:

复制代码 代码如下:

<?php
$handle = fopen(“data.txt”, “r”) or die(“文件打开战败 “);
//以只读情势打开文件
while(!feof($handle)){
$buffer = fgets($handle,4096); //一回读取一行内容
echo $buffer.”<br>”; //输出各个航
}
fclose($handle);
?>

函数fgetc()在打开的文书资源中只读取当前指针地点处的一个字符。即便遇上文件为止标志EOF,则赶回FALSE值。该函数的选拔代码如下所示:

复制代码 代码如下:

<?php
$fp = fopen(‘data.txt’,’r’) or die(“文件打开退步”);
while(false !==($char = fgetc($fp))){
echo $char.”<br>”;
}
?>

③函数file()

该函数非凡有用,与file_get_contents()类似,不须要利用fopen()函数打开文件,不一致的是file()函数可以把任何文件读入到一个数组中。数组中的每种元素对应文件中相应的行,各因素由换行符分割,同时换行符仍附加在各种成分的最终。那样,就可以运用数组的连带函数对文本内容开展处理。该函数的行使代码如下所示:

复制代码 代码如下:

<?php
//将文件test.txt中的内容读入到一个数组中,并出口
print_r(file(test.txt));
?>

④函数readfile()

该函数可以读取指定的整个文件,登时输出到输出缓冲区,并赶回读取的字节数。该函数也不要求采纳fopen()函数打开文件。在底下的演示中,轻松地将文件内容输出到浏览器。代码如下所示:

复制代码 代码如下:

<?php
//直接将文件data.txt中的数据读出并出口到浏览器
readfile(“data.txt”);
?>

您或许感兴趣的文章:

  • php常用文件操作函数汇总
  • PHP打开和关闭文件操作函数计算
  • PHP操作文件的有些主旨函数使用示例
  • php文件夹与文件目录操作函数介绍
  • PHP常用文件操作函数和简易实例分析

发表评论

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

网站地图xml地图
Copyright @ 2010-2019 美高梅手机版4858 版权所有