ホームページ  >  記事  >  バックエンド開発  >  PHP ZipArchive は圧縮パッケージ内のファイルのプロパティをどのように変更しますか?

PHP ZipArchive は圧縮パッケージ内のファイルのプロパティをどのように変更しますか?

WBOY
WBOYオリジナル
2023-07-22 17:48:191356ブラウズ

PHP ZipArchive は、ZIP 圧縮ファイルを作成、読み取り、変更するための拡張ライブラリです。これは、圧縮パッケージ内のファイルのプロパティを変更するための一連のメソッドを提供します。

まず、ZipArchive オブジェクトを作成し、変更する圧縮パッケージ ファイルをロードする必要があります。以下に例を示します。

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

次に、statIndex メソッドを使用して、圧縮パッケージ内の特定のインデックスにあるファイルの属性を取得します。このメソッドは、ファイル属性に関するさまざまな情報を含む連想配列を返します。以下に例を示します。

$fileIndex = 0; // 假设要修改的文件位于压缩包的第一个索引位置
$fileInfo = $zip->statIndex($fileIndex);

// 输出文件原始属性
echo "文件名: " . $fileInfo['name'] . "
";
echo "压缩前的文件大小: " . $fileInfo['size'] . " 字节
";
echo "最后修改时间: " . date('Y-m-d H:i:s', $fileInfo['mtime']) . "
";
echo "权限: " . $fileInfo['external'] . "
";

ファイルの属性を変更するには、setExternalAttributesIndex メソッドを使用できます。このメソッドは、変更するファイル インデックスと新しい属性値の 2 つのパラメータを受け入れます。プロパティ値は通常、ファイルのアクセス許可と最終変更時刻を含む 8 進数表記で表されます。以下に例を示します。

$newPermissions = 0777; // 新的文件权限,这里给予最高权限
$newModifiedTime = time(); // 新的最后修改时间,这里设为当前时间

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

// 确认属性修改生效
$fileInfo = $zip->statIndex($fileIndex);
echo "修改后的文件权限: " . $fileInfo['external'] . "
";
echo "修改后的最后修改时间: " . date('Y-m-d H:i:s', $fileInfo['mtime']) . "
";

この例では、ビット単位の演算子を使用して新しいファイルのアクセス許可と最終変更時刻を結合し、結合した値を setExternalAttributesIndex メソッドに渡します。

最後に、変更した圧縮パッケージ ファイルを忘れずに保存してください。 close メソッドを使用して、ZipArchive オブジェクトを閉じ、変更したファイルをディスクに保存できます。以下は例です:

$zip->close();

要約すると、PHP ZipArchive は、圧縮パッケージ内のファイルのプロパティを変更するための非常に便利な方法を提供します。このタスクは、statIndex を使用して元の属性を取得し、setExternalAttributesIndex を使用して属性を変更し、最後に close を使用して変更した zip ファイルを保存することで簡単に実行できます。 。この記事がお役に立てば幸いです!

以上がPHP ZipArchive は圧縮パッケージ内のファイルのプロパティをどのように変更しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。