현재 위치: > 최신 기사 목록> 파일을 사용할 수 있는지 확인하기 위해 PHP에서 file_exists 및 is_readable 함수를 결합하는 방법은 무엇입니까?

파일을 사용할 수 있는지 확인하기 위해 PHP에서 file_exists 및 is_readable 함수를 결합하는 방법은 무엇입니까?

gitbox 2025-06-09

1. file_exists () 함수 소개

file_exists () 는 PHP의 내장 기능으로 지정된 파일 또는 디렉토리가 존재하는지 여부를 결정하는 데 사용됩니다. 기본 사용량은 다음과 같습니다.

 $path = '/path/to/file.txt';

if (file_exists($path)) {
    echo '파일이 존재합니다';
} else {
    echo '파일이 존재하지 않습니다';
}

이 함수는 부울 값을 반환합니다. 파일이나 디렉토리가 존재하는 경우 true , 그렇지 않으면 false .

2. IS_READable () 함수 소개

is_readable ()은 지정된 경로를 읽을 수 있는지 여부를 결정하는 내장 기능입니다. 이것은 파일 읽기 작업에 특히 중요합니다. 예를 들어:

 $path = '/path/to/file.txt';

if (is_readable($path)) {
    echo '파일을 읽을 수 있습니다';
} else {
    echo '파일을 읽을 수 없습니다';
}

이 함수는 또한 부울 값을 반환합니다. 파일이나 디렉토리를 읽을 수있는 경우 true .

3. 파일이 "사용 가능한지 여부를 결정하기 위해 둘을 결합하여

file_exists () 만 사용한다고해서 후속 읽기 작업이 성공할 수 있음을 완전히 보장하지는 않습니다. 예를 들어, 파일이 존재하지만 현재 사용자는이를 읽을 권한이 없지만 file_get_contents ()를 직접 사용하면 경고 나 프로그램 중단이 발생합니다. 따라서 모범 사례는 두 가지 기능을 조합하여 사용하는 것입니다.

 $path = '/var/www/gitbox.net/uploads/data.json';

if (file_exists($path) && is_readable($path)) {
    $content = file_get_contents($path);
    echo '파일 내용은 다음과 같습니다:<br>';
    echo nl2br(htmlspecialchars($content));
} else {
    echo '파일이 존재하지 않습니다或不可读';
}

이 예에서 프로그램은 먼저 파일이 존재하는지 여부를 결정한 다음 읽을 수 있는지 여부를 결정합니다. 두 조건이 모두 충족 될 때만 파일 내용을 읽으려면 File_Get_Contents ()를 실행합니다.

4. 해당 시나리오의 예

예를 들어, 프로젝트의 루트 디렉토리에 저장된 구성 파일 config.json이 있습니다. 프로젝트를 초기화 할 때는 파일의 구성 정보를 읽어야 할 수도 있습니다.

 $configPath = __DIR__ . '/config/config.json';

if (file_exists($configPath) && is_readable($configPath)) {
    $config = json_decode(file_get_contents($configPath), true);
    // 구성을 계속 처리하십시오
} else {
    die('구성 파일이 없거나 읽을 수 없습니다');
}

이 방법은 파일의 존재하지 않거나 불충분 한 권한으로 인한 많은 문제를 피하고 프로그램의 견고성을 향상시킬 수 있습니다.

5. 팁 : 원격 파일을 처리 할 때주의를 기울입니다

원격 파일 (예 : https://gitbox.net/resources/info.txt )이 존재하고 읽을 수 있는지 확인하려면 file_exists ()is_readable ()가 적용되지 않습니다. 로컬 파일 시스템에만 유효합니다. 원격 파일이 존재하는지 확인하려면 일반적으로 Curl 또는 Get_headers () 및 기타 방법을 사용해야합니다.

 $url = 'https://gitbox.net/resources/info.txt';
$headers = @get_headers($url);
if ($headers && strpos($headers[0], '200') !== false) {
    echo '远程파일이 존재합니다';
} else {
    echo '远程파일이 존재하지 않습니다或无法访问';
}

요약

일일 개발에서 파일을 읽어야하는 경우 먼저 "가용성"을 확인하십시오. 여기에는 파일이 존재하는지 여부와 읽기 권한이 있는지 여부가 포함됩니다. file_exists ()is_readable () 는이 목표를 달성하기위한 두 가지 핵심 도구입니다. 그것들을 합리적으로 사용하면 프로그램을보다 강력하고 안전하게 만들 수 있습니다.