1

<img>画像のサイズを変更し、次のようなタグに動的に挿入するスクリプトを作成しました。

<img src="includes/thumb.php?src=<?=$filename;?>&w=389&q=100&f=jpg" />

thumb.php では、php gd 関数を使用して画像includeのサイズを変更し、最後に、thumb.php が<img>タグ内で呼び出される画像のサイズ変更された画像を表示するようにします。

これは、thumb.php から画像を含める方法です。

//header('Content-Type: image/' . $format);
//header('Content-Disposition: inline;');
include $resized_image; // which is now resized and saved

ただし、すべての画像で常に機能するとは限りません。次のメッセージが表示されることがあります。

Parse error: syntax error, unexpected ']' in xxxxx\thumbs\
e58b3c96d4f2ccc298d68cbac7cd97a0.jpg on line 326

ご覧のとおり、解析しようとすると、新しくサイズ変更された画像に解析エラーが発生しますinclude。しかし、画像をダブルクリックして直接開くと、正常に表示され、有効な画像です。

PHPがPHPコードのように画像ファイルを解析している理由を誰か教えてもらえますか?私はそれを避けて、代わりに画像を表示したいですか?

私がやりたいのは、次のようにサイズ変更された画像を表示することだけです:

<img src="includes/thumb.php?src=<?=$filename;?>&w=389&q=100&f=jpg" />
4

4 に答える 4

1

readfile($resized_image)ファイルをブラウザに送信するには、を使用する必要がありますinclude $resized_image。 はファイルを PHP スクリプトとして解析しようとしますが、これは実際には非常に危険です!

以下も参照してください。readfile()

于 2012-12-20T13:17:35.267 に答える
1

readfile()代わりに使用してください。includeは間違ったツールであり、セキュリティの問題にもつながる可能性があります。

于 2012-12-20T13:17:50.893 に答える
1

PHPを使用してブラウザに画像を送信するには、次のようにします。

header("Content-Type: image/jpeg");
try
{
    $image = fopen('imagepath', "rb");
}
catch (Exception $e)
{
    //foobar
}
fpassthru($image);
fclose($image);
exit();
于 2012-12-20T13:29:06.750 に答える
0

私はそれがもっと似ているべきだと思います-> echo $resized_image; 親指で.php

于 2012-12-20T13:19:34.697 に答える