ホームページ  >  記事  >  バックエンド開発  >  pclzip は指定されたディレクトリを圧縮します。パラメータが非常に残念です。解決策に感謝していません。

pclzip は指定されたディレクトリを圧縮します。パラメータが非常に残念です。解決策に感謝していません。

WBOY
WBOYオリジナル
2016-06-13 13:30:33773ブラウズ

pclzip は指定されたディレクトリを圧縮します。助けてください。
たとえば、このファイル全体を /data に配置する必要があります。パッケージ内 パスには、現在のサイトのファイルとディレクトリのみが含まれます。
$z = new PclZip(YSROOT.'/data/back_090508.zip');
$result = $z->create('parameter'); ここでパラメータを入力するにはどうすればよいですか?

YSROOT を試しました。YSROOT は、パーティションのルート ディレクトリからサイトのルート ディレクトリまですべてのパスを伝送しますが、少し冗長です。

../ も試してみましたが、解凍後は指定したディレクトリの上位層になるので、あまり直感的に制御できません。
本当に急いでいます。親切に助けてください。感謝はしていません


-----解決策-------- -- ----------
PclZip の紹介と使い方
------解決策---------
これまでこのクラスを使用したことがありません
を押してください彼の説明のために、ディレクトリ名を教えてください。
------解決策---------

PHP コード

//ディレクトリextract/folder/に解凍します。
[php]$list = $archive->extract(PCLZIP_OPT_PATH, "extract/folder/");[/php]

//このディレクトリを圧縮ファイルに追加します。完了すると、圧縮ファイル内にバックアップ ディレクトリが作成され、バックアップ内にこれら 2 つのドキュメントが含まれます。
[php]$list = $archive->create("file.txt,image.gif",PCLZIP_OPT_ADD_PATH, "backup");[/php]

//パスの一部を削除すると、完了するとtest/file.txtになります。
[php]$list = $archive->add("/usr/local/user/test/file.txt",PCLZIP_OPT_REMOVE_PATH, "/usr/local/user");[/php]

//すべてのパスを削除します。圧縮ファイルが作成されると、その中には file.txt と image.gif のみが存在し、ディレクトリは存在しません。
[php]$list = $archive->create("data/file.txt 画像/image.gif",PCLZIP_OPT_REMOVE_ALL_PATH);[/php]

//解凍されたドキュメントのCHMODを0777に設定します
[php]$list = $archive->extract(PCLZIP_OPT_SET_CHMOD, 0777);[/php]

//解凍されたファイルのリスト。次のような配列にすることができます。
[php]$rule_list[0] = 'test/aaa.txt';
$rule_list[1] = 'test/ddd.txt';[/php]


//または次のように、文字列内で、解凍する各ドキュメントをカンマで区切ります。
[php]$rule_list = "test/aaa.txt,test/ddd.txt";
$list = $archive->extract(PCLZIP_OPT_BY_NAME,$rule_list);[/php]

//一部のドキュメントを解凍するには、PHP の ereg() 関数を使用します。ドキュメント名の比較が成功すると、ドキュメントが解凍されます。
[php]$list = $archive->extract(PCLZIP_OPT_BY_EREG, "aa");[/php]

//一部のドキュメントを解凍するには、PHP の preg_match() 関数を使用します。比較に成功したドキュメント名は解凍されます。
[php]$list = $archive->extract(PCLZIP_OPT_BY_PREG, "/^bb/");[/php]


//上記 2 つの関数がわからない場合は、まず正規表現を勉強してください。

//配列内の要素のインデックスに従って解凍しますが、index ==! についてはよくわかりません。
[php]$list = $archive->extract(PCLZIP_OPT_BY_INDEX, array('0-1','6-7'));[/php]

//ドキュメントの内容を文字列に解凍します。
[php]$list = $archive->extract(PCLZIP_OPT_BY_NAME, "data/readme.txt",PCLZIP_OPT_EXTRACT_AS_STRING);[/php]

//ドキュメントの内容を解凍して直接出力(エコー)
[php]$list = $archive->extract(PCLZIP_OPT_BY_NAME, "data/readme.txt",PCLZIP_OPT_EXTRACT_IN_OUTPUT);[/php]

//圧縮ファイルにドキュメントを追加しますが、ドキュメントは圧縮されません
[php]$list = $archive->add("data/file.txt", PCLZIP_OPT_NO_COMPRESSION);[/php]

//この圧縮ファイルにアノテーションを追加します。元々アノテーションがあった場合は上書きされます。
[php]$list = $archive->create("データ", PCLZIP_OPT_COMMENT, "コメントを追加");[/php]

//この圧縮ファイルにコメントを追加します。すでにコメントがある場合は、それに従います。
[php]$list = $archive->add("data", PCLZIP_OPT_ADD_COMMENT, "既存のコメントの後にコメントを追加します");[/php]

//この圧縮ファイルにアノテーションを追加します。元々アノテーションが存在する場合は、元のアノテーションの前に配置されます。
[php]$list = $archive->add("data", PCLZIP_OPT_PREPEND_COMMENT, "既存のコメントの前にコメントを追加します");[/php] <div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。