本日我们从最大略的形式谈论,但目录下的操作。
学习韶光我们说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 :_)
我是 @程序员小助手 ,持续分享编程知识,欢迎关注。