PHP에서 디렉토리가 비어 있는지 확인
PHP를 사용하여 디렉토리가 비어 있는지 확인하고 싶지만 현재 스크립트가 일관되지 않은 결과를 제공하고 있습니다. 문제를 조사하고 신뢰할 수 있는 솔루션을 찾아보겠습니다.
귀하의 코드는 glob을 사용하여 디렉터리의 파일을 검색합니다. 그러나 glob에는 제한 사항이 있습니다. 점으로 시작하는 숨겨진 파일(예: ".gitignore")을 감지할 수 없습니다. 결과적으로 숨겨진 파일이 있더라도 스크립트는 디렉터리가 비어 있다고 보고할 수 있습니다.
이 제한을 극복하려면 glob을 scandir로 바꿀 수 있습니다. scandir은 숨겨진 파일을 포함하여 디렉터리 내의 모든 파일을 읽습니다. 다음과 같이 코드를 수정할 수 있습니다.
<code class="php">$dir = '/assets/'.$pid.'/v'; if (is_dir_empty($dir)) { echo "the folder is empty"; }else{ echo "the folder is NOT empty"; } function is_dir_empty($dir) { return (count(scandir($dir)) == 2); }</code>
is_dir_empty 함수는 디렉터리에 있는 파일 수를 계산하고 이를 2("." 및 ".."를 나타냄)와 비교합니다. 개수가 2이면 디렉토리가 비어 있는 것입니다.
또는 opendir 및 readdir을 사용하여 디렉토리를 반복하고 숨겨지지 않은 파일을 확인할 수 있습니다.
<code class="php">function dir_is_empty($dir) { $handle = opendir($dir); while (false !== ($entry = readdir($handle))) { if ($entry != "." && $entry != "..") { closedir($handle); return false; } } closedir($handle); return true; }</code>
다음을 사용하여 방법을 사용하면 디렉터리에 숨겨진 파일이 포함되어 있더라도 디렉터리가 비어 있는지 여부를 정확하게 확인할 수 있습니다. 또한 더 명확하고 간결한 코드를 위해 단어("비어 있음" 또는 "비어 있지 않음") 대신 부울 값을 사용하는 것이 좋습니다.
위 내용은 숨겨진 파일을 포함하여 PHP에서 디렉토리가 비어 있는지 정확하게 확인하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!