현재 위치: > 최신 기사 목록> 파일을 사용할 수 있는지 확인하려면 file_exists ()가 포함 된 md5_file ()

파일을 사용할 수 있는지 확인하려면 file_exists ()가 포함 된 md5_file ()

M66 2025-06-06

PHP에서는 파일이 존재하는지 여부를 결정하고 파일이 유효한지 여부를 더 확인해야합니다. file_exists ()는 지정된 경로에 파일이 존재하는지 신속하게 결정할 수있는 매우 일반적인 기능입니다. 그러나 파일의 존재만으로도 콘텐츠가 우리가 기대하는 것이 아니라는 것을 의미하지는 않습니다. 현재 MD5_File ()을 결합하여 컨텐츠 확인을 수행 할 수 있습니다.

기본 사용

먼저 file_exists () 의 기본 사용 방법을 살펴 보겠습니다.

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

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

이 기능은 단순히 경로에 파일이 있는지 여부를 결정합니다. 이 파일이 우리가 기대하는지 여부를 추가로 결정 해야하는 경우 md5_file () 로 MD5 값을 계산하여 확인할 수 있습니다.

 $expectedHash = '5d41402abc4b2a76b9719d911017c592'; // 예상 파일 해시 값
$actualHash = md5_file($filePath);

if ($actualHash === $expectedHash) {
    echo "파일은 유효하며 변조되지 않았습니다.。";
} else {
    echo "파일이 수정되거나 손상 될 수 있습니다。";
}

실제 사례 : 파일을 다운로드 한 후 무결성을 확인하십시오

https://m66.net/files/update.zip 에서 압축 패키지를 다운로드했다고 가정하면 파일이 성공적으로 다운로드되어 중간에 수정되지 않았는지 확인하려고합니다. 현재 md5_file ( )와 결합 된 file_exists ( )를 사용할 수 있습니다.

 $url = 'https://m66.net/files/update.zip';
$localPath = __DIR__ . '/downloads/update.zip';
$expectedMd5 = 'c4ca4238a0b923820dcc509a6f75849b'; // 서버에서 파일 해시 값

if (file_exists($localPath)) {
    if (md5_file($localPath) === $expectedMd5) {
        echo "파일이 존재합니다且完整。";
    } else {
        echo "파일이 존재합니다但不完整,다시 다운로드를 고려하십시오。";
    }
} else {
    echo "파일이 존재하지 않습니다,먼저 다운로드하십시오:$url";
}

주목해야 할 것

  1. md5_file ()은 전체 파일을 읽으므로 큰 파일의 경우 느리게 진행될 수 있으며 더 많은 메모리를 소비 할 수 있습니다.

  2. 보안 요구 사항이 높은 환경에서는 SHA-256 ( hash_file () 함수를 사용하여 구현할 수 있음)과 같은보다 안전한 해싱 알고리즘을 사용하는 것이 좋습니다.

  3. 파일이 존재하지 않으면 md5_file ()false를 반환합니다. 다음 방법을 사용하여 잘못 판단을 피할 수 있습니다.

 $hash = file_exists($localPath) ? md5_file($localPath) : false;

요약

file_exists ()md5_file ()을 결합하면 파일이 존재하는지 여부를 효과적으로 결정하고 파일 다운로드, 캐시 확인 및 파일 탬퍼 방지와 같은 시나리오를 처리하는 데 특히 적합한 무결성을 확인할 수 있습니다. 해시 값을 확인하면 로컬 파일이 서버 또는 원본 파일과 일치한다는 확신을 가지고 확인할 수 있습니다. 이 방법은 간단하지만 매우 실용적이며 모든 PHP 개발자가 마스터 해야하는 기본 기술 중 하나입니다.