首页 > 编程笔记 > PHP笔记 阅读:7

PHP读取文件函数汇总(附带实例)

打开文件后,可以使用 PHP 内置函数来读取文件中的数据。这些函数不仅可以一次只读取一个字符,还可以一次性读取整个文件。

读取文件相关的 PHP 内置函数如下表所示:

表:读取文件相关的 PHP 内置函数说明
函数名称 说明
file() 把整个文件读入一个数组,各元素由换行符分隔
file_get_contents() 把整个文件读入一个字符串
fread() 可以规定读取几个字符
fgetc() 读取一个字符
fgets() 读取一行字符串
fgetss() 读取一行字符串,并自动过滤 HTML 和 PHP 标记

PHP file()函数

该函数的基本语法如下:
array file(string filename[,int use_include_path[,resource context]])
【实例 1】file() 函数的应用。
<?php
$filename="readme";
if(file_exists($filename))
{
    $a=file($filename);
    foreach($a as $num=> $value)
    echo $num."=>".$value."< br />";
}
else
    echo "该文件不存在";
?>
运行结果为:

0=>1.test
1=>2.测试文件

PHP file_get_contents()函数

该函数的基本语法如下:
string file_get_contents(string filenae[,int use_include_path[,resource context[,int offset[,int maxlen]]]])
【实例 2】file_get_contents() 函数的应用。
<?php
$filename="readme";
if(file_exists($filename))
{
    $a=file_get_contents($filename);
    echo $a;
}
else
    echo "该文件不存在";
?>
运行结果为:

1.test 2.测试文件

从运行结果可以看出,虽然使用 file_get_contents() 函数也可以读取文件内容,但是它将所有文件内容显示在同一行,未进行换行显示。

如何修改代码才能达到换行显示内容的效果呢?

【实例 3】file_get_contents() 函数配合 explode() 函数,实现文件内容换行显示。
<?php
$filename="readme";
if(file_exists($filename))
{
    $a=file_get_contents($filename);
    $b=explode("\n",$a);
    foreach($b as $num=> $value)
    echo $num."=>".$value."<br />";
}
else
    echo "该文件不存在";
?>
在浏览器上的输出结果为:

0=>1.test
1=>2.测试文件

explode()函数的功能是将字符串分隔成数组。

PHP fread()函数

该函数的基本语法如下:
fread(int handle, int length)
该函数从文件指针 handle 指向的内存处最多读取 length 字节。

【实例 4】读取文件的内容。
<?php
$filename="readme";
if(file_exists($filename))
{
    $handle=fopen($filename,"r");
    $a=fread($handle,filesize($filename));
    echo $a;
    fclose($handle);
}
else
    echo "该文件不存在";
?>
在上述代码中,必须先使用 fopen() 函数打开文件,再使 filesize() 函数读取文件的字节数,最后使用 fread() 函数读取文件内容。

PHP fgetc()函数

该函数的基本语法如下:
string fgetc ( resource $handle )

【实例 5】fgetc()函数的应用。
<?php
$fp = fopen('readme.txt', 'r');
echo fgetc($fp);
?>
运行结果为:

1

PHP fgets()函数

该函数的基本语法如下:
string fgets ( int $handle [, int $length ] )
从 handle 指向的文件中读取一行字符串并返回长度最多为 length−1 字节的字符串。碰到换行符(包括在返回值中)、EOF(文件结束标志)或在读取了 length−1 字节后停止。如果没有指定 length 参数的值,则默认为 1024 字节。该函数在出错时返回 FALSE。

【实例 6】fgets() 函数的应用。
<?php
$fp = fopen('readme', 'r');
echo fgets($fp);
?>
运行结果为:

1.test

PHP fgetss()函数

该函数的基本语法如下:
string fgetss( resource $handle [, int $length [, string $allowable_tags ]] )
和 fgets() 函数的不同之处在于,fgetss() 函数尝试从读取的文本中去除 HTML 和 PHP 标记。读者可以用可选的第 3 个参数指定哪些标记不被去除。

【实例 7】fgetss() 函数的应用。
<?php
$fp = fopen('readme', 'r');
echo fgetss($fp);
?>

相关文章