fgetss()

1. 定义

从打开的文件句柄中读取一行字符,并尝试过滤掉HTML和PHP标签,直到遇到换行符、文件末尾或者函数参数列表中指定的长度($length - 1)后停止。 如果没有指定length,则默认为1024字节。

读取成功时返回读取的字符串,文件指针后没有多余的数据或者读取失败则返回FALSE。

2. 语法

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

3. 参数说明

参数 可选性 数据类型 描述
$handle 必需 资源类型 文件句柄,通过fopen()函数打开的文件资源
$length 可选 整型 规定要输出的字符串的字节数
$allowable_tags 可选 字符串 指定不被过滤的标记

4. 示例

<?php

// fgetss()
// 从打开的文件句柄中读取一行字符,并尝试过滤掉HTML和PHP标签,直到遇到换行符、文件末尾或者函数参数列表中指定的长度($length - 1)后停止

file_put_contents(__DIR__ . '/test.txt', "<p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Summus dolor plures dies manere non potest? Expectoque quid ad id, quod quaerebam, respondeas. Sed residamus, inquit, si placet. Tu quidem reddes; Duo Reges: constructio interrete. Quae similitudo in genere etiam humano apparet. </p>");

$handle = fopen(__DIR__ . '/test.txt', 'r+');

if ($handle) {

  while (!feof($handle)) {
    $buffer = fgetss($handle, 4096);
    echo $buffer;// 输出:Lorem ipsum dolor sit amet, consectetur adipiscing elit. Summus dolor plures dies manere non potest? Expectoque quid ad id, quod quaerebam, respondeas. Sed residamus, inquit, si placet. Tu quidem reddes; Duo Reges: constructio interrete. Quae similitudo in genere etiam humano apparet.
  }
  fclose($handle);

} else {

  echo '打开文件失败!';

}

5. 延展阅读

  • fgets():从文件指针处读取一行字符,直到遇到换行符、文件末尾或者函数参数列表中指定的长度($length - 1)后停止
  • fopen():打开一个指定的文件或 URL。 如果 PHP 的allow_url_fopen未被打开,那么打开一个 URL 时fopen()调用失败
  • popen():用于打开一个指向进程的管道,只允许单向的读或者写
  • strip_tags():返回去除指定字符串中 HTML 和 PHP 标记后的字符串