ホームページ >バックエンド開発 >PHPチュートリアル >ディレクトリにファイルが含まれており、空のディレクトリではないかどうかを確認する方法

ディレクトリにファイルが含まれており、空のディレクトリではないかどうかを確認する方法

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-13 13:00:33853ブラウズ

ディレクトリにファイルが含まれており、空のディレクトリではないかどうかを確認する方法

この投稿は 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 />

------解決策----------------------
引用:
Bamboo のコード完璧です
上で書いた関数を修正しましたが、どこに問題があるのか​​わかりません。
PHP コード?123456789101112131415161718192021/* * ディレクトリを走査し、空の場合は false を返します */function isEmptyDir($path ){ $dh= opendir($path.'/'); $r = false; 🎜>

<br />
 if ($f !=="." && $f !==".." && is_dir($subdir)){<br />
            isEmptyDir($subdir);//改成$r = isEmptyDir($subdir);<br />
        }<br />
-----解決策---------

引用:
Bamboo のコードは完璧です 上で書いた関数を修正しましたが、どこに問題があるのか​​わかりません。 PHP コード?123456789101112131415161718192021/* * ディレクトリを走査し、空の場合は false を返します */function isEmptyDir( $path ){ $dh= opendir($path.'/'); $r = false; 🎜>

誰かが再帰呼び出しの戻り値を引き継ぐ必要があります。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。