文件操作 读写基本操作

读写。文件作为内容(数据)容器!
写入长度(字节) = File_put_contents(文件地址, 内容);
将内容写入文件!(自动创建不存在的文件)
在这里插入图片描述
默认为替换写,将原内容清空,再写入!
使用第三个参数FILE_APPEND表示追加写:
在这里插入图片描述
文件内容 = File_get_contents(文件地址);
将内容从文件中读取!
提示浏览器不解析\n换行的!
在这里插入图片描述
函数 nl2br(); 将换行符转换为br
在这里插入图片描述
Unlink()
删除文件
Rename()
文件移动(重命名)

大小int = Filesize(文件地址)
文件大小
在这里插入图片描述
布尔 = File_exists(文件地址);
文件是否存在

时间戳 = Filemtime(文件地址)
Modify
文件的最后修改时间!
在这里插入图片描述
文件句柄读写操作
基本单位都是字节:

大多数的文件读写,使用函数:
File_put_contents, file_get_contents完成。
少数,特别情况,以上两个函数不好用。
典型的就是,文件过大!只能一部分一部分的操作!

Fopen()
打开文件句柄,PHP程序与文件间数据通路!
需要 文件地址 和 打开模式 两个参数!

打开模式:指定打开该文件后,需要执行什么操作!如下的模式可以选择:
R: read, 读模式
W: write, 写操作,清空写。
A: append,写操作,追加写。
在这里插入图片描述
读:Fread(),fgetc(),fgets(),feof();
一个字节数据 = Fgetc(句柄); char, 字符!(不要弄错成一个字符)
在这里插入图片描述
1个字节:一个最基本存储空间
1个字符:a,康,X, 单字节字符(字母,标点,数字),存储需要消耗1个字节。多字节字符,存储需要消耗多个字节。占用的字节数量,与字符所采用的字符集相关!
字符集:(utf-8, gbk,ascii)
映射表:字符 与 存储编码 映射表

每当读取到一个字节,将文件指针向前移动一个字节!
句柄操作中,依赖的就是 文件指针!
字符串 = Fgets(句柄, 长度)
从文件指针位置,读取指定长度的字符串内容!
获取到的内容长度为 ,参数长度-1
在这里插入图片描述
同样会向前移动指针!
如果在读取时,先读到了换行符,也会终止。
在这里插入图片描述
也叫读行函数!
典型的逻辑,每行记录一组信息,该函数最常用!
配合循环结构,读取全部记录。
需要: feof() END of File 用来判断是否到达文件末尾!
在这里插入图片描述
字符串 = Fread(handle,长度)
依据长度读取内容,不受换行符的限制
在这里插入图片描述
Tip:唯一一个限制为:最大的长度不能超过8192!

写:Fwrite();
写入长度 = Fwrite(句柄,内容)
追加写:
在这里插入图片描述
在这里插入图片描述
清空写:
是在建立句柄,打开文件时,就完成了清空的工作!
在这里插入图片描述
在这里插入图片描述
就是在文件指针位置进行写操作!
但是,如果为追加写模式,永远在末尾完成写操作!
Fclose();
关闭句柄
在这里插入图片描述
指针操作函数
Fseek(句柄, 位置);
定位指针,位置从0开始,递增!
Ftell(句柄);
获取指针位置!
在这里插入图片描述
打开模式
基本模式:
R 读
W 清空写,文件存在直接打开同时清空。
A 追加写,文件存在直接打开
X 新建写,只能新建文件进行操作!就是写操作,与w类似
+扩展模式:
扩展的操作,都可以完成读写操作。
差异与基本模式一致!
R+ 读写,打开任意文件(无论是存在还是不存在),文件内容不会被清空,依据指针位置,完成读,写操作。其中,写,会替换原有指针位置字节.
在这里插入图片描述
结果导致:
元数据:
在这里插入图片描述
写入后:
在这里插入图片描述
W+ 读写,打开时,同时清空内容,之后指针在哪里,就 在哪里完成读写!与R+唯一的差异,就是会清空文件内容!
测试:
在这里插入图片描述
结果:
在这里插入图片描述
A+ 读写,打开任意文件,不会清空内容,指针仅仅影响读操作。不影响写操作,仅仅可以在末尾写!
原始数据:
在这里插入图片描述
测试:
在这里插入图片描述
写操作在最后:
在这里插入图片描述
X+ 读写,新建才能打开,依据文件指针位置,进行读写操作!

猜你喜欢

转载自blog.csdn.net/qq_37171379/article/details/88179498