scandir
glob은 unix 숨겨진 파일을 볼 수 없기 때문에 glob 대신 필요한 것 같습니다 .
<?php
$pid = basename($_GET["prodref"]);
$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) {
if (!is_readable($dir)) return NULL;
return (count(scandir($dir)) == 2);
}
?>
이 코드는 효율성의 정상이 아닙니다. 디렉토리가 비어 있는지 여부 만 알기 위해 모든 파일을 읽을 필요가 없기 때문입니다. 따라서 더 나은 버전은
function dir_is_empty($dir) {
$handle = opendir($dir);
while (false !== ($entry = readdir($handle))) {
if ($entry != "." && $entry != "..") {
closedir($handle);
return FALSE;
}
}
closedir($handle);
return TRUE;
}
그런데 부울 값 을 대체 하기 위해 단어 를 사용하지 마십시오 . 후자의 목적은 무언가가 비어 있는지 여부를 알려주는 것입니다. 안
a === b
표현식은 이미 Empty
또는 Non Empty
프로그래밍 언어 측면에서 FALSE
또는 TRUE
각각 반환 하므로 IF()
중간 값없이 같은 제어 구조에서 바로 결과를 사용할 수 있습니다.