この投稿は maniachhz によって最終編集されました: 2012-11-17 11:40:04
ディレクトリ /upload にファイル (ディレクトリではない) が含まれているかどうかを確認したいのですが、/upload の下に新しいテスト ディレクトリ (ファイルなし) を作成すると、プログラムの実行結果は「空」ではなく「空ではない」ままになります。質問しますか?
<br />
/*<br />
* 遍历目录,如果为空返回false<br />
*/<br />
function isEmptyDir( $path )<br />
{<br />
$dh= opendir($path);<br />
$r = false;<br />
while(false!==($f=readdir($dh)))<br />
{<br />
if ($f !=="." && $f !==".." && is_dir($f)){<br />
isEmptyDir($f);<br />
}<br />
else if ($f!=="." && $f !== "..")<br />
return $r = true;<br />
}<br />
closedir($dh);<br />
return $r;<br />
}<br />
<br />
if (isEmptyDir($upload_dir."/")){<br />
echo "不为空";<br />
}<br />
else echo "为空";
-----解決策---------論理的には、あなたはあなたの問題をクリアする考えがありません。心:
if ($f !=="." && $f !==".." && is_dir($f)){<br />
// 假设进入这一分支,想想看会产生什么影响? 这句代码不会影响到最后的结果。<br />
isEmptyDir($f);<br />
// return isEmptyDir($f);<br />
}
-----解決策---------function isEmptyDir( $path )<br />
{<br />
$dh= opendir($path.'/');<br />
$r = false;<br />
while(false!==($f=readdir($dh)))<br />
{<br />
if ($f =="." <br><font color='#FF8000'>------解决方案--------------------</font><br> $f =="..") continue;<br />
$f = "$path/$f";<br />
if(is_dir($f)){<br />
$r = isEmptyDir($f);<br />
}<br />
else $r = true;<br />
}<br />
closedir($dh);<br />
return $r;<br />
}<br />
------解決策----------------------
<br />
if ($f !=="." && $f !==".." && is_dir($subdir)){<br />
isEmptyDir($subdir);//改成$r = isEmptyDir($subdir);<br />
}<br />
-----解決策---------
引用: