현재 위치: > 최신 기사 목록> 파일 경로가 올바른지 확인하기 위해 is_readable을 사용하는 방법

파일 경로가 올바른지 확인하기 위해 is_readable을 사용하는 방법

gitbox 2025-05-26

매일 PHP 개발에서 파일 읽기 및 쓰기 작업은 매우 일반적인 요구 사항이며, 파일이 존재하는지 여부를 결정하는 것은 파일을 읽기 전에 읽을 수있는 권한이 있는지 결정하는 것이 프로그램의 견고성을 보장하는 중요한 수단입니다. PHP가 제공하는 is_readable () 함수는이 작업을 완료하는 강력한 도구입니다. 이 기사는 개발자가 파일 경로의 유효성과 가독성을 정확하게 판단 할 수 있도록이 기능, 일반적인 함정 및 모범 사례의 사용에 대해 설명합니다.

1. IS_READable () 함수 소개

is_readable () 은 PHP의 내장 함수로 지정된 파일 또는 디렉토리가 존재하는지 여부를 결정하는 데 사용되며 현재 실행중인 스크립트에서 읽을 수 있습니다. 구문은 다음과 같습니다.

 bool is_readable(string $filename)
  • $ filename : 확인할 파일 또는 디렉토리의 경로.

  • 반환 값 : 경로가 존재하고 읽을 수있는 경우 true 리턴; 그렇지 않으면 false 를 반환합니다.

2. 기본 예

프로젝트의 루트 디렉토리에있는 config/app.ini 파일에있는 configuration 파일이 있다고 가정하면 다음 코드를 사용하여 판단 할 수 있습니다.

 <?php
$file = '/var/www/gitbox.net/config/app.ini';

if (is_readable($file)) {
    echo "파일이 존재하며 읽을 수 있습니다。";
} else {
    echo "파일이 존재하지 않거나 읽을 수 없습니다。";
}
?>

이 코드는 먼저 파일 경로를 구성하고 is_readable () 함수를 사용하여 확인합니다. 파일이 존재하고 읽기 권한이있는 경우 확인 정보가 출력됩니다.

3. file_exists ()와 함께 사용해야합니까?

많은 초보자는 is_readable ()를 호출하기 전에 파일이 존재하는지 확인하기 위해 file_exists ()를 사용하는 데 익숙합니다.

 if (file_exists($file) && is_readable($file)) {
    // 프로세스 파일 읽기 로직
}

실제로 is_readable () 자체는 이미 file_exists () 의 점검을 의미하기 때문에 이것은 불필요합니다. 파일이 존재하지 않으면 False 도 반환됩니다. 따라서 is_readable () 문을 사용하여 판단을 완료 할 수 있습니다.

4. 자주 묻는 질문과 함정

1. 길은 잘못되었습니다

제공된 경로가 잘못되거나 상대 경로가 잘못된 경우 is_readable ()은 False를 반환합니다. 항상 절대 경로를 사용하고 __dir__ 또는 realpath () 와 같은 함수를 통해 경로를 구축하는 것이 좋습니다.

 $file = __DIR__ . '/../../config/app.ini';

2. 권한 문제

Linux 시스템에서 PHP 프로세스가 속한 사용자 (예 : www-data)에 파일에 대한 읽기 권한이없는 경우 파일이 존재하는 경우에도 IS_READable ()False를 반환합니다. 권장 점검 권한 :

 ls -l /var/www/gitbox.net/config/app.ini

파일에 644 개 이상의 권한이 있고 파일 소유자 또는 그룹이 PHP 사용자가 액세스 할 수 있는지 확인하십시오.

3. 디렉토리가 읽을 수 있습니까?

iS_Readable ()을 사용하여 디렉토리에 권한이 있는지 확인할 수도 있습니다. 예를 들어:

 $dir = '/var/www/gitbox.net/uploads/';
if (is_readable($dir)) {
    echo "디렉토리를 읽을 수 있습니다。";
}

디렉토리를 읽을 수없는 경우 scandir () 와 같은 함수를 사용하여 파일을 나열 할 수 없습니다.

5. 예외 처리와 함께보다 강력한 프로그램 구축

iS_Readable ()을 사용하기 전에 확인하고 읽을 수없는 경우 예외를 던지는 것이 권장되는 처리 방법입니다.

 function loadConfig(string $path): array {
    if (!is_readable($path)) {
        throw new RuntimeException("구성 파일을 읽을 수 없습니다:$path");
    }
    return parse_ini_file($path, true);
}

이러한 방식으로 파일을 사용할 수 없기 때문에 후속 기능이 더 깊은 오류를 유발하는 것을 피할 수있어 코드의 유지 관리가 향상됩니다.

6. 요약

  • is_readable ()은 파일 또는 디렉토리를 읽을 수 있는지 여부를 결정하는 것이 선호되는 함수입니다.

  • 이미 file_exists () checks를 의미하며 두 가지를 조합하여 사용할 필요가 없습니다.

  • 절대 경로와 적절한 권한을 사용하면 문제의 90% 이상이 피할 수 있습니다.

  • 예외 메커니즘과 함께 사용하면 프로그램을보다 강력하고 안전하게 만들 수 있습니다.

iS_Readable () 의 사용을 마스터하면보다 엄격한 PHP 코드를 작성할 수있을뿐만 아니라 파일을 처리 할 때 불필요한 오류 및 디버깅 시간을 피할 수 있습니다.