(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);
优点
生成器的执行过程
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/>"; }