飙血推荐
  • HTML教程
  • MySQL教程
  • JavaScript基础教程
  • php入门教程
  • JavaScript正则表达式运用
  • Excel函数教程
  • UEditor使用文档
  • AngularJS教程
  • ThinkPHP5.0教程

PHP 读取文件内容fgetc、feof、fgets、fread的使用

时间:2021-12-27  作者:匿名  

在 PHP 中从文件中读取内容可以通过两种方式完成:

  • 使用readfile()功能

  • 使用fread()读取从打开的文件的内容。

使用读取文件 readfile()

该readfile()函数读取文件的全部内容并将其写入输出缓冲区。

如果我们有一个包含以下内容的文件info.txt:

我想学习:
C语言
C++
数据库
安卓
Python

我们可以使用该readfile()函数读取上述文件的全部内容并将其写入输出缓冲区。

<?php
echo readfile("info.txt");
?>

这个时候读取到的内容是整个文件的所有内容。

请注意,这里info.txt没有带路径,说明读取的文件与php文件在同一个文件夹下,如果需要读取其他位置的文件,请使用文件所在位置的路径,例如下面几种情况:

文件在根目录:/info.txt

文件在update文件夹:/update/info.txt

使用打开和读取文件 fread()

我们可以使用该fread()函数从已经打开的文件中读取内容。该fread()函数有两个参数:

  1. 首先是文件名

  2. 第二个参数指定要读取的内容的大小(以字节为单位)。

举个例子,如果我们有一个文件info1.txt,内容如下:

我喜欢编程,我喜欢php!

如果我们想读取文件的全部内容,我们将以读取模式打开文件,然后使用该fread()函数。

<?php
// 打开文件
$myfile = fopen("info1.txt", "r");
// 读取文件内容
// fread() 函数
echo fread($myfile, filesize("info1.txt"));
// 关闭文件
fclose($myfile);
?>

输出内容为:

我喜欢编程,我喜欢php!

我们使用filesize()函数来指定等于整个文件大小的字节大小,因此该fread()函数读取文件的整个内容。

但是,如果您只想打印文件中的部分内容,您可以直接在第二个参数中指定大小(1 个字节 = 1 个字符),如下所示,

<?php
// 打开文件
$myfile = fopen("info1.txt", "r");
// 读取10个字节的内容
// fread() 函数
echo fread($myfile, 10);
// 关闭文件
fclose($myfile);
?>

输出内容:

我喜欢编程

需要注意的是,每个汉字包含了2个字节,所以这里设置10只能输出5个中文字符,如果是英文则可以输出10个字母。

使用逐行读取文件 fgets()

fgets()函数文件中读取一行(直到换行符)。

测试一下读取info.txt文件

<?php
// 打开文件
$myfile = fopen("info.txt", "r");
// 使用fgets()读取一行内容
echo fgets($myfile);
// 关闭文件
fclose($myfile);
?>

输出结果为:

我想学习:

调用fgets()函数后文件指针移动到下一行,所以如果我们调用fgets()函数两次,我们将从文件中得到两行,

<?php
// 打开文件
$myfile = fopen("info.txt", "r");
// 使用fgets()读取一行内容
echo fgets($myfile) . "<br>";
// 使用fgets()读取一行内容
echo fgets($myfile);
// 关闭文件
fclose($myfile);
?>

输出内容:

我想学习:
C 语言

使用获取文件结尾 feof()

如果文件指针位于文件末尾,则该函数feof()返回true,否则返回false.

该函数可用于遍历未知大小的文件,因为该feof()函数可用于检查是否到达文件尾。

让我们使用feof()andfgets()函数逐行读取和回显/打印文件studytonight-info.txt的内容。

<?php
// 打开文件
$myfile = fopen("studytonight-info.txt", "r");
// 循环输出内容 !feof($myfile)用于检查是否到达了文件的尾部 如果没有则继续循环 如果到达则停止
while(!feof($myfile)) {
    //输出一行内容
    echo fgets($myfile) . "<br>";
}
// 关闭文件
fclose($myfile);
?>

输出内容:

我想学习:
C语言
C++
数据库
安卓
Python

逐字符读取文件 - fgetc()

我们可以使用函数fgetc()从头开始读取单个字符。

我们可以使用fgetc()函数和feof()函数来逐个字符地打印文件的全部内容。

如果您必须替换某个固定位置的字符,就需要用到这个方法。

例如:

<?php
// 打开文件
$myfile = fopen("info.txt", "r");
// 循环读取文件
while(!feof($myfile)) {
    //读取一个字符的内容
    echo fgetc($myfile);
}
// 关闭文件
fclose($myfile);
?>

输出内容:

我想学习:C语言C++数据库安卓Python
搜你所爱
php入门教程:目录
湘ICP备14001474号-3  投诉建议:234161800@qq.com   部分内容来源于网络,如有侵权,请联系删除。