要求に応じてモバイル デバイスに画像を送信するために使用する php スクリプトがあります。現在のバージョンではスクリプトが実行され、最後の前に imagePNG() を使用して画像をデバイスに出力しますが、オンラインのphpマニュアルの例を読んで、次の例を見ました:
<?php
header("Content-Type: image/png");
# Generate cachefile for image, if it doesn't exist
if( !file_exists($cachefile) ) {
$im = generateimage(); # some code generates an image resource
imagepng($im, $cachefile); # store the image to cachefile
# don't output it like this:
/* imagepng($im);*/
imagedestroy($im);
}
$fp = fopen($cachefile, 'rb'); # stream the image directly from the cachefile
fpassthru($fp);
exit;
?>
この例をいくつか変更して使用し、画像をモバイルに送信しましたが、正常に動作しましたが、いくつか質問したいことがあります: 1) ファイルから画像を作成し、imagePNG を使用して送信するよりも効率的ですか?
2) また、fpassthru を使用した直後にファイルを閉じるべきではありませんか?
3) fopen を使用する場合、ファイルがロックされていることを意味しますか?つまり、他のデバイスはありませんが、ストリーミングされているその瞬間にファイルにアクセスできますか?
この件に関するご意見をお待ちしております。