2012-02-20 20 views
1

この質問は、画像のフォルダ/ディレクトリを最適化し、最適化された画像を新しいディレクトリに移動することなく、既に最適化された画像を再最適化しないようにするプロジェクトの次のステップです。私はここに質問を投稿しましたHow to avoid Optimizing images that are already optimized with PHP?ディレクトリに存在するファイルのファイルまたはデータベースを保持する方法はありますか?

私のアプリケーションは、いくつかのImage Optimizationツールを包括し、指定されたディレクトリを再帰的にスキャンし、適切なオプティマイザプログラムを通してすべてのイメージを実行するPHPで書かれたコマンドラインツールです。

現在、200個の画像を含むフォルダがあり、アプリケーションを実行した場合、非常に時間がかかる200個の画像すべてを最適化しようとします。つまり、プロジェクトに別の5つのイメージを追加して、アプリケーションを再度実行する必要があるとしたら、5つの新しいイメージの代わりに205個のイメージすべてを最適化するということです。それが私が解決しようとしている問題です。私のアイデアは、画像フォルダにあるファイル/ DBのある種の種類を持つことです。アプリケーションが実行されると、このファイルにあるすべての画像を最初に読み込みます。画像がこのファイルにあれば、既に最適化されています。それを再最適化する必要はありません。したがって、私の例では、5つの新しい画像だけがファイルにないので実行されます。完了したら、これらの5つの新しいイメージはこのファイルにマージされるので、私のアプリケーションの3回目の実行では、すでに最適化され、ファイル/ DBに追加されているため、205イメージはすべてスキップされます。

これはかなり良い方法だと思いますが、パフォーマンスは賢明ですが、現在のアイデアを改善するためのすべてのアイデアや改善が可能ですか?

私のアプリケーションでは、提供されたディレクトリが再帰的に実行されるため、20枚の画像と8枚の他のサブフォルダを持つフォルダがあり、これらすべてに画像があり、フォルダーも同様に階層にどれくらい深いかにかかわらず、ルート提供フォルダーの下のすべてのイメージが実行されます。だから私は別のファイル/ DBを各サブフォルダの下にすでに処理されているファイルをリストする各サブフォルダの下に置く必要があるかどうか、あるいはルートフォルダの下の1つのファイル/ DBがルートフォルダに相対的なファイルパスがあります。

イメージが削除された場合は、このファイル/ DBから削除する必要がありますか、とにかく何も影響しない可能性があるので気にしないといけませんか?

私の主な質問は、このサウンドは良い解決策のようですか?既に最適化されたファイルを一覧表示するためのイメージフォルダ内のファイルまたはデータベースタイプのファイルですか?もしあなたがそう思っているなら、このファイルを作成するにはどうすればいいですか?各行に1つのイメージファイル、XMLファイル、またはどんな種類のファイルを持つ単純なテキストファイルでなければなりません。コンテンツをメモリに配列として格納し、次にイメージのディレクトリを再帰的にスキャンすると、見つかった各イメージをこのイメージリスト配列と比較して、既に処理リストに含まれているかどうかを確認し、ファイルやプロセスだけで、それらのファイル

は、など自分の考え、提案、critismを、共有してください、私はそれは良いアイデアであり、一般的にをカタログと呼ばれるこの

+0

tl; dr ................ – Petah

答えて

1

のようなものをやったことがありません。

私が行います物事のカップルは、あなたに何らかの理由でファイルのために、その後上書きされた場合、それは

  • 秒再び最適化することができるように画像を保存するDBのテーブルを「最終日を変更し、」

    • 追加することですあなたはそれぞれのサブフォルダに個々のdbファイルが必要ないdtテーブル自体にディレクトリまたはパスハッシュを格納するので、最適化されているかどうかを知ることができます

    また、過度だが扱いやすい。

    は、フォルダはそれを呼び出すことができますであなたは "「の着信」または「databucket」あなたはあなたのイメージを最適化してしまうときは、その後、という別のフォルダに移動すると言うことができる「」またはあなたのイメージを持っていると言いますファイルシステム "と入力して削除してください。

  • +0

    答えをありがとう、私はあなたのアイデアが好きです。私の状況では良いとは思わない唯一の部分はファイルの移動で、これは私のウェブサイトのハードリンクされた画像を壊すためです。この情報を保存するために使用するファイルのタイプ、通常のテキストタイプのファイル、またはXMLファイルのようなもの – JasonDavis

    +0

    それは私がそれがこの単純な仕事のために過度のものになる可能性があると言った理由です。しかし、カタログ作成はdbを使って行うのが最善で、必要なときに役立つように多くの情報を入れてください。 –

    +0

    私はPHPを使用しているので、SQLite DBは良い選択になると思いますので、イメージディレクトリに実際のDBファイルを保存することができます – JasonDavis

    関連する問題