在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
创建目录Mkdir(目录地址,权限,是否递归创建=false);
删除目录Rmdir(目录地址)
仅仅可以删除空目录。(不支持递归删除)
移动(改名)Rename(旧地址,新地址)
该函数也支持操作文件。
获取目录内容(文件)打开目录 目录句柄 = opendir(目录地址) 目录句柄:php程序与目录间的一个联系。
依次读取目录内文件 文件名 = readdir(目录句柄); 依次读取一个文件(子目录),同时向下移动句柄指针。如果读取不到返回false! 目录内存在两个逻辑子目录 ., .. 分别表示当前目录和上级目录!
通过配合 循环结构 完成目录内所有文件的读取:
处理 0 文件名:
关闭目录 closedir()
递归获取目录内容打开某个目录 依次读取目录内文件 如果某个文件为目录 递归对该目录采用打开,读取,判断这个递归草
递归点: 如果子文件为目录,则递归 出口: 如果目录中不存在子目录,则不需要继续递归!
树状展示使用特定数量的缩进达到树状目的! 核心问题,计算需要缩进的数量! 缩进级别,与递归调用深度保持一致。每当执行一级递归操作,所找到的文件的缩进级别+1; 语法实现: 增加一个参数,表示当前函数调用的深度级别,每当递归+1;
嵌套
使用多维数组的嵌套,表示层级关系! 例如:
实现:
递归删除Unlink(文件地址)删除文件。
目录文件名编码问题: 展示时,将操作系统编码转换为响应数据编码。 Windows gbk,项目utf-8
代码的地址中存在中文:需要转换为系统编码,才能被文件系统识别:
由于php基于Linux系统,所以php的文件操作包括文件目录以及文件两部分的操作,只能操作服务器的文件 文件操作1.只能操作服务器的文件 2.文件包含目录和文件
判断文件类型var_dump(filetype("../0529")); //返回文件的类型:目录dir 文件file, var_dump(is_dir("../11.php")); //判断路径是不是目录,返回布尔类型 var_dump(is_file("../11.php")); //判断路径是不是文件,返回布尔类型
文件属性echo date("Y-m-d H:i:s",fileatime("../11.php")); //上次访问时间 返回一个时间戳,使用data格式化 echo date("Y-m-d H:i:s",filectime("../11.php")); //创建时间 echo date("Y-m-d H:i:s",filemtime("../11.php")); //修改时间 echo filesize("../11.php"); //文件大小,字节为单位 var_dump(file_exists("../12.php")); //判断文件是否存在
文件路径当前路径:./ 上级目录:../ 下级目录:目录/ 根路径:/ 如果是php里面的根(/)路径代表:磁盘的根 如果是在网页里面的根(/)路径代表:服务器的根(www目录) echo $_SERVER['DOCUMENT_ROOT']; //取服务器的根路径 echo basename("../11.php"); //从路径中获取带后缀的文件名 echo basename("../11.php",".php"); //从路径中获取不带后缀的文件名 echo dirname("../0529/aa.php"); //取径中除去文件名的目录 var_dump(pathinfo("../0529/aa.php")); //返回目录信息,格式为数组 echo realpath("../0529/aa.php"); //将相对路径转化为绝对路
操作目录var_dump(glob("../tp/*.php")); //获取目录下所有的文件* 某个后缀的*.php 通过遍历 glob 输出子文件 $attr = glob("../tp/*"); for($i=0;$i<count($attr);$i++){ echo $attr[$i]."<br>"; }
使用目录资源$dir = opendir("");打开资源目录 closedir($dir) ;关闭资源目录 readdir($dir);读取目录下的文件,执行一次读一个 rewinddir($dir); 指针返回最初 通过目录资源遍历echo readdir($dir); //读取目录下的文件,执行一次读一个 $dir = opendir("../tp"); //打开目录资源 while($wj = readdir($dir)){ echo $wj."<br>"; } closedir($dir); //关闭目录资源 rewinddir($dir);//将指针重置 注意: 使用readdir()读取的第一个和第二个内容 第一个是. 代表当前目录 第二个是.. 代表上级目录 在使用目录资源遍历文件夹的时候要注意将前两个排除
目录操作1.创建目录(文件夹) mkdir("./test"); 2.删除目录(文件夹)只能删除空的文件夹 rmdir("./test"); 3.移动目录(文件夹) rename("./test","../test11");
文件操作touch("./test.txt");//创建文件 copy("./test.txt","../test.txt"); //复制文件 unlink("./test.docx"); //删除文件 (file_exists(
echo file_get_contents("./test.txt"); //获取文件内容:txt 页面 echo file_get_contents("http://www.baidu.com"); //远程获取内容 file_put_contents("./test.txt","hello"); //向文件写入内容 readfile("./test.txt"); //获取文件内容并且直接输出 var_dump(file("./test.txt")); //读取文件内容,返回数组,数组的每个元素对应的是一行
对文件内容进行操作1.打开文件资源 $fp = fopen("./test.txt","a");
操作文件 echo fgetc($fp); //每次读一个字符 while(!feof($fp)) //判断文件是否读到末尾 { echo fgetc($fp); } echo fgets($fp); //每次读一行 echo fgets($fp);
echo fread($fp,10); //读取特定长度 $str = "ni hao dhakhdak \r\n akdhka"; $str = iconv("utf-8","gb2312",$str);
fwrite($fp,$str);
2.关闭文件资源 fclose($fp);
文件操作写入字节数 = File_put_contents(文件地址, 内容)写,文件不存在,自动创建。 默认为替换写:
支持使用追加写: 第三个参数使用FILE_APPEND常量表示:
File_get_contents(文件地址)读
当操作的文件过大时? 不能一次性操作全部文件内容。上面的函数不适用! 使用下面的函数完成处理: Fopen();打开文件句柄(PHP与文件间数据流通道)参数1:文件地址 参数2:打开方式(模式),打开文件后希望完成那种操作,可以在模式位置进行限制。 PHP提供了如下一些的打开模式: R(read)读模式 W(write)替换写模式,将文件内容清零,自动创建不存在的文件。 A(append)追加写模式 X 替换写,不会自动创建不存在的文件。(只能打开已经存在的文件) +扩展,扩展了操作。 R+ 读写模式,将文件指针放在文件开头。 W+ 读替换写模式,将文件内容清零,将文件指针放在文件开头,自动创建不存在的文件。 A+ 读追加写模式,写操作永远在文件末尾,读操作受限于文件指针。 X+ 读替换写模式,将文件内容清零,将文件指针放在文件开头,不会自动创建不存在的文件。(只能打开已经存在的文件)
在都可以执行读写时,差异在于,打开文件时,初始化的工作不同,针对初始化的文件指针位置,文件内容。
Fread(文件句柄, 长度);读取,读取指定长度的字符串内容(单位字节)
Tip:长度是有个最大值。为8192个字节。 Fgets(文件句柄,长度);读取,读取指定长度的字符串长度,指的是会读取长度-1个字节。
除了长度外,行末也是该函数的终止读操作条件。取决于先满足那个条件。
因此也称读行函数。最常用。fgetS($handle, 1024)
fgetC(文件句柄);读取,一次读取一个字节的数据
读取指针位置字符,操作时会移动指针。
fwrite(文件句柄,写入内容);写,在指定位置写入内容,通常由文件指针来指示,如果是a模式,不论指针在哪里,只能在末尾写。
如果w:
fclose();关闭句柄
Ftell()获取指针位置 Fseek()设置指针位置
R+: 读写都受指针影响。写替换掉原有字节写。 W+: 清空内容 A+/a: 指针位置具有不确定因素。 A+,读受指针影响,写就是追加。
Filemtime(文件地址)文件的最后修改时间。 Filesize(文件地址)
统计目录大小。 |
2022-08-17
2022-11-06
2022-08-17
2022-07-29
2022-08-17
请发表评论