11.文件处理
2022/4/16 23:12:59
本文主要是介绍11.文件处理,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
文件处理
1. 文件系统的相关操作
- 什么是文件操作系统
- 文件操作系统只是PHP知识的一个完整的模块
- 所有文件进行操作都需要文件系统的相关操作函数
- 就是学习操作文件的相关函数
- 与文件相关的函数
(PS: ./
: 当前目录; ../
: 上一级目录 /
: 下一级目录)
-
创建文件:
touch()
(如果文件不存在则会创建文件,如果存在则会更新修改时间)- **复制文件: **
copy('原路径', '目标路径')
- **复制文件: **
-
移动文件 重命名:
rename()
// 重命名 rename('./oldname.txt', './newname.txt'); // 移动 rename('./oldname.txt', '../oldname.txt');
- 删除文件:
unlink()
- 删除文件:
-
获取文件大小:
filesize()
-
判断是否是文件:
is_file()
-
判断文件或目录是否存在 :
file_exists()
-
文件是否可执行
is_executable()
-
文件是否可读
is_readable()
-
文件是否可读写
is_writable()
-
获取文件创建时间
filectime()
-
获取文件修改时间
filemtime()
-
获取文件上次访问的时间
fileatime()
-
打开文件
fopen()
fopen(); // @paramt1 要代开的文件位置 // @parmat2 打开的方式 // 返回值: 资源 resource // fopen() 将文件资源绑定到一个流上。
- 读取文件
fread()
一个汉字占三字节
fread(); // 他会保留上次读取的位置,下次再从那里读 // 要'打开'文件获得资源流 // @paramt1 读取的资源流 // @paramt2 要读取的字节数 // 返回值 返回读到的内容,如果读到最后返回空字符串
- 测试文件指针是否到了结尾
feof()
fread
与 feof
结合读取文件
// 先打开文件 $file = fopen('./te1xt.txt', 'r'); // 定义一个用来接收结果 $count= ''; // 根据指针判断是否到结尾 while(!feof($file)){ // 拼接字符串 $count .= fread($file, 1); }; echo $count;
- 读取文件的一行
fgets()
// 先打开文件 $file = fopen('./te1xt.txt', 'r'); // 根据指针判断是否到结尾 while (!feof($file)) { // 一行一行拼接 // 浏览器中只有<br/>标签可以换行 echo fgets($file) . '<br/>'; // 手动换行用于看出每行 }; fclose($file);
- 关闭文件
fcloce()
关闭是为了节省资源
// @parma1 要关闭的资源
- 打开---读取---关闭 一步到位
file_get_contents(要操作的文件)
返回值 : 将整个文件读入一个字符串
-
**写入文件
fwrite()
**-
需要配合
fopen()
使用 -
当
fopen()
的第二个参数为w
时为覆盖 -
当
fopen()
的第二个参数为a
时为追加 -
@parmat1 要写入的资源
-
@parmat2 要写入的内容
-
返回值 写入的字节数(int类型)
// 打开文件 $file = fopen('./b.txt', 'w'); // w 写入文件的方式 如果文件存不存在,则会自动创建 // 写入文件 fwrite($file, 'Hello Worlod'); // 关闭文件 fclose($file);
-
19. **写入文件一步到位 `file_put_sontents()`**
当第三个可选参数flags为FILE_APPEND
的时候为追加数据而不是覆盖
- 文件的读写锁
flock()
-
// 打开文件 $file = fopen('./b.txt', 'r'); // 读取文件 //文件加锁 $result = flock($file, LOCK_SH); var_dump($result); // 加锁成功返回 true while(!feof($file)) { echo fgets($file) . "\n"; }; //释放 解锁 $Nresult = flock($file, LOCK_UN); var_dump($Nresult); // 解锁成功返回true // 关闭文件 fclose($file);
2. 生成器yield
-
优点
- 生成器会对PHP应用的性能有非常大的影响
- PHP代码运行时节省大量的内存
- 比较适合计算大量的数据
-
生成器的执行过程
-
function demo(int $num) { for($i = 0; $i < $num; $i++) { yield time(); }; }; $result = demo(10); foreach($result as $value) { sleep(1); // 延迟一秒在执行下边的文件 echo $value . "<br/>"; }
-
-
系统函数
sleep()
-
使用生成器读取文件
function readTxt(){ //打开文件 $files = fopen('b.txt', 'r'); //读取文件 while(!feof($files)) { yield fgets($files); } // 关闭文件 fclose($files); } $content = readTxt(); foreach($content as $value) { echo $value."<br/>"; }
这篇关于11.文件处理的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27JDK17新特性学习入门:简洁教程带你轻松上手
- 2024-12-27JMeter传递token学习入门教程
- 2024-12-27JMeter压测学习入门指南
- 2024-12-27JWT单点登录学习入门指南
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT单点登录原理学习入门
- 2024-12-27JWT解决方案学习入门:新手必读教程
- 2024-12-27JWT解决方案学习入门:新手必读教程
- 2024-12-27Mybatis持久层框架学习入门
- 2024-12-27史上最全性能调优秘籍:让你的系统飞起来!