2

尝试查看通过图像 src 调用的 PHP 脚本可以执行哪些操作,如下所示:

<img src="http://example.com/script.php" />

现在,我尝试在 script.php 中包含 PHP header() 函数:

<?php
header("Location: http://example.com");

我还尝试回显期望 img 显示它的图像 url,但它没有:

<?php
echo 'http://example.com/image.png';

有没有办法用在 img src 属性中调用的 PHP 脚本来做这些事情?

4

5 回答 5

1

有没有办法用在 img src 属性中调用的 PHP 脚本来做这些事情?

不。用作srcimg 标签的资源需要输出图像数据,仅此而已。

有一些例外,例如。header("location: ....")重定向,但重定向需要指向另一个有效的图像资源,而不是您在示例中显示的网站。

于 2013-03-02T15:12:13.593 回答
1

签出readfile()作为从您的输出图像文件的方式script.php

readfile($file);

在手册中阅读有关它的更多信息:

http://php.net/manual/en/function.readfile.php

其中 Example #1 给出了如何设置标题的想法。

该手册还指出:

readfile() 不会出现任何内存问题,即使在发送大文件时也是如此。

URL 可用作此函数的文件名

ps:这是 Wordpress Multisite 用来打开用户上传(例如图像)文件的方式。

于 2013-03-02T15:18:58.243 回答
1

您的script.php应该返回带有正确标题的图像输出。例如:

<img src="/html/img/script.php" />

// 脚本.php

$file = "tiger.jpeg";
$type = "image/jpeg";
header("Content-Type: $type");
header("Content-Length: " . filesize($file));
readfile($file);
于 2013-03-02T15:45:16.463 回答
0

你应该记住 src 标签应该直接指向一个图像文件。但是,可以使用 PHP 创建图像,例如使用 GD 库:

http://php.net/manual/en/book.image.php

所以使用:

<img src="http://example.com/script.php" />

是可能的,只要 script.php 真正输出图像文件,例如使用此处描述的示例:

http://www.php.net/manual/en/image.examples-png.php

我过去曾使用这种处理方法在经纪网站的 JPG 图像上叠加文本(例如新的、已售出的、出租的等)。

于 2013-03-02T15:45:16.910 回答
0

有没有办法用在 img src 属性中调用的 PHP 脚本来做这些事情?

的,但如其他各种答案所述,PHP 脚本只能输出图像数据。

话虽如此,只需读取图像并将其输出到带有readfile的流

header('Content-Type: image/png');
readfile($file);
exit();

我知道我可能晚了几年才能真正帮助你,但公认的答案是不正确的(不再)。

于 2021-01-07T08:26:43.803 回答