手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP递归删除目录几个代码实例
PHP递归删除目录几个代码实例
摘要:下面给大家提供几个函数参考。实例一:复制代码代码如下:实例二:Php递归删除目录方法(兼容中文目录和文件)复制代码代码如下:实例三:参数$d...

下面给大家提供几个函数参考。

实例一:

复制代码 代码如下:

<?php

function deletedir($dir){

if(!handle=@opendir($dir)){ //检测要打开目录是否存在

die("没有该目录");

}

while(false !==($file=readdir($handle))){

if($file!=="."&&$file!==".."){ //排除当前目录与父级目录

$file=$dir .DIRECTORY_SEPARATOR. $file;

if(is_dir($file)){

deletedir($file);

}else{ // www.jb51.net

if(@unlink($file)){

echo "文件<b>$file</b>删除成功。<br>";

}else{

echo "文件<b>$file</b>删除失败!<br>";

}

}

}

if(@rmdir($dir)){

echo "目录<b>$dir</b>删除成功了。<br>n";

}else{

echo "目录<b>$dir</b>删除失败!<br>n";

}

}

//测试程序

$dir="/var/www/test";

deletedir($dir);

?>

实例二:Php递归删除目录方法(兼容中文目录和文件)

复制代码 代码如下:

<?php

/*

本函数支持中文删除目录,由于我只测试了window下删除,linux未测试,如有问题可留言或者自己稍加修改即可。

如有错误欢迎大家指正,共同学习

*/

header("Content-type: text/html; charset=gb2312");

function delete_dir($tmp_path){

if(!is_writable($tmp_path) && is_dir($tmp_path)){

chmod($tmp_path,0777);

}

$encode = mb_detect_encoding($tmp_path, array('UTF-8','GB2312','ASCII','GBK'));

$tmp_path = iconv($encode,'gb2312',$tmp_path);

$handle_object = scandir($tmp_path);

if(count(scandir($tmp_path))==2){

if(rmdir($tmp_path)){

echo $tmp_path.'<br />';

}else{

echo $tmp_path.'<br />';

}

return ;

}

foreach($handle_object as $val){

if($val!='..' && $val!='.' && $val!=''){

if(filetype($tmp_path.'/'.$val)=='dir'){

if(count(scandir($tmp_path.'/'.$val))==2){

if(rmdir($tmp_path.'/'.$val)){

echo $$tmp_path.'/'.$val.'<br />';

}else{

echo $$tmp_path.'/'.$val.'<br />';

}

}else{

delete_dir($tmp_path.'/'.$val);

}

}else{

if(unlink($tmp_path.'/'.$val)){

echo $$tmp_path.'/'.$val.'<br />';

}else{

echo $$tmp_path.'/'.$val.'<br />';

}

}

}else{

continue;

}

}

if(rmdir($tmp_path)){

echo $tmp_path.'<br />';

}else{

echo $tmp_path.'<br />';

}

return ;

}

delete_dir('D:/AppServ/www/testing/哈哈');

?>

实例三:参数$dir文件名例子:admin/runtime 这样的

复制代码 代码如下:

//删除目录及所包含文件函数

function deldir($dir) {

//打开文件目录

$dh = opendir($dir);

//循环读取文件

while ($file = readdir($dh)) {

if($file != '.' && $file != '..') {

$fullpath = $dir . '/' . $file;

//判断是否为目录

if(!is_dir($fullpath)) {

echo $fullpath."已被删除<br>";

//如果不是,删除该文件

if(!unlink($fullpath)) {

}

} else {

//如果是目录,递归本身删除下级目录

deldir($fullpath);

}

}

}

//关闭目录

closedir($dh);

//删除目录

//if(rmdir($dir)) {

// return true;

// } else {

// return false;

// }

}

实例四:

复制代码 代码如下:

<?php

function deldir($dirname){

if(file_exists($dirname)){//首先判断目录是否有效

$dir = opendir($dirname);//用opendir打开目录

while($filename = readdir($dir)){//使用readdir循环读取目录里的内容

if($filename != "." && $filename != ".."){//排除"."和".."这两个特殊的目录

$file = $dirname."/".$filename;

if(is_dir($file)){//判断是否是目录,如果是则调用自身

deldir($file); //使用递归删除子目录

}else{

@unlink($file);//删除文件

}

}

}

closedir($dir);//关闭文件操作句柄

rmdir($dirname);//删除目录

}

}

?>

实例五:

复制代码 代码如下:

/**

* 删除非空目录

* @method rrmdir

*/

function rrmdir ($dir) {

if (is_dir($dir)) {

$fs = array_slice(scandir($dir), 2);

foreach ($fs as $f) {

$path = $dir . '/' . $f;

is_dir($path) ? rrmdir($path) : unlink($path);

}

reset($fs);

return rmdir($dir);

}

}

实例六:

复制代码 代码如下:

<?php

function del_dir( $dir )

{

if ( $handle = opendir( $dir ) )

{

while ( false !== ( $item = readdir( $handle ) ) )

{

if ( $item != "." && $item != ".." )

{

if ( is_dir( "$dir/$item" ) )

{

del_dir( "$dir/$item" );

}

else

{

unlink( "$dir/$item" ) ;

}

}

}

closedir( $handle );

rmdir( $dir ) ;

}

}

?>

【PHP递归删除目录几个代码实例】相关文章:

PHP滚动日志的代码实现

PHP+MYSQL中文乱码问题

提升PHP执行速度全攻略(下)

用PHP代码给图片加水印

递归列出所有文件和目录

PHP curl伪造IP地址和header信息代码实例

PHP中的魔术方法总结和使用实例

PHP设计模式之装饰者模式代码实例

PHP 判断数组是否为空的5大方法

PHP的宝库目录--PEAR

精品推荐
分类导航