PHPfgets()和fgetss():逐行读取文件

PHP 中提供了两个函数可以实现逐行读取文件,分别是 fgets() 和 fgetss(),下面来分别介绍一下这两个函数。

1、fgets() 函数

fgets() 函数用于一次读取一行数据。函数的语法格式如下:

fgets(resource $handle[, int $length])

其中参数 $handle 是被打开的文件;参数 $length 为可选参数,用来设置读取的数据长度。函数能够实现从指定文件 $handle 中读取一行并返回长度最大值为 $length-1 个字节的字符串。在遇到换行符、EOF 或者读取了 $length-1 个字节后停止。如果忽略 $length 参数,则默认读取 1k(1024字节)长度。

【示例】使用 fgets() 函数逐行读取文件的内容并输出。

';
        }
        fclose($handle);
    }                                
?>

运行结果如下:

C语言中文网
http://c.biancheng.net/

2、fgetss() 函数

fgetss() 函数是 fgets() 函数的变体,用于读取一行数据,同时 fgetss() 函数会过滤掉读取内容中的 HTML 和 PHP 标记,函数的语法格式如下:

fgetss(resource $handle[, int $length[, string $allowable_tags]])

参数说明如下:

  • $handle:为被打开的文件;
  • $length:可选参数,用来设置要读取的数据长度;
  • $allowable_tags:可选参数,用来指定哪些标记不被去掉。

注意:fgetss() 函数在 PHP7.3 及之后的版本中已经弃用。

【示例】分别使用 fgets() 函数和 fgetss() 函数读取 index.html 文件并输出结果,看一看有什么区别。

';
    $handle = @fopen("index.html", "r");
    if ($handle) {
        while (!feof($handle)) {
            $buffer = @fgets($handle, 4096);
            echo htmlentities($buffer,ENT_QUOTES,"UTF-8").'
'; } fclose($handle); } echo '-------使用 fgetss() 函数的输出结果:-------
'; $handle = @fopen("index.html", "r"); if ($handle) { while (!feof($handle)) { $buffer = @fgetss($handle, 4096); echo $buffer.'
'; } fclose($handle); } ?>

运行结果如下:

-------使用 fgets() 函数的输出结果:-------

C语言中文网


http://c.biancheng.net/


-------使用 fgetss() 函数的输出结果:-------
C语言中文网
http://c.biancheng.net/

分享文章:PHPfgets()和fgetss():逐行读取文件
URL链接:http://www.mswzjz.cn/qtweb/news0/450700.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能