現在の位置: ホーム> 最新記事一覧> [PHPによるZIP圧縮パッケージのファイル属性を変更する完全な方法の詳細な説明]

[PHPによるZIP圧縮パッケージのファイル属性を変更する完全な方法の詳細な説明]

M66 2025-06-10

PHP Ziparchiveの紹介

Ziparchiveは、圧縮されたファイルをzip形式で操作するためにPHPが提供する拡張ライブラリです。それを通して、ファイルの権限や変更時間など、圧縮パッケージ内のファイルのプロパティを作成、読み取り、更新、さらには変更できます。

圧縮パッケージをロードし、オブジェクトを初期化します

操作の前に、 Ziparchiveオブジェクトをインスタンス化し、ターゲットZIPファイルをロードする必要があります。

 
$zip = new ZipArchive();
$zip->open('example.zip');

圧縮ファイルの元のプロパティをお読みください

StatIndex()メソッドを使用して、ファイル名、元のサイズ、変更時間、許可など、圧縮パッケージ内のファイルの詳細な属性情報を取得できます。

 
$fileIndex = 0; // ターゲットファイルが圧縮パッケージの最初のインデックス位置にあると仮定します
$fileInfo = $zip->statIndex($fileIndex);

echo "ファイル名: " . $fileInfo['name'] . "\n";
echo "圧縮前のファイルサイズ: " . $fileInfo['size'] . " バイト\n";
echo "最後の変更時間: " . date('Y-m-d H:i:s', $fileInfo['mtime']) . "\n";
echo "権限: " . $fileInfo['external'] . "\n";

ファイル属性の変更:許可とタイムスタンプ

setExternalattributesIndex()メソッドを使用して、許可と変更時間を含む圧縮パッケージ内のファイルのプロパティを変更します。以下は特定の操作方法です。

 
$newPermissions = 0777; // 设置为最高権限
$newModifiedTime = time(); // 現在の時刻に設定します

$zip->setExternalAttributesIndex($fileIndex, ($newPermissions << 16) | ($newModifiedTime & 0xFFFF));

// 属性の変更が有効かどうかをもう一度確認します
$fileInfo = $zip->statIndex($fileIndex);
echo "修改后的文件権限: " . $fileInfo['external'] . "\n";
echo "修改后的最後の変更時間: " . date('Y-m-d H:i:s', $fileInfo['mtime']) . "\n";

ジップパッケージを保存して、オブジェクトを閉じます

プロパティの変更を完了したら、 Close()メソッドを呼び出して変更を保存し、リソースをリリースすることを忘れないでください。

 
$zip->close();

要約します

PHPのZiparchive拡張機能の助けを借りて、ファイル許可、最後の変更時間、その他の主要メタデータなど、ZIP圧縮パッケージのファイルのプロパティを簡単に変更できます。 StatIndexを介して元の属性を読み取り、 SetExternalattributesIndexを使用して情報を更新し、保存を終了して完了し、ファイルを圧縮するという操作タスクを簡単に完了します。