0

画像が利用可能かどうかをチェックするphpファイルがあります。そうである場合、画像はユーザーに返されます。そうでない場合、画像は作成されてからユーザーに返されます。

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

これを最適化するために、「file_exists」呼び出しをスキップして「fopen」を試みることができます。「false」が返された場合は画像を作成し、そうでない場合は直接返します(正しいですか?)。

私が知りたいのは、これがPHPで画像をロードする最速の方法ですか?その前に私は使用imagepng($image)しましたが、fpassthruの方がはるかに高速であることを読みました: http ://www.php.net/manual/en/function.imagepng.php#103787

4

1 に答える 1

1

最速の方法は、そもそも PHP 経由で画像を処理しないことです。既存のファイルを提供するリバース プロキシ サーバーを使用し、存在しないファイルごとに PHP スクリプトを呼び出します。

次に、file_exists() への呼び出しを削除すると、マイクロ最適化が行われます。ただし、ファイルが存在しない場合、PHP は警告をトリガーし、ログに書き込み、設定に応じて出力します...これは、CPU に関しては file_exists 呼び出しよりも高価です。

于 2012-01-26T11:00:21.840 に答える