PHP文件读取操作详解:fopen、fgets、file等函数应用实例
PHP文件读取操作涉及的PHP文件操作函数比文件写入操作更多。这些功能将在代码示例中详细介绍。

读取文本文件中存储的数据涉及的三个主要步骤和一些文件操作函数如下:
1、打开文件(文件操作函数:fopen)
2、文件数据读取(文件操作函数:fgets、file、readfile、feof等)
3、关闭文件(文件操作函数:fclose)
下面仍然以PHP文件读写操作代码为例来讲解文件读取方法的具体应用。示例中,通过调用不同的PHP文件读取操作函数来读取文本文件中的数据,可以加深PHP文件读取操作功能。理解以便在PHP网站开发中合理应用。文本文件写入的数据来自PHP文件读写操作的文件写入教程。 fopen函数中的文件读写方式也可以参考这篇文章。
PHP文件读取操作代码示例
复制代码代码如下:
$readFun = "恐惧";
开关($readFun)
案例“fgetss”:
@$fp = fopen("leapsoulcn.txt","r") 或 die("系统错误");
$allowable_tags = "
”;
while (!feof($fp)) {
$output = fgetss($fp,100,$allowable_tags);
回显$输出;
fclose($fp);
休息;
案例“fgetcsv”:
@$fp = fopen("leapsoulcn.txt","r") 或 die("系统错误");
while (!feof($fp)) {
$输出 = fgetcsv($fp,100,"\t");
print_r($输出);
fclose($fp);
休息;
案例“读取文件”:
echo readfile("leapsoulcn.txt");
休息;
案例“fpassthru”:
@$fp = fopen("leapsoulcn.txt","r") 或 die("系统错误");
if(!fpassthru($fp))
出口();
fclose($fp);
休息;
案例“文件”:
$output = file("leapsoulcn.txt");
print_r($输出);
休息;
案例“fgetc”:
@$fp = fopen("leapsoulcn.txt","r") 或 die("系统错误");
while (!feof($fp)) {
$str = fgetc($fp);
echo ($str == "\n"?"
“:$str);
fclose($fp);
休息;
案例“恐惧”:
@$fp = fopen("leapsoulcn.txt","r") 或 die("系统错误");
回声 fread($fp,300);
fclose($fp);
休息;
默认:
@$fp = fopen("leapsoulcn.txt","r") 或 die("系统错误");
while (!feof($fp)) {
$输出= fgets($fp,100);
回显$输出;
fclose($fp);
休息;
注意:在上面的例子中,你可以通过给$readFun赋值来调用不同的PHP文件读取方法。涉及到的PHP文件读取操作函数有fgets、fgetss、fgetcsv、readfile、fpassthru、file、fgetc等函数。
PHP文件读取操作函数fgets、fgetss、fgetcsv的区别
代码示例中,默认的PHP文件读取操作函数是fgets。 fgetss 和 fgetcsv 函数的功能与 fgets 相同,都是一次读取文件一行,直到文件末尾。这里我将要读取的文本文件中的数据长度设置为100,即最大读取长度为99(100-1)。这样,当遇到换行符\n或者文件结束符EOF或者文件读完达到99字节时停止读取数据。 fgets 函数以字符串类型返回从文件中读取的数据。
fgetss 函数是 fgets 函数的变体。它可以通过传递第三个参数来剥离PHP和HTML标签并过滤掉不必要的数据,可以提高网站的安全性。例如,可以在留言簿中过滤用户的输入数据,fgetss函数原型如下:
复制代码代码如下:
string fgetss(资源 fp,int 长度, string[可选] allowed_tags)
allowed_tags 参数是可选的。例子中我提前在leapsoulcn.txt文件中写了一行包含html、body、h1标签的文本,然后在代码中我设置了只可以出现h1标签。
fgetcsv 函数是 fgets 的另一个变体。不同之处在于,当文本文件中写入的数据使用分隔符时,可以使用 fgetcsv 将一行分成多行。返回的结果存储在数组中。函数原型如下
复制代码代码如下:
array fgetcsv(资源 fp,int 长度,字符串[可选]分隔符,字符串[可选]附件)
分隔符是可选的。由于之前写入文件的数据中使用了\t,所以示例中的文件读取函数fgetcsv中使用\t作为分隔符,然后通过print_r打印出fgetcsv返回的数组。结构。
fgets、fgetss、fgetcsv这三个PHP文件读取操作函数的共同点是,它们都需要提前使用fopen函数打开读取的文件。同时使用feof函数判断文件指针是否到达文件末尾。记得在读操作完成后使用fclose。函数关闭文件。
fgetc:读取单个字符
fgetc函数用于读取字符。在代码示例中,我将字符一一读取。当遇到\n字符时,将其转换为html文件中的br标签,以便在浏览器中显示特定的换行效果。当然,这个功能的效率肯定是比较低的,不建议使用。
PHP文件读取操作函数readfile、fpassthru、file的区别
这三个函数的共同点是它们可以一次读取整个文件,而不是一次读取一行或一个字符。区别在于:
readfile函数打开文件,返回文件内容并直接输出到浏览器上。与fopen函数一样,函数返回值是文件中的字符总数。 readfile函数的第二个参数是可选的,指示PHP是否应该在include_path中搜索文件。在代码示例中,我使用echo语句不输出读取的文件内容,而是输出读取的文件字符总数。读取的文件内容已经被readfile函数自动输出了。这一点一定要清楚! readfile函数原型如下:
复制代码代码如下:
int readfile(字符串文件名,int[可选] use_include_path)
文件函数是另一种读取文件的方法。它将读取的文件内容发送到一个数组,每行一个数组单元。文件函数原型如下:
复制代码代码如下:
数组文件(字符串文件名,布尔[可选] use_include_path)
fpassthru()函数用于输出文件指针处剩余的所有数据,即如果文件指针不在开头,则只输出文件指针后面的数据。该函数从当前位置读取给定的文件指针到 EOF,并将结果写入输出缓冲区。返回值是输出的字符数。当发生错误时,返回FALSE。与readfile()函数相比,fpassthru()函数需要先打开文件,读取数据后关闭文件。
fread 和 file_exists、文件大小函数
fread函数也是一种读取文件的方法。它可以从文件中读取任何字节,以满足长度或文件末尾的要求。读取函数原型如下:
复制代码代码如下:
字符串 fread(资源 fp,int 长度)
使用fread函数时,当想要读取一个文件中的所有数据但不知道文件数据长度时,filesize函数可以解决这个问题,即
复制代码代码如下:
@$fp = fopen("leapsoulcn.txt","r") 或 die("系统错误");
echo fread($fp,filesize("leapsoulcn.txt"));
fclose($fp);
PHP文件读写操作教程中我们没有使用过file_exists函数。通常在PHP网站开发中,出于各种考虑,有时当文件不存在时,我们并不想创建新文件。这时我们需要在使用fopen函数之前,使用file_exists函数来判断文件是否存在,即
复制代码代码如下:
if(file_exists("leapsoulcn.txt"))
//执行PHP文件读写操作
以上是PHP文件读写操作教程中对文件读取操作的各种方法的介绍。通过合理应用PHP文件读写操作功能,可以实现简单的留言簿、网站日志记录等功能。