趣文网 > 作文大全

3分钟短文|PHP 删除目录下所有的文件 这3种写法哪个有bug?

2020-12-02 17:05:01
相关推荐

引言

作为服务器端编程语言,PHP当然具备了操作系统文件的能力。今天我们来说一下使用PHP如何删除某个目录下的所有文件。

今天我们从最简单的形式讨论,但目录下的操作。

学习时间

我们说PHP是一个函数库毫不为过,因为针对各种功能,它都封装了许多内置的函数,拿来用就可以了。而文件目录操作函数,我们推荐使用glob。

该函数的参数形式:

array glob( string $pattern[, int $flags = 0] )

用于寻找与模式匹配的文件路径。使用起来代码应该是这样的:

首先使用 glob 模式匹配出目录下所有文件,这会返回一个数组。然后遍历,再使用 is_file 函数判定是否文件类型,如果是则调用 unlink 函数删除。

逻辑大概就是这样子。在Linux操作系统下,上面的模式扫描不出来隐藏文件。如果要把隐藏文件扫描出来,需要修改一下匹配模式如下:

遍历和文件类型判断逻辑相同。

极简主义

我们知道解决问题,不会是一种单一的办法,我们总是有很多方式实现同样的需求。那么对于上述的代码,对于强迫症同学来说,还是写的有些拖沓了,要是一行能搞定就好了。

真的可以一样搞定。我们借助于PHP的内置函数遍历操作函数 array_map 可以轻松实现。代码如下:

是不是少了很多手动造轮子的粗糙感。但是,这个函数缺少了 is_file 判断,是有一定风险的。特别是回调使用 unlink 这样的删除操作,尤其需要注意。

把 glob 函数的返回值使用 (array) 进行强制类型转换,是为了防止出现返回 false,不能直接传递到 array_filter 进行过滤的缘故。

面向对象

写惯了JAVA的同学应该对类库的方法操作严重依赖不能自拔,PHP也是有配套OOP方法的,只是我们用的太少,没有系统地学习罢了。下面提贴出来一个 OOP 风格的代码来解决这个问题。

不做解释,因为用的太少。为什么?因为看看 $di $ri 对象实例的操作,还有最后 rmdir unlink 的函数操作,你终究明白,要做到真正的面向对象,还差得远呢!

共同努力吧~~

写在最后

很令人伤心,本想提供一个OOP的实现,还是被迫用了函数方法,我们已经尽力了。整体而言,函数操作和函数操作,更适合PHP流程处理。

Happy coding :_)

我是 @程序员小助手 ,持续分享编程知识,欢迎关注。

阅读剩余内容
网友评论
相关内容
延伸阅读
小编推荐

大家都在看

童年作文300字 日记作文400字 北京故宫作文 给闺蜜的小作文 关于新年作文 高考满分英语作文 写人500字作文 读书作文400字 成长类的作文 过年作文300 高中作文素材积累 抗美援朝作文 满分作文800 幸福作文400字 关于爱情的作文 难忘的经历 作文 五年级上册的作文 喜欢的食物作文 真了不起作文 做好自己作文 饺子英语作文 牵牛花作文 春天作文500字 我的书包作文 好的作文素材 路600字作文 追赶作文 二年级作文200字 看日出作文 坚持的作文素材