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; 在 thumb.php

于 2012-12-20T13:19:34.697 回答