php删除一个路径下的所有文件夹和文件的方法

php删除一个路径下的所有文件夹和文件的方法,第1张

php遍历一个文件内的所有文件和文件夹,并删除所有文件夹和子文件夹下的所有文件的代码,通过递归方式实现达到清空一个目录的效果,代码简单实用。

也适合在thinkphp中清理缓存,在thinkphp中可以把下面代码写入./Application/Admin/Common/function.php文件中,再在控制器调用这个函数进行清理 *** 作。

用到的函数:

scandir($path)

遍历一个文件夹所有文件并返回数组。

unlink($filename)

删除文件。

rmdir($path)

只删除空文件夹

<?php

//设置需要删除的文件夹

$path

=

"./Application/Runtime/"

//清空文件夹函数和清空文件夹后删除空文件夹函数的处理

function

deldir($path){

//如果是目录则继续

if(is_dir($path)){

//扫描一个文件夹内的所有文件夹和文件并返回数组

$p

=

scandir($path)

foreach($p

as

$val){

//排除目录中的.和..

if($val

!="."

&&

$val

!=".."){

//如果是目录则递归子目录,继续 *** 作

if(is_dir($path.$val)){

//子目录中 *** 作删除文件夹和文件

deldir($path.$val.'/')

//目录清空后删除空文件夹

@rmdir($path.$val.'/')

}else{

//如果是文件直接删除

unlink($path.$val)

}

}

}

}

}

//调用函数,传入路径

deldir($path)

总结

以上所述是小编给大家介绍的php删除一个路径下的所有文件夹和文件的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

您可能感兴趣的文章:PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)php获取文件夹路径内的图片以及分页显示示例PHP获取文件相对路径的方法查找php配置文件php.ini所在路径的二种方法

/*

++

函数名:removeDir()

++

能:删除目录和其下所有自目录和文件

++

使

用:removeDir($dirName)

++

数:$dirName

要删除的目录名

++

lmhllr

2006-04-25

lmhllr#163.com

*/

function

removeDir(

$dirName

)

{

if

(

$handle

=

opendir(

"$dirName"

)

)

{

while

(

false

!==

(

$item

=

readdir(

$handle

)

)

)

{

if

(

$item

!=

"."

&&

$item

!=

".."

)

{

if

(

is_dir(

"$dirName/$item"

)

)

{

removeDir(

"$dirName/$item"

)

}

else

{

if(

unlink(

"$dirName/$item"

)

)echo

"成功删除文件:

$dirName/$item<br

/>\n"

}

}

}

closedir(

$handle

)

if(

rmdir(

$dirName

)

)echo

"成功删除目录:

$dirName<br

/>\n"

}

}

1.前台

<!DOCTYPE html>

<html>

<head>

<title>批量删除</title>

</head>

<body>

<scripttype="text/javascript">

//复选框

function checkall(all)

{

var ck = document.getElementsByClassName("ck")

if(all.checked)

{

for(var i=0i<ck.lengthi++)

{

ck[i].setAttribute("checked","checked")

}

}

else

{

for(vari=0i<ck.lengthi++)

{

ck[i].removeAttribute("checked")

}

}

}

</script>

<formaction="test.php"method="post">

<tableborder="1">

<tr><th><inputtype="checkbox"name="all"onclick="checkall(this)"/>id</th><th>名字</th></tr>

<!-- 此处调用显示列表函数 -->

<?phpshow() ?>

<tr><tdcolspan="3"><inputtype="submit"value="批量删除"></td></tr>

</table>

</form>

</body>

<?php

//显示列表

function show()

{

//连接数据库

@mysql_connect('localhost','root','')

mysql_select_db('test')

mysql_query('set names utf8')

$sql="select id,name from test"

$res=mysql_query($sql)

//循环取出数据

while($row=mysql_fetch_row($res))

{

echo "<tr>

<td>

<inputtype='checkbox'value='{$row[0]}'name='item[]'class='ck'/>

{$row[0]}

</td>

<td>{$row[1]}</td>

</tr>"

}

}

?>

</html>

2.后台

<?php

//接收post传来的数组

$arr=$_POST["item"]

/**

* 批量删除

* 思路:把前台批量选择的数据放在数组里,删除该数组即可

* @param $arr

* @return $res 成功or失败

*/

functionbatch_del($arr)

{

@mysql_connect('localhost','root','')

mysql_select_db('test')

mysql_query('set names utf8')

//把数组元素组合为字符串:

$str= implode("','",$arr)

//in 表示多个

$sql="delete from test where id in('{$str}')"

$res= mysql_query($sql)

if(!$res){

echo"删除失败"

}else{

if(mysql_affected_rows()>0){

echo"删除成功"

}else{

echo"没有行受到影响"

}

}

}

//调用批量删除函数

batch_del($arr)


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11824286.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存