2012-01-26 9 views
0

画像が利用できるかどうかを確認するPHPファイルがあります。そうであれば、イメージはユーザーに返されます。作成されない場合は、ユーザーに返されます。画像の出力パフォーマンスを最適化する

if(file_exists($filepath)) { 
    $fp = fopen($filepath, 'rb'); # stream the image directly from the cachefile 
    fpassthru($fp); 
    exit; 
} 

私は、これは私が「file_exists」コールをスキップし、単に「偽」がそうでない私が直接(それを返す、私はイメージを作成する返された場合、それを「のfopen」に試すことができます最適化するために、推測が正しいのですか? )。

私が知りたいことは、これがPHPで画像を読み込む最も速い方法かどうかです。これまではimagepng($image)を使用していましたが、fpassthruは高速です。 http://www.php.net/manual/en/function.imagepng.php#103787

答えて

1

最も早い方法は、最初にPHP経由で画像を処理することではありません。既存のファイルを提供するリバースプロキシサーバーを使用し、PHPスクリプトと呼ばれる既存のファイルではないそれぞれに対して、それぞれを使用します。

次に、file_exists()の呼び出しを削除すると、最適化されません。しかし、ファイルが存在しない場合、PHPは警告をトリガし、ログに書き出し、設定に従って出力します.CPUの点では、file_exists呼び出しよりも高価です。

関連する問題