Php “的代码”;删除完整目录";返回警告
我有一个文件夹,他的名字是“1”,在这个文件夹里有两个文件夹:“大图片”和“小图片” 我想删除文件夹“1”及其内容,这是代码:Php “的代码”;删除完整目录";返回警告,php,directory,Php,Directory,我有一个文件夹,他的名字是“1”,在这个文件夹里有两个文件夹:“大图片”和“小图片” 我想删除文件夹“1”及其内容,这是代码: function removeFullDir ($dir) { $content = glob($dir."/*"); foreach ($content as $file) { if (is_dir($file)) { removeFullDir ($file); } else { unlink($file);
function removeFullDir ($dir) {
$content = glob($dir."/*");
foreach ($content as $file) {
if (is_dir($file)) {
removeFullDir ($file);
}
else {
unlink($file);
}
}
rmdir($dir);
}
removeFullDir("1");
在localhost(XAMPP服务器,phpversion5.4.4)中,这段代码运行良好。在远程服务器中,此代码也起作用,但返回警告:
警告:为foreach()提供的参数无效。
在远程服务器中,php版本为5.2.42
请告诉我,为什么我会获得此警告?发生这种情况是因为没有返回数组,这意味着根据文档,它必须返回false
。出现错误时可能会发生这种情况,但目录为空时也可能发生这种情况:
返回包含匹配文件/目录的数组,空
如果没有匹配的文件,则返回数组;如果出现错误,则返回FALSE
注意:在某些系统上,无法区分空匹配和错误
要防止通知,请注意:
function removeFullDir ($dir) {
$content = glob($dir."/*");
if(!$content) {
return;
}
// ...
}
一个可能的原因可能是open\u basedir限制,这意味着glob()返回false,它将在foreach循环中出错,因为$content不是数组,因此您可以进行如下检查:
//before foreach
if(is_array($content) && count($content) > 0) {