file_exists () 는 PHP의 내장 기능으로 지정된 파일 또는 디렉토리가 존재하는지 여부를 결정하는 데 사용됩니다. 기본 사용량은 다음과 같습니다.
$path = '/path/to/file.txt';
if (file_exists($path)) {
echo '파일이 존재합니다';
} else {
echo '파일이 존재하지 않습니다';
}
이 함수는 부울 값을 반환합니다. 파일이나 디렉토리가 존재하는 경우 true , 그렇지 않으면 false .
is_readable ()은 지정된 경로를 읽을 수 있는지 여부를 결정하는 내장 기능입니다. 이것은 파일 읽기 작업에 특히 중요합니다. 예를 들어:
$path = '/path/to/file.txt';
if (is_readable($path)) {
echo '파일을 읽을 수 있습니다';
} else {
echo '파일을 읽을 수 없습니다';
}
이 함수는 또한 부울 값을 반환합니다. 파일이나 디렉토리를 읽을 수있는 경우 true .
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 ()를 실행합니다.
예를 들어, 프로젝트의 루트 디렉토리에 저장된 구성 파일 config.json이 있습니다. 프로젝트를 초기화 할 때는 파일의 구성 정보를 읽어야 할 수도 있습니다.
$configPath = __DIR__ . '/config/config.json';
if (file_exists($configPath) && is_readable($configPath)) {
$config = json_decode(file_get_contents($configPath), true);
// 구성을 계속 처리하십시오
} else {
die('구성 파일이 없거나 읽을 수 없습니다');
}
이 방법은 파일의 존재하지 않거나 불충분 한 권한으로 인한 많은 문제를 피하고 프로그램의 견고성을 향상시킬 수 있습니다.
원격 파일 (예 : 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 () 는이 목표를 달성하기위한 두 가지 핵심 도구입니다. 그것들을 합리적으로 사용하면 프로그램을보다 강력하고 안전하게 만들 수 있습니다.