4

PHP ZIP関数を使用して、zipファイルを作成するときに標準のzipオプション」を適用する方法を知っている人はいますか。これまでのところ、私の検索はすべて何も見つかりませんでした。

特に、「 - ll」および「-l 」オプションのいずれかを適用して、nix Webサイトからzipテキストベースのファイル( cgiおよびphpおよびテキストファイルなど)のWINまたはNIXバージョンを提供できるようにすることに関心があります。コンテンツはその場で圧縮され、特定の顧客ごとに追加されたファイルが編集されます。

コマンドラインの「back-ticked」(Perl)または「passthru(。)」(php)メソッドを作成して使用することは知っていますが、純粋なphp、つまりZipArchive()を使用してこれを行うトリックがあることを願っています。

よろしく。

4

2 に答える 2

0

str_replace() はかなり明白だと思います。ただし、大きなファイルではメモリを大量に消費します。

すべてのコードを表示するわけではありませんが、php には、ストリームに「フィルター」を適用できるめったに使用されない機能があり、フィルターはファイル URL の一部として指定できます。これは、他の方法では動作を簡単に微調整できない特定のファイルシステム操作にフックするための優れた方法になります。

stream_filter_register () でフィルターを定義するphp://filter/string.to_unix_line_endings/resource=/path/to/the/file.txtと、メソッドにファイル URL などを渡すことができるようになりますZipArchive::addFile()

ただし、最終的には、一時ファイルを作成し、ファイルの内容をチャンクでコピーし、必要に応じて str_replace してから、一時ファイル名をZipArchive::addFile()メソッドに渡すこともできます。そして、それはコーディングがはるかに簡単になります。

于 2012-05-20T03:00:22.773 に答える
0

shell_exec にフォールバックし、ネイティブ システムを使用して単に zip を実行することになる場合があります。その後、必要に応じて -ll または -l を渡すことができます。http://php.net/manual/function.shell-exec.php

于 2012-05-20T02:19:32.263 に答える