PHP ZipArchive를 통해 압축된 패키지의 파일 타임스탬프를 수정하는 방법은 무엇입니까?
소개:
ZipArchive는 ZIP 압축 파일을 생성, 추가, 추출 및 수정하는 데 사용되는 PHP의 내장 클래스입니다. 그러나 ZipArchive 클래스에는 ZIP 파일의 타임스탬프를 수정하는 데 몇 가지 제한 사항이 있습니다. 이 글에서는 PHP ZipArchive를 통해 압축 패키지의 파일 타임스탬프를 수정하는 방법을 소개하고 코드 예제를 제공합니다.
단계:
다음은 PHP ZipArchive를 통해 압축된 패키지에 있는 파일의 타임스탬프를 수정하는 단계입니다.
ZipArchive 개체를 만들고 수정할 ZIP 파일을 엽니다.
$zip = new ZipArchive; if ($zip->open('example.zip') === true) { // 文件打开成功,继续后续操作 } else { // 文件打开失败,处理错误逻辑 }
다음의 모든 파일을 탐색합니다. ZIP 파일 ZIP 파일에서 해당 색인을 가져옵니다.
$fileIndex = array(); for ($i = 0; $i < $zip->numFiles; $i++) { $fileIndex[$i] = $zip->getNameIndex($i); }
수정된 파일의 타임스탬프:
$file = 'path_to_file_within_zip'; $timestamp = time(); // 设置新的时间戳 $index = array_search($file, $fileIndex); // 获取文件在ZIP中的索引 if ($index !== false) { // 找到文件,修改时间戳 $zip->setIndex($index); $zip->setArchiveModifiedTime($timestamp); $zip->close(); } else { // 文件不存在,处理错误逻辑 }
수정된 ZIP 파일을 저장하고 닫습니다.
$zip->close();
전체 샘플 코드:
function modifyZipFileTimestamp($zipFile, $file, $timestamp) { $zip = new ZipArchive; if ($zip->open($zipFile) === true) { $fileIndex = array(); for ($i = 0; $i < $zip->numFiles; $i++) { $fileIndex[$i] = $zip->getNameIndex($i); } $index = array_search($file, $fileIndex); if ($index !== false) { $zip->setIndex($index); $zip->setArchiveModifiedTime($timestamp); $zip->close(); return true; } $zip->close(); } return false; } // 使用示例 $zipFile = 'example.zip'; $file = 'path_to_file_within_zip'; $newTimestamp = strtotime('2022-01-01 00:00:00'); if (modifyZipFileTimestamp($zipFile, $file, $newTimestamp)) { echo '文件时间戳修改成功!'; } else { echo '文件时间戳修改失败!'; }
요약:
PHP ZipArchive 클래스를 통해 ZIP 압축 파일의 파일 타임스탬프를 쉽게 수정할 수 있습니다. 이 문서에서는 ZipArchive 클래스를 사용하여 ZIP 파일의 타임스탬프를 수정하는 단계를 설명하고 전체 샘플 코드를 제공합니다. 이 기사가 PHP에서 ZIP 파일의 타임스탬프를 수정해야 하는 개발자에게 도움이 되기를 바랍니다.
위 내용은 PHP ZipArchive를 통해 압축된 패키지의 파일 타임스탬프를 수정하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!