>  기사  >  백엔드 개발  >  숨겨진 파일을 포함하여 PHP에서 디렉토리가 비어 있는지 정확하게 확인하는 방법은 무엇입니까?

숨겨진 파일을 포함하여 PHP에서 디렉토리가 비어 있는지 정확하게 확인하는 방법은 무엇입니까?

DDD
DDD원래의
2024-10-24 18:39:02571검색

How to Accurately Determine if a Directory is Empty in PHP, Including Hidden Files?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.