opendir () 는 PHP에서 디렉토리 핸들을 여는 데 사용되는 기능입니다. 기본 구문은 다음과 같습니다.
$handle = opendir($path);
이 기능은 지적한 디렉토리를 $ 경로 로 열려고 시도하고, 디렉토리가 성공하면 디렉토리 핸들을 반환하고 실패하면 False를 반환합니다. 이 기능을 바탕으로 OpenDir ()를 사용하여 디렉토리가 실제로 존재하는지 확인할 수 있습니다.
다음은 전체 예입니다.
<?php
$directory = '/var/www/html/uploads';
if ($handle = @opendir($directory)) {
echo "디렉토리가 존재합니다,읽을 수 있습니다。";
closedir($handle);
} else {
echo "디렉토리가 존재하지 않습니다,또는 접근 할 수 없습니다。";
}
?>
위의 코드에서는 @ 연산자를 사용하여 디렉토리가 존재하지 않거나 권한이 충분하지 않은 경우 OpenDir 함수의 경고 메시지를 억제합니다. 이것은 모범 사례는 아니지만 출력이 엄격하게 필요한 일부 환경에서는 필요합니다. 디렉토리의 존재와 접근성을보다 안전하게 판단하려면 IS_DIR () 및 IS_READable () 와 동시에 협력하는 것이 좋습니다.
<?php
$directory = '/var/www/html/uploads';
if (is_dir($directory) && is_readable($directory)) {
echo "디렉토리가 존재합니다,그리고 읽을 수 있습니다。";
} else {
echo "디렉토리가 존재하지 않습니다或不可读取。";
}
?>
그러나 디렉토리 컨텐츠를 나열 할 수 있는지 여부를 추가로 결정하거나 현재 권한 환경에서 OpenDir ()가 정상적으로 사용할 수 있는지 테스트 할 수 있는지 여부를 더 결정하려는 경우 특정 특별한 요구에 따라 OpenDir ()를 직접 사용하는 것이 더 의미가 있습니다.
opendir () 가 디렉토리를 성공적으로 엽니다면 일반적으로 readdir () 및 closedir () 와 함께 사용하여 디렉토리 컨텐츠의 트래버스를 완료합니다. 예를 들어:
<?php
$directory = '/var/www/html/uploads';
if ($handle = @opendir($directory)) {
echo "디렉토리 목록:<br>";
while (false !== ($file = readdir($handle))) {
if ($file !== '.' && $file !== '..') {
echo "<a href='https://gitbox.net/uploads/$file'>$file</a><br>";
}
}
closedir($handle);
} else {
echo "디렉토리를 열 수 없습니다:$directory";
}
?>
이 코드는 디렉토리가 존재하는지 알리는 방법을 보여주고 파일을 링크로 나열합니다. 여기서 링크 주소는 https://gitbox.net을 도메인 이름으로 사용합니다.
@를 사용하여 오류 메시지를 억제하는 것이 편리하지만 잠재적 인 문제를 숨길 수 있습니다. 개발 단계에서 사용하지 않고 공식적으로 출시되기 전에 필요에 따라 추가하는 것이 좋습니다.
opendir ()를 사용할 때는 완료 후 CloseBir ()에게 전화하여 리소스를 해제하십시오.
opendir ()는 디렉토리가 "개방 가능"인지 여부 만 결정할 수 있지만 디렉토리의 일부 파일과 같은 모든 컨텐츠를 읽을 수 있음을 의미하지는 않습니다.
opendir () 함수를 통해 디렉토리가 실제로 존재하는지 판단 할뿐만 아니라 내용을 더욱 횡단 할 수 있습니다. is_dir () 및 file_exists () 와 같은 다른보다 일반적으로 사용되는 다른 기능이 있지만 opendir ()는 특정 시나리오에서보다 운영적인 판단 방식을 제공합니다. 이러한 기능을 이해하고 유연하게 사용하면 PHP 파일 시스템을 처리하는 능력이 크게 향상됩니다.