PHP
函数fgets就是其中一个功能强大的函数。PHP函数fgets -- 从
文件指针中读取一行说明string fgets ( int handle [, int length] )从 handle 指向的文件中读取一行并返回长度最多为 length - 1 字节的字符串。碰到换行符(包括在返回值中)、EOF 或者已经读取了 length - 1 字节后停止(看先碰到那一种情况)。如果没有指定 length,则默认为 1K,或者说 1024 字节。出错时返回 FALSE。PHP函数fgets通常的缺陷:文件指针必须是有效的,并且必须指向一个由 fopen() 或 fsockopen() 成功打开的文件。以下是一个PHP函数fgets简单例子: 例子 1. 逐行读取文件<?php$handle=fopen(/tmp/inputfile.txt,r)while(!feof($handle)){$buffer=fgets($fd,4096)注: length 参数从 PHP 4.2.0 起成为可选项,如果忽略,则行的长度被假定为 1024。从 PHP 4.3 开始源码天空,忽略掉 length 将继续从流中读取数据直到行结束。如果文件中的大多数行都大于 8KB,则在脚本中指定最大行的长度在利用资源上更为有效。注: 从 PHP 4.3 开始本函数可以安全用于二进制文件。早期的版本则不行。fgets一次只读一行,要用它读取整个文件需要使用循环,例如下面这样:
<?php
$fp=fopen('a.html','r')
while(!feof($fp)){
$str=fgets($fp)
echo $str
}
fclose($fp)
?>
readfile读取的文件是有换行的,但是直接输出到浏览器时候,浏览器会忽略里面多余的空格和换行,可以下面这样:
<?php
echo '<pre>'
readfile('a.html')
echo '</pre>'
?>
你必须知道
你的中文文本文件使用的编码方式,默认的可能是windows-1252(ANSI),乱码的原因就是文本文件的编码和你的浏览器页面charset指定的编码不一致造成的,可以在输出之前对内容执行 $content = iconv('文本文件的编码格式,如windows-1252', '浏览器charset,如utf-8', $content)就行了
评论列表(0条)