对于编程语言来说,文件和目录的操作是其最最基础的功能 。就像我们日常中最常见的图片上传、文件上传之类的功能,都需要文件和目录操作的支持 。今天我们先来简单地学习一下 PHP 中关于目录操作的一些类和函数 。
目录与路径分隔符 首先来看看两个常量,它们分别是目录与路径的分隔符号 。
echo DIRECTORY_SEPARATOR, PHP_EOL; // /echo PATH_SEPARATOR, PHP_EOL; // :
DIRECTORY_SEPARATOR 常量在 Linux 系统中输出的就是 / 这个斜杠,而在 Win 系统中则是这样的反斜杠 。也就是说,它是根据当前的操作系统来确定使用哪种目录分隔符号的 。PATH_SEPARATOR 是环境路径的分隔符,在 Linux 系统中输出的是 :,其实就像是我们定义的系统环境变量一样,在 Linux 系统中我们查看或添加修改 PATH 环境变量就都都是使用 : 来分隔的 。
Directory 对象操作 【php变量和字符串拼接 php时间代码】既然有对象这个概念,那么也就说明目录相关的操作其实也是有面向对象和面向过程两种形式的,我们先来看看面向对象是如何操作的 。
$directory = dir(\\\'../\\\');while(($dir = $directory->read())!== false){echo $dir, PHP_EOL;}// .// ..// 1.PHP中的日期相关函数(三).md// source
我们使用 dir() 函数来返回一个 Directory 对象,这里需要注意的是,Directory 对象是只能通过 dir() 函数来获取的,无法通过 new 的方式来生成实例 。在获得 Directory 对象之后,我们就可以通过 read() 方法来读取目录中的所有内容信息了 。展示的内容其实和我们在操作系统中使用 ll -a 命令获取的结果是类似的,它会获得 . 、 .. 这两个目录信息,代表当前目录和上级目录 。
echo $directory->read(), PHP_EOL;//$directory->rewind();while(($dir = $directory->read())!== false){echo $dir, PHP_EOL;}// .// ..// 1.PHP中的日期相关函数(三).md// source
read() 方法是游标操作,也就是遍历一次后游标就会移动到最后一个位置,这时再调用 read() 就不会有任何信息了 。这时我们可以通过 rewind() 方法重置游标,然后就可以重新遍历目录内容 。
$directory->close();// while($dir = $directory->read()){//echo $dir, PHP_EOL;// }// Warning: Directory::read(): supplied resource is not a valid Directory resource
最后就是 close() 方法,用于关闭当前的目录对象句柄 。
面向过程 Directory 操作 接下来我们就看看使用面向过程的方式如何获取目录里面的内容,我们同样还是查看相同的这个目录,输出和上面面向对象的方式中同样的信息 。
$dirPath = __DIR__;if(is_dir($dirPath)){if ($dh = opendir($dirPath)) {while(($dir = readdir($dh)) !== false){echo $dir, PHP_EOL;}echo readdir($dh), PHP_EOL;rewinddir($dh);while(($dir = readdir($dh)) !== false){echo $dir, PHP_EOL;}closedir($dh);}}// .// ..// 2.学习PHP中的目录操作.php// 1.PHP中的日期相关函数(三).php//// .// ..// 2.学习PHP中的目录操作.php// 1.PHP中的日期相关函数(三).php
推荐阅读
- 斐讯k3a1和d1的区别
- 钢琴左手和弦口诀 具体方法教程
- 河蟹和猕猴桃能不能一起吃 河蟹和猕猴桃能一起吃吗
- 吹空调放盆水有什么好处和坏处 吹空调放盆水的作用
- 新认识的女生怎么聊天 和刚认识的女孩聊天怎么找话题
- 想和女朋友开房为什么总是拒绝
- 看什么书能提高交际能力 提升口才和情商的书籍
- 讲了又讲类似的词语有哪些 和讲了又讲类似的词语
- 女人对待备胎和喜欢的人区别 女人会让备胎睡她吗
- 冰糖单晶和多晶是什么意思