PHP文件处理--读取文件

article/2025/9/23 8:04:37

读取文件

利用PHP提供的文件处理函数,可以读取一个字符、一行字符串或者整个文件,也可以读取任意长度的字串。

1。读取一个字符:fgetc()

在对某一个字符进行查找、替换时,就需要有针对的对某个字符进行读取,在PHP中可以使用fgetc()函数实现此功能。

语法如下:

string fgetc(resource handle)

该函数返回一个字符,该字符从handle指向文件中得到,遇到EOF则返回false。

注意:该函数可能返回布尔值 false,但也可能返回一个与 false 等值的非布尔值,例如 0 或者 ""。

注释:EOF----C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~127,不可能出现-1,因此可以用EOF作为文件结束标志。

例如:

$fopen=fopen('./test.txt','rb');
while(false!==($chr=fgetc($fopen))){
echo $chr;
}
fclose($fopen);
运行结果为

107sdfsdf网站工作室



2。读取一行数据:fgets()和fgetss()

(1)fgets()函数

fgets()函数用于一次读取一行数据。语法如下

string fgets(int handle[,int length])

参数handle是被打开的文件,参数length是要读取的数据长度。函数能够实现从指定文件handle中读取一行并返回长度最大值为length-1个字节的字符串。在遇到换行符,EOF或者读取了length-1个字节后停止。如果忽略了length参数,那么读取数据直到行结束。

例如:

$fopen=fopen('./test.txt','rb');
while(!feof($fopen)){//使用feof()函数测试指针是否到了文件结束的位置
echo fgets($fopen)."<br>";//输出当前行
}
fclose($fopen);
运行结果为:

107sdfsdf网站工作室 

123234 
nihao


(2)fgetss()函数

fgetss()函数是fgets()函数的变体,用于读取一行数据,同时fgetss()函数会过滤掉被读取内容中的html和php标记。语法如下:

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

该函数能够从读取的文件中去掉任何html和php标记。它可以使用allowable_tags参数来控制哪些标记不被去掉。

例如:

分别使用fgets()函数和fgetss()函数读取test.php文件并输出结果。

$fopen = fopen('./test.php', 'rb');
while (!feof($fopen)) {
echo fgets($fopen) . "<br>";
}
fclose($fopen);
echo "------------<br>";
$fopen = fopen('./test.php', 'rb');
while (!feof($fopen)) {
echo fgetss($fopen) . "<br>";
}
fclose($fopen);


注test.php文件

运行结果如下


3。读取任意长度的字符串:fread()

fread()函数可以从文件中读取指定长度的数据,语法如下:

string fread(int handle,int length)

参数handle为指向的文件资源,length是要读取的字节数。当函数读取length个字节或到达EOF时,停止执行。

例如:

$fp=fopen("./test.txt","rb");
echo fread($fp,4);//使用fread()函数读取文件内容的前4个字节
echo "<br>";
echo fread($fp,filesize("./test.txt"));//读取其余的文件内容
运行结果为:

107s
dfsdf网站工作室 123234 nihao



4。读取整个文件:

readfile()、file()和file_get_contents()

(1)readfile()函数

readfile()函数用于读入一个文件并将其写入到输出缓存,如果出现错误则返回false。语法如下

若成功,则返回从文件中读入的字节数。若失败,则返回 false。您可以通过 @readfile() 形式调用该函数,来隐藏错误信息。

语法

readfile(filename,include_path,context)
参数 描述
filename 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜索文件,可以使用该参数并将其设为 true。
context 可选。规定文件句柄的环境。Context 是可以修改流的行为的一套选项。

说明

对 context 参数的支持是 PHP 5.0.0 添加的。

注:

使用readfile()函数,不需要打开/关闭文件,不需要"echo/print"等输出语句,直接写文件路径即可。

(2)file()函数

file()函数也是读取整个文件的内容,只是file()函数将文件内容按行存放到数组中,包括换行符在内。如果失败则返回false。语法如下:

file(path,include_path,context)
参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context

可选。规定文件句柄的环境。

context 是一套可以修改流的行为的选项。若使用 null,则忽略。

说明

对 context 的支持是 PHP 5.0.0 添加的。

返回的数组中每一行都包括了行结束符,因此如果不需要行结束符时还需要使用 rtrim() 函数。

(3)file_get_contents()函数

该函数将文件内容(filename)读入一个字符串,如果有offset和maxlen参数,将在参数offset所指定的位置开始读取长度为maxlen的内容。如果失败则返回false。

语法如下:

file_get_contents(path,include_path,context,start,max_length)
参数 描述
path 必需。规定要读取的文件。
include_path 可选。如果也想在 include_path 中搜寻文件的话,可以将该参数设为 "1"。
context

可选。规定文件句柄的环境。

context 是一套可以修改流的行为的选项。若使用 null,则忽略。

start 可选。规定在文件中开始读取的位置。该参数是 PHP 5.1 新加的。
max_length 可选。规定读取的字节数。该参数是 PHP 5.1 新加的。

说明

对 context 参数的支持是 PHP 5.0.0 添加的。

例如:

使用readfile()函数、file()函数和file_get_contents()函数分别读取文件count.txt的内容,代码如下:

//使用readfile()函数读取
readfile("test.txt");
echo "<br>";
//使用file函数获取test.txt的内容
$f_arr=file("test.txt");
print_r($f_arr);
echo "<br>";
foreach($f_arr as $value){echo $value;
}
echo "<br>";
//使用file_get_contents()函数读取
$f_chr=file_get_contents("test.txt");
echo $f_chr;


运行结果为:

107sdfsdf网站工作室 123234 nihao
Array ( [0] => 107sdfsdf网站工作室 [1] => [2] => 123234 [3] => nihao ) 
107sdfsdf网站工作室 123234 nihao
107sdfsdf网站工作室 123234 nihao





http://chatgpt.dhexx.cn/article/kAPeDiXT.shtml

相关文章

PHP文件写入和读取

“r”:只能读取文件&#xff0c;不能写入文件&#xff08;写入操作被忽略&#xff09; “w”:只能写入文件&#xff0c;不能读取文件&#xff08;读取操作被忽略&#xff09; “a”:只追加文件&#xff0c;与“w”类似&#xff0c;区别是“w”删除原有的内容&#xff0c;“a”不…

php读取txt文件内容,并且按照格式输出。

我遇到个很初级的需求&#xff0c;大概就是给了一个txt里面内容是 然后要求在页面原样输出&#xff0c;不换行&#xff0c;不要格式的话 直接 file_get_contents就完事&#xff0c;要是按照格式的话 就得用file函数了&#xff0c;下面说下file函数是干什么的。 file() 函数把整…

PHP—文件打开/读取

https://www.cnblogs.com/penghuwan/p/6884932.html 文章提纲&#xff1a; 一&#xff0e;实现文件读取和写入的基本思路二&#xff0e;使用fopen方法打开文件三&#xff0e;文件读取和文件写入操作四&#xff0e;使用fclose方法关闭文件五&#xff0e;文件指针的移动六&…

php读取文件内容(入门)

第一种方法&#xff08;整体&#xff09; 干脆利索($myfile接收数据流),注意fread第二个参数是设置读取的长度&#xff0c;这里直接获取文件内容的长度&#xff0c;然后根据文件内容长度直接读出文件内容。 <?php $myfilefopen(file1,"r") or die("Cannot…

【实例】php读取整个文本文件中的内容

实例说明 在开发网站过程中&#xff0c;很多服务条款、协议等都是以文本文件的形式存储。如果要读取这些文件中的内容就需要使用文件系统函数。 代码 &#xff08;1&#xff09;使用 file()函数读取文件中的内容&#xff1a; <?php // 使用 file()函数读取文件内容 $ar…

php案例:把文件内容读取到字符串中

作者&#xff1a;陈业贵 华为云享专家 51cto(专家博主 明日之星 TOP红人) 阿里云专家博主 文章目录 代码&#xff1a;效果&#xff1a; 代码&#xff1a; <?php $peoplefile_get_contents("./cyg1.php");//读取当前路径下的cyg.php文件 print $people;//输出文件…

PHP 文件写入和读取

“r”:只能读取文件&#xff0c;不能写入文件&#xff08;写入操作被忽略&#xff09; “w”:只能写入文件&#xff0c;不能读取文件&#xff08;读取操作被忽略&#xff09; “a”:只追加文件&#xff0c;与“w”类似&#xff0c;区别是“w”删除原有的内容&#xff0c;“a”不…

【PHP】文件写入和读取详解

一&#xff0e;实现文件读取和写入的基本思路&#xff1a; 1&#xff0e;通过fopen方法打开文件&#xff1a;$fp fopen(/*参数&#xff0c;参数*/)&#xff0c;fp为Resource类型 2&#xff0e;进行文件读取或者文件写入操作&#xff08;这里使用的函数以1中返回的$fp作为参数…

fliplr 函数 matlab

fliplr(B)&#xff1a;左右翻转矩阵B

MATLAB行向量顺序颠倒函数 - fliplr

fliplr(A)只可用于行向量&#xff0c;列向量不行&#xff01; 实例: (1) 行向量 (2) 列向量

Matlab篇(四)MATLAB中fliplr和flipud实现向量顺序翻转

%% 翻转行向量就用fliplr&#xff0c;翻转列向量就用flipud a1 [1,2,3,4,5,6]b fliplr(a1)a2 [1,2,3 ; 4,5,6]c a2;c1 fliplr(c)c2 flipud(c) 运行结果&#xff1a;

matlab中fliplr函数

fliplr函数 fliplr函数主要的作用是将矩阵进行左右翻转。 官网上的解释是&#xff1a; 如果是行向量&#xff08;或一维矩阵&#xff09; 可以将其左右翻转&#xff0c;即对折后置换的效果 如果是多维向量 可以看成每一行进行左右对称交换 书写者&#xff1a;小飞侠 参…

fliplr函数对时间序列进行反转

代码 n -2:5; x exp(-0.5*n); x1 fliplr(x); n1 -fliplr(n); subplot(211) stem(n,x,filled,r); title(x(n); subplot(212) stem(n1,x1,filled,b); title(x(-n)); figure stem(n,x,filled,r); hold on stem(n1,x1,filled,b);结果

【Matlab】笔记:数组反转顺序函数 fliplr()

对于cell array中包含多层数据的&#xff0c;fliplr只会对于最外面一层进行反转顺序&#xff0c;且反转顺序后的不会影响原始数据&#xff0c;需要将其重新放到新的变量里。 obj{1, 1}(1, 1)ans 包含以下字段的 struct:color: "#99ffff66"density: 30points: {121 …

MATLAB如何得到回文数(用fliplr函数)

示例&#xff1a; clc;clear; Nnum2str(12345); Sfliplr(N);disp(S);

python:np.fliplr()

一、np.fliplr() fliplr()是Numpy库中的函数。 作用是将数组在左右方向上翻转。 fliplr()在左右方向上翻转每行的元素&#xff0c;列保持不变&#xff0c;但是列的显示顺序变了。 参考&#xff1a;https://github.com/numpy/numpy/blob/v1.15.0/numpy/lib/twodim_base.py#L…

python np.fliplr三通道图像与图像投影

在彩色图像上画一条直线&#xff1a; for item in lc_imglists:img_ori cv2.imread(item)cv2.line(img_ori,(100,100),(1000,1000),(0,0,255),3)imshow(img_ori,600,600,img,True)如果对原图像上下&#xff0c;或左右翻转后再画直线&#xff0c;第一想法是&#xff1a; for it…

numpy.fliplr()用法

参考numpy.fliplr()用法 - 云社区 - 腾讯云 np.fliplr() 矩阵左右翻转&#xff0c;在二维的情况下很容易理解。维度更高的话一开始没有搞懂&#xff0c;实际也挺简单。 原来矩阵的写成下面这样: [ [[0,1], [2, 3]][[4,5], [6, 7]] ]将 [0, 1], [2, 3], [4, 5], [6, 7] 看成…

np.fliplr与np.flipud

函数解析 np.fliplr() 是numpy库中的函数&#xff0c;作用是将 numpy 的数组进行左右翻转 np.flipud() 同样也是 numpy 库中的函数&#xff0c;作用是将 numpy 的数组进行上下翻转 使用示例 import numpy as npn1 np.array([[1,2,3,4],[2,3,4,5],[3,4,5,6],[4,5,6,7]]) pr…

MATLAB/Simulink电力系统与仿真,第四章的2机5节点潮流计算模型建模经验

MATLAB/Simulink电力系统与仿真&#xff0c;第四章中的2机5节点潮流计算模型建模经验 本人在学习simulink时参考此书&#xff0c;按照书中教程和参数搭建潮流计算模型&#xff0c;但是书中并未详细给出所以的设置参数&#xff0c;对元件应用描述还没有很细&#xff0c;仿真过程…