请问PHP如何删除指定目录下的所有文件并保留目录?
例如以我的PHP文件所在处为根目录~现在要删除"cache/templates"中的所有文件~每个文件格式都不固定名字也不一样~
在LINUX SHELL中可以用"rm -rf cache/templates/*"来删除~PHP中如何操作呢?
这里有个简单的方法:
<?php$files = glob('cache/templates/*');
for ($files as $file) {
if (is_file($file)) {
unlink($file);
}
}
在PHP中执行shell命令:
<?php`rm -rf cache/templates`; // 反引号,数字1左边的键
exec('rm -rf cache/templates'); // 另一种方法
system('rm -rf cache/templates'); // 第三种方法
但不建议这样删除文件,比较危险。
温馨提示:答案为网友推荐,仅供参考
第1个回答 推荐于2017-09-09
这个网上是有这段代码的,具体如下
//删除文件夹内元素
function deldir($dir)
{
//删除目录下的文件:
$dh=opendir($dir);
while ($file=readdir($dh))
{
if($file!="." && $file!="..")
{
$fullpath=$dir."/".$file;
if(!is_dir($fullpath))
{
unlink($fullpath);
}
else
{
deldir($fullpath);
}
}
}
closedir($dh);
}
//删除文件夹内元素
function deldir($dir)
{
//删除目录下的文件:
$dh=opendir($dir);
while ($file=readdir($dh))
{
if($file!="." && $file!="..")
{
$fullpath=$dir."/".$file;
if(!is_dir($fullpath))
{
unlink($fullpath);
}
else
{
deldir($fullpath);
}
}
}
closedir($dh);
}
第2个回答 2013-07-20
<?php
$dir = 'cache/templates';//要删除的目录
$Dir = opendir( $dir ) or die('打开目录失败');//打开目录
while( $file = readdir( $Dir ) !== flse ){ //循环读取目录中
if ( $file != '.' && $file != '..' ) {
unlink( $dir . '/' . $file ); //删除文件
}
}
$dir = 'cache/templates';//要删除的目录
$Dir = opendir( $dir ) or die('打开目录失败');//打开目录
while( $file = readdir( $Dir ) !== flse ){ //循环读取目录中
if ( $file != '.' && $file != '..' ) {
unlink( $dir . '/' . $file ); //删除文件
}
}