PHP核心学习(6)

文件操作

旨在对文件(文件夹)进行增删查改操作
分类:目录操作(用来存放特殊文件),文件操作(用来存放内容)

文件操作创建目录结构

1)mkDir(路径名字):创建成功返回true/否则false

//创建目录
$val=@mkdir('directory');
//只能创建一次!否则报错!
var_dump($val);
//@是错误抑制符
删除目录

1)rmDir()

@rmdir('directory');
读取目录

将文件夹(路径)按照资源方式打开
1)openDir()
2)readDir()

$r=opendir('.idea');
var_dump($r);
echo readdir($r);//.  第一次代表自己目录
echo readdir($r);//..   第二次代表上级目录
echo readdir($r);//  才是文件
遍历操作
//循环输出文件夹的东西
while ($file=readdir($r)){
    
    
    echo $file,'<br>';
}
//这里的文件夹可以是任何目录
其他函数

注意!这里的文件路径只能查找在服务器里面的,否则查找不到!

在这里插入图片描述
在这里插入图片描述

递归遍历目录

指定一个目录,将其下的所有文件和目录,及其目录内部的所有内容都输出出来

函数封装
1)简单输出

//能够访问指定路径下的所有文件,且判断出目录还是文件
$dir1="E:/wamp/www/php";
//只能是服务器下文件
function loop_scandir($dir1){
    
    
    if(!is_dir($dir1)){
    
    
        dir($dir1."<br>");
    }
    $files=scandir($dir1);
    foreach ($files as $file){
    
    
        //$flie就是一个个文件名
        echo  $file."<br>";
    }
}
loop_scandir($dir1);

2)包含文件路径缩进输出

$dir1 = "E:/wamp/www/php";
//只能是服务器下文件
function loop_scandir($dir1, $level = 0)
{
    
    
    if (!is_dir($dir1)) {
    
    
        dir($dir1 . "<br>");
    }
    $files = scandir($dir1);
    foreach ($files as $file) {
    
    
        //$file就是一个个文件名
        echo str_repeat("&nbsp;&nbsp;",$level).$file . "<br>";
        if ($file == '.' || $file = '..') {
    
    
            continue;
        }
        //构造路径
        $file_dir = $dir1 . "/" . $file;
        if (is_dir($file_dir)) {
    
    
            loop_scandir($file_dir, $level + 1);
        }
    }
}

loop_scandir($dir1);
小插曲

文件在读取和写入时有可能会出现字符集问题
我在试验时发现,如果加上head转换字符集的头文件,也就是浏览器按utf8解析的话,那么下面file_get函数便是按照gbk读取,便不出现乱码,反而是上面的出现乱码。但是如果改成gbk解析的话那么没有使用file_get函数的内容便不会出现乱码,反而是下面的file_get内容出现乱码

$filess="E:/wamp/www/php/1.txt";
$modify_file=@file_get_contents($filess);
var_dump($modify_file);
文件操作
$input_text="好多好多啊的";
var_dump(file_put_contents($filess,$input_text));
$fw1=fopen("$filess","w");//覆写模式
$fa1=fopen("$filess","a");//添加模式
fwrite($fw1,"hello");
fwrite($fa1,"hello");
is_file();//判断文件是否正确
filesize();//获取文件大小
file_exists();//判断文件是否存在
unlink();//取消
filemtime();//获取文件最后一次修改的时间
fseek();//fopen打开文件时指针位置
fgetc();//一次获取一个字符
fgets();//一次获取一个字符串

猜你喜欢

转载自blog.csdn.net/qq_52480906/article/details/120977706