长乐王
长乐王

PHP读取文件内容的几种方法

一、fread():读取打开的文件,第二个参数规定待读取的最大字节数。

$myfile = fopen('testfile.txt', 'r') or die('Unable to open file!');
echo fread($myfile, filesize('testfile.txt'));
fclose($myfile);

二、fgetc():从文件读取单个字符,调用fgetc()函数之后,文件指针会移动到下一个字符。

$myfile = fopen('testfile.txt', 'r') or die('Unable to open file!');
echo fgetc($myfile);
fclose($myfile);

三、fgets():从文件读取单行,可以用可选的第二个参数指定行的长度。

$myfile = fopen('testfile.txt', 'r') or die('Unable to open file!');
echo fgets($myfile);
fclose($myfile);

四、fgetss():fgetss()函数跟fgets()函数功能一样,但是fgetss()函数会尝试从读取的文本中去掉任何HTML和PHP标记,可以用可选的第三个参数指定哪些标记不被去掉。

$myfile = fopen('testfile.txt', 'r') or die('Unable to open file!');
while(!feof($myfile)){
    echo fgetss($myfile, 1024, '<p>') . '<br>';
}
fclose($myfile);

五、feof():检查End-Of-File(EOF),逐行读取文件,直到文件的末尾,支持远程文件或者流文件。

$myfile = fopen('testfile.txt', 'r') or die('Unable to open file!');
while(!feof($myfile)){
    echo fgets($myfile) . '<br>';
}
fclose($myfile);
#
#读取远程文件
#
$handle = fopen('http://www.hulumiao.cn', 'r');
$content = '';
while(!feof($handle)){
    $content .= fread($handle, 1024);
}
echo $content;
fclose($handle);

六、fpassthru():将给定的文件指针fseek()从当前的位置读取到EOF并把结果写到输出缓冲区。

$myfile = fopen('testfile.txt', 'r');
fseek($myfile, 1024);
fpassthru($myfile);

七、readfile():读入一个文件并写入到输出缓冲,返回从文件中读入的字节数。

$size = readfile('testfile.txt');
echo $size; #返回字节数

八、file():将文件内容读入一个数组中,数组的每一项对应文件中的一行,包括换行符在内,不需要行结束符时可以使用 rtrim() 函数过滤换行符。

$myfile = file('testfile.txt');
foreach($myfile as $line => $content){
    echo '第' . ($line + 1) . '行:' . $content . '<br>';
}

九、file_get_contents():把整个文件读入一个字符串中,性能较好,访问远程文件时,也可以设置超时时间。

echo file_get_contents('testfile.txt');
#
#读取远程文件
#
$timeout = stream_context_create(array( 
    'http' => array( 
        'timeout' => 1
        ) 
    ) 
); 
echo file_get_contents('http://www.hulumiao.cn/', 0, $timeout);
本文番号: 长乐王 - 前端开发 - PHP读取文件内容的几种方法

评论