欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

php递归函数递归复制与删除目录的那些事

程序员文章站 2022-05-11 08:17:55
...
在php编程中,对多级目录的复制与删除是个问题,可以用php递归函数实现目录的复制与删除操作,自定义的递归函数复制目录与删除目录的一些例子。

php递归函数删除目录

在php中要复制一个包含多个子目录的目录,将涉及文件的复制、目录创建等操作。复制一个文件可以通过PHP提供的copy()函数完成,创建目录可以使用mkdir()函数。定义函数时,首先对源目录进行遍历,如果遇到的是普通文件,直接使用copy()函数进行复制。如果遍历时遇到一个目录,则必须建立该目录,然后再对该目录下的文件进行复制操作,如果还有子目录,则使用递归重复操作,最终将整个目录复制完成。

例子,自定义的递归函数复制目录。

复制代码 代码示例:

从安全和跨平台等方面考虑,尽量不要去调用操作系统的SHELL命令“cp-a”完成目录的复制。

二、php创建和删除目录函数介绍和递归删除目录函数

php创建和删除目录函数介绍和递归删除目录函数,理解下递归删除目录的自定义函数的实现方法。

mkdir() — 新建目录

– 语法:bool mkdir (string pathname [,int mode]) – 尝试新建一个由 pathname 指定的目录。

rmdir() — 删除目录

– 语法:bool rmdir ( string dirname ) – 尝试删除 dirname 所指定的目录。 该目录必须是空的,而且要有相应的权限。如果成功则返回 TRUE,失败则返回 FALSE。

unlink — 删除文件

– 语法:bool unlink ( string filename ) – 删除 filename。和 Unix C 的 unlink() 函数相似。如果成功则返回 TRUE,失败则返回 FALSE。 在PHP中,使用mkdir()函数只需要传入一个目录名即可很容易地建立一个新目录。但删除目录所使用的函数rmdir(),只能删除一个空目录并且目录必须存在。如果是非空的目录就需要先进入到目录中,使用unlink()函数将目录中的每个文件都删除掉,再回来将这个空目录删除。如果目录中还存在目录,而且子目录也非空,就要使用递归的方法了。

例子,自定义递归函数删除目录:

复制代码 代码示例:

当然也可以通过调用操作系统命令“rm-rf”删除非空的目录,但也要从安全和跨平台方面考虑尽量不要去使用。

三、php自定义函数之递归删除文件及目录

自定义函数之递归删除文件及目录的php代码 例子:

复制代码 代码示例: 四、php递归函数删除整个目录

php实现用于删除整个目录的递归函数,包括php递归算法与目录技巧。

例子,php实现用于删除整个目录的递归函数。

复制代码 代码示例: