Atitit 文件读取规范 目录 1.1. 以fgetss取代fgets读取一行并过滤掉 HTML 和 PHP 标记。1 1.2. 3. 以二进制读取 fread取代fgets1 1.3. 4.

Atitit 文件读取规范

目录

1.1. 以fgetss取代fgets读取一行并过滤掉 HTML 和 PHP 标记。 1

1.2. 3. 以二进制读取 fread取代fgets 1

1.3. 4.将整个文件读入到一个字符串的方法 file_get_contents() 2

1.4. 5.将整个文件读入到一个数组中返回 file() 2

    1. 以fgetss取代fgets读取一行并过滤掉 HTML 和 PHP 标记。

fgetss() 函数从打开的文件中读取一行并过滤掉 HTML 和 PHP 标记。

fgets() 相同,不同的是 fgetss 尝试从读取的文本中去掉任何 HTML 和 PHP 标记。

例子:

1

2

3

4

5

6

<?php

$file = fopen("test.htm","r");

echo fgetss($file);

fclose($file);

?>

  当然也可以通过传递第三个参数来指定哪些标记是允许输出的:

1

2

3

4

5

6

7

<?php

$file = fopen("test.htm","r");

echo fgetss($file,1024,"<p>,<b>");//<p>和<b>标记将不会被过滤

fclose($file);

?>  

详细信息参考:http://www.w3school.com.cn/php/func_filesystem_fgetss.asp

    1. 3. 以二进制读取 fread取代fgets

同样需要打开文件连接 fopen

1

2

3

$fh = fopen("c:\\myfile.txt", "rb");//rb是兼容二进制读取

$data = fread($fh, filesize("c:\\myfile.txt"));

fclose($fh);

特别注意:fread()虽然可以通过第二个参数来指定读取文件的长度,但最长只能读取8192个字节(8kb),

如果文件长度超过8k则需要循环读取

    1. 4.将整个文件读入到一个字符串的方法 file_get_contents()

详细可见:PHP的file_get_contents()方法,将整个文件读入字符串中

    1. 5.将整个文件读入到一个数组中返回 file()

1

2

3

<?php

print_r(file("c:\\abc.txt"));//结果将abc.txt文件的每一行当成数组的每个元素返回

?>