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を使用して情報を更新し、保存を終了して完了し、ファイルを圧縮するという操作タスクを簡単に完了します。