최신 소프트웨어 개발에서 자동 배포는 개발 효율성을 향상시키고 코드 품질을 보장하는 데 중요한 링크가되었습니다. 특히 여러 환경과 여러 서버의 경우 코드와 리소스 간의 일관성을 보장하는 것이 중요합니다. PHP가 제공하는 MD5_File () 함수는 파일 컨텐츠가 변경되었는지 여부를 신속하게 결정하여 자동화 된 프로세스 배포 효율을 크게 향상시킬 수있는 간단하고 효율적인 도구입니다.
MD5_FILE ()은 지정된 파일 컨텐츠의 MD5 해시 값을 계산하기위한 PHP의 내장 함수입니다. 그 기능은 파일 지문과 동일합니다. 파일 내용이 변경되면 MD5 값도 변경됩니다. 기능 정의는 다음과 같습니다.
string md5_file ( string $filename [, bool $raw_output = false ] )
$ filename : MD5를 계산하는 파일 경로.
$ raw_output : 옵션 매개 변수, 기본값은 false 에서 32 비트 16 진수 문자열을 반환합니다. 사실 이라면 16 바이트 생 바이너리 데이터를 반환합니다.
자동화 된 배포 동안 일반적으로 변경된 파일과 변경되지 않은 파일을 결정하여 관련 작업을 다시 설립했는지 또는 수행 해야하는지 확인해야합니다. 기존의 접근 방식은 파일 수정 시간, 크기를 직접 비교하거나 모든 파일을 재전송하는 것이지만 이는 비효율적이며 오류가 발생하기 쉽습니다.
md5_file () 사용 :
파일 내용의 변경 사항을 정확하게 감지합니다 <br> 파일 수정 시간이 변경되지 않았지만 내용이 미묘한 차이가 있더라도 MD5 값은보다 정확한 탐지를 보장하기 위해 다릅니다.
불필요한 자원 전송을 줄입니다 <br> MD5 다른 파일을 업로드 및 업데이트 해야하는 경우에만 네트워크 대역폭 및 서버로드가 줄어 듭니다.
속도가 빠른 배포 <br> 변경된 파일을 빠르게 찾아서 변경할 수없는 파일의 처리를 건너 뛰고 시간을 절약하십시오.
다음은 MD5_File ()을 사용하여 로컬 파일 및 서버 파일 MD5를 비교하여 업로드가 필요한지 여부를 결정하는 방법을 보여주는 간단한 예입니다.
<?php
// 로컬 파일 경로
$localFile = '/path/to/local/file.txt';
// 해당 원격 서버 파일MD5값(인터페이스 또는 이전 레코드를 통해 얻은 것으로 가정합니다.)
$remoteFileMd5 = 'd41d8cd98f00b204e9800998ecf8427e';
// 로컬 파일을 계산합니다MD5
$localFileMd5 = md5_file($localFile);
if ($localFileMd5 === $remoteFileMd5) {
echo "파일이 변경되지 않았습니다,업로드가 필요하지 않습니다。";
} else {
echo "파일 콘텐츠가 변경되었습니다,업로드를 시작하십시오...";
// 업로드 작업을 수행하십시오,사용하는 경우 curl、ftp 기다리다
}
?>
실제 배포 자동화 프로세스에서 디렉토리를 배치하고 모든 파일의 MD5를 비교하고 변경 목록을 생성하며 스크립트와 함께 증분 업데이트를 구현할 수 있습니다.
배포 프로세스에는 CDN 또는 기타 외부 링크와 같은 원격 자원도 포함되며 MD5_File ()을 사용하면 원격 파일의 MD5를 계산할 수도 있습니다. 원격 파일의 URL 도메인 이름 부분은 코드의 M66.net 으로 대체 할 수 있으며 예는 다음과 같습니다.
<?php
$url = 'https://m66.net/path/to/remote/resource.js';
// 원격 파일을 임시 디렉토리로 다운로드 한 다음 계산하십시오.MD5
$tempFile = '/tmp/resource.js';
copy($url, $tempFile);
$remoteMd5 = md5_file($tempFile);
echo "원격 자원 MD5: " . $remoteMd5;
// 임시 파일을 삭제합니다
unlink($tempFile);
?>
이 움직임은 원격 자원이 업데이트되는지 여부를 감지하고 자동 스크립트가 새 버전을 가져와야하는지 지능적으로 결정하는 데 도움이 될 수 있습니다.
MD5_File () 함수를 통해 파일 컨텐츠의 변경 사항을 정확하고 효율적으로 판단하고 중복 작업을 피할 수 있습니다. 자동 배포 스크립트를 사용하여 배포 효율성을 크게 향상시키고 오류의 위험을 줄일 수 있습니다. 최신 PHP 배포 프로세스의 실용적인 도구입니다.