1

企業の広告作品のポートフォリオとして機能する Web サイトを構築しています。ファイルをアップロードしたり、ギャラリーなどで表示したりできます。彼らが望んでいるもう 1 つの機能は、特権ユーザーがギャラリー全体をダウンロードできるようにすることです。

ファイルがアップロードされるときに既存のアーカイブに追加する (考えられる) 2 つの選択肢に直面しています。これにより、応答時間が長くなるか、誰かがギャラリーをダウンロードするたびにアーカイブを構築します。

PHP が提供する圧縮ユーティリティの仕組みやデータ構造がわからないので、どれが最も安価ですか?

画像はすべて jpeg であるため、圧縮は効果がなく、何百もの高解像度画像が存在する可能性があります。

4

1 に答える 1

1

3 番目の選択肢: アーカイブを毎日作成する「cron」ジョブとして設定します。これは、プロセスがユーザー アクティビティにリンクされておらず、発生することが保証されており、ユーザーを妨げないことを意味します。


編集:どのユーティリティを使用するかについての2番目の部分への回答。

PHP マニュアルに簡単な概要が記載されています: http://php.net/manual/en/phar.fileformat.comparison.php - ただし、基本的に 2 つのタイプまたはアーカイブ/圧縮があります: - Zip、gzip、bzip (圧縮ですが、複数のファイルを 1 つのアーカイブに圧縮する機能) - rar、tar (単一のファイルにアーカイブし、アーカイブを構築する際にサイズを縮小する機能)

圧縮による効果があまり期待できない場合は、アーカイブ機能 (tar/rar など) の 1 つを調べてください。最もよく知られているのは "rar" ですが、ライセンスでは PHP が rar ファイルを作成することを許可していないため、"tar" を使用する必要があります。tar は Linux ファイルで最も一般的です。これは、「phar」http://www.php.net/manual/en/intro.phar.phpという PHP ライブラリを介して行うことができます。

余分なものを絞り出したい場合は、おそらく gzip が最適です (ただし、テストして確認する必要があります)。だからあなたのtarを取り、gzipで圧縮してください。Phar は、1 つの単純なクラスでこれを処理することもできます (phar::compress)。

最後の注意: Linux サーバーを使用している場合は、Linux のパンとバターのようなものであるため、exec() を介して tar および gzip コマンドを (この順序で) 呼び出すことにより、絶対的に最良の結果が得られる場合があります。

于 2012-06-24T02:19:19.783 に答える