PHPのzip解凍クラスPclZipの使い方まとめ
PHP zip を解凍するには、PHP に付属する解凍拡張機能の実装に加えて、さまざまな方法があります。ここでは、強力な PHP ZIP 圧縮クラスを紹介します。
PHP zip 解凍クラス PclZip の紹介
PclZip ライブラリは、Zip 形式 (WinZip、PKZIP) の圧縮ファイルを圧縮および解凍する処理を実行します。圧縮ファイルの生成、圧縮ファイルの内容の一覧表示、ファイルの解凍などが含まれます。サーバー側で圧縮・解凍ができるので非常に便利です。
PclZip は PclZip カテゴリを定義し、そのカテゴリ オブジェクトは ZIP ファイルと見なすことができ、処理のためのメソッドも提供します。
PHP zip 解凍クラス PclZip の使用方法
1. 基本
すべての関数は、pclzip.lib.php ファイルによって提供されます。ホームページ (www.phpconcept.net/pclzip/index.en.php) をダウンロードします。すべての PKZIP ファイルは、実際には PclZip クラスのオブジェクトです。 PclZip ファイル (つまり、PclZip クラス オブジェクト) が生成されると、最初に圧縮ファイルが生成され、ファイル名が指定されていますが、この圧縮ファイルの内容はまだ存在しません:
< ?PHP <br /> require_once('pclzip.lib.php'); <br /> $archive = new PclZip("archive.zip"); <br />?>
このオブジェクト このファイルを処理するために、いくつかのパブリック メソッドが提供されています。
2. パラメータ
各メソッドには、必須パラメータとオプションのパラメータを含む、使用できる独自のパラメータがあります。上記の例では、< ?PHP <br /> require_once('pclzip.lib.php'); <br /> $archive = new PclZip('archive.zip'); <br /> <br /> $v_list = $archive->add('dev/file.txt', <br /> PCLZIP_OPT_REMOVE_PATH, 'dev'); <br />?>
'dev/file' です。必須パラメータですが、「PCLZIP_OPT_REMOVE_PATH」は必須ではありません。もちろん、一部のメソッドには必須ではないパラメータのみを含めることもできます。
< ?PHP <br /> $list = $archive->extract(PCLZIP_OPT_PATH, "folder", <br /> PCLZIP_OPT_REMOVE_PATH, "data", <br /> PCLZIP_CB_PRE_EXTRACT, "callback_pre_extract",); <br />?>
上記の例では、圧縮ファイル内のファイルが保存されている元のパスは /data ですが、次のように指定することもできます。 /folder に解凍するように指定します。さらに、解凍前にコールバック関数 ('callback_pre_extract()') が呼び出されます。この関数を使用すると、ユーザーは解凍プロセス中にファイルの保存パスとファイル名を変更したり、解凍しない特定のファイルを選択したりできます。
3. 戻り値
各メソッドによって返される値は異なる場合がありますので、メソッドごとに説明します。ただし、ほとんどのメソッドは 0、エラー、または配列を返します。
4. エラー処理
バージョン 1.3 以降、エラー処理は PclZip カテゴリに統合されており、メソッドがエラー コードを返すと、エラー処理を容易にするための追加情報を取得できます。 errorName(): エラー名を返します* errorCode(): エラー コード
を返します * errorInfo(): エラーの説明を返します 次に、PclZip の使用方法を説明するために、いくつかの例を示します。 PclZip の例 1. ZIP 圧縮ファイルの生成
PclZip($zipname): は PclZip コンストラクター、$zipname は PKZIP 圧縮ファイルのファイル名です。
主に PclZip オブジェクト、つまり PKZIP 圧縮ファイルを生成しますが、この時点では圧縮ファイルのみが生成され、いくつかのチェックが行われます (zlib 拡張子がオンになっているかどうかなど)。それ以外に、他のアクションを実行することはありません。
create($filelist, [オプションの引数リスト]): パラメータ $filelist で指定されたファイルまたはディレクトリ (その中のすべてのファイルとサブディレクトリを含む) を、上記で生成された圧縮ファイルに追加します。
必須ではないパラメータにより、圧縮ファイル内のファイル ストレージ パスが変更される可能性があります。
このメソッドで使用できるパラメータは、ブログ (www.phpconcept.net/pclzip/man/en/index.php) で見つけることができます。 次の例は、PKZIP 圧縮ファイル (ファイル名 archive.zip) を生成し、生成されたばかりの file.txt、data/text.txt、およびディレクトリ フォルダー (ファイルとサブディレクトリを含む) をアーカイブに追加する方法を示しています。 .zip:
< ?PHP<br /> include_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> $v_list = $archive->create('file.txt,data/text.txt,folder');<br /> if ($v_list == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br />?>
< ?PHP<br /> include_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> $v_list = $archive->create('data/file.txt,data/text.txt',<br /> PCLZIP_OPT_REMOVE_PATH, 'data',<br /> PCLZIP_OPT_ADD_PATH, 'install');<br /> if ($v_list == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br /><p>?></p>
<span style="font-size: 14px;">< ?PHP</span><br /> include_once('pclzip.lib.php');<br /> $zip = new PclZip("test.zip");<br /> <br /> if (($list = $zip->listContent()) == 0) {<br /> die("Error : ".$zip->errorInfo(true));<br /> }<br /> <br /> for ($i=0; $i<sizeof ($list); $i++) {<br /> for(reset($list[$i]); $key = key($list[$i]); next($list[$i])) {<br /> echo "File $i / [$key] = ".$list[$i][$key]."<br />";<br /> }<br /> echo "<br />";<br /> }<br /><p>?><span style="font-size: 14px;">
File 0 / [filename] = data/file1.txt
File 0 / [保存ファイル名] = data/file1.txtファイル 0 / [サイズ] = 53
ファイル 0 / [圧縮サイズ] = 36
ファイル 0 / [mtime] = 1010440428
ファイル 0 / [コメント] =
ファイル 0 / [フォルダー] = 0
ファイル 0 / [インデックス] = 0
ファイル 0 / [ステータス] = okFile 1 / [ファイル名] = data/file2.txt
ファイル 1 / [保存ファイル名] = data/file2.txt
ファイル 1 / [サイズ] = 54
ファイル 1 / [圧縮サイズ] = 53
ファイル 1 / [mtime] = 1011197724
ファイル1 / [コメント] =
ファイル 1 / [フォルダー] = 0
ファイル 1 / [インデックス] = 1
ファイル 1 / [ステータス] = ok
2. Unzip Archive
extract([オプション リスト]): PKZIP 内のアーカイブまたはディレクトリを抽出します。 [オプションリスト] 利用可能なパラメータ。これらのパラメータを使用すると、ユーザーは解凍時に、解凍されたファイルのパスを変更する指定、特定のファイルのみを解凍するか特定のファイルを解凍しない指定、ファイルを文字列出力に変換するなど、より多くのオプションを使用できるようになります。 Readme ファイルに使用されます)。次の例は、archive.zip ファイルを現在のディレクトリに解凍する簡単な例です。
次の例は、高度な解凍の例です。 ファイルの使用法、archive.zip 内のすべてのファイルこれらは data/ で解凍され、install/release で特に指定されたすべてのファイルも、data/install/ release ではなく data/ に直接スローされます。<span style="font-size: 14px;">< ?PHP</span><br /> require_once('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> <br /> <br /> if ($archive->extract() == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br />?>
< ?PHP<br /> include('pclzip.lib.php');<br /> $archive = new PclZip('archive.zip');<br /> if ($archive->extract(PCLZIP_OPT_PATH, 'data',<br /> PCLZIP_OPT_REMOVE_PATH, 'install/release') == 0) {<br /> die("Error : ".$archive->errorInfo(true));<br /> }<br /><p>?>

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

PHP開発における固体原理の適用には、次のものが含まれます。1。単一責任原則(SRP):各クラスは1つの機能のみを担当します。 2。オープンおよびクローズ原理(OCP):変更は、変更ではなく拡張によって達成されます。 3。Lischの代替原則(LSP):サブクラスは、プログラムの精度に影響を与えることなく、基本クラスを置き換えることができます。 4。インターフェイス分離原理(ISP):依存関係や未使用の方法を避けるために、細粒インターフェイスを使用します。 5。依存関係の反転原理(DIP):高レベルのモジュールと低レベルのモジュールは抽象化に依存し、依存関係噴射を通じて実装されます。

システムが再起動した後、UnixSocketの権限を自動的に設定する方法。システムが再起動するたびに、UnixSocketの許可を変更するために次のコマンドを実行する必要があります:sudo ...

記事では、PHP 5.3で導入されたPHPの後期静的結合(LSB)について説明し、より柔軟な継承を求める静的メソッドコールのランタイム解像度を可能にします。 LSBの実用的なアプリケーションと潜在的なパフォーマ

PHP開発でPHPのCurlライブラリを使用してJSONデータを送信すると、外部APIと対話する必要があることがよくあります。一般的な方法の1つは、Curlライブラリを使用して投稿を送信することです。

記事では、入力検証、認証、定期的な更新など、脆弱性から保護するためのフレームワークの重要なセキュリティ機能について説明します。

この記事では、フレームワークにカスタム機能を追加し、アーキテクチャの理解、拡張ポイントの識別、統合とデバッグのベストプラクティスに焦点を当てています。
