2013-03-02 137 views
1

想看看什么样的行动可以用PHP脚本正在通过图片src称为像这样进行内部:PHP IMG SRC

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

现在,我已经尝试包括PHP header()函数在script.php的:

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

我也试图呼应的图像URL期待IMG来显示它,它没有:

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

是否有任何方法可以在img src属性中调用PHP脚本来做这种事情?

+0

发布您尝试过的代码。 – 2013-03-02 15:11:53

+0

html img标签期望源返回图像文件。如果script.php生成一个图像作为原始图像数据与适当的头文件流,它将工作。你回来了什么? – 2013-03-02 15:12:50

回答

0

是否有任何方法使用img src属性中正在调用的PHP脚本来完成此类操作?

否。用作img标记的src的资源需要输出图像数据,没有别的。

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

+1

如果您发回带有正确标题的文本,一些旧版浏览器可能会尝试执行javascript;图像来源有一些历史漏洞,但我相信它们现在都已经被封堵了。 – 2013-03-02 15:17:45

1

检查出readfile()的方式来输出图像文件从script.php

readfile($file); 

手册中了解更多关于在这里:​​

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

其中示例#1给出了一个如何设置标题的想法。

该手册还指出:发送大文件 即使,对自己

的ReadFile()将不存在任何内存问题。

的URL可以被用作与此功能

PS文件名:这是WordPress的多站点用于打开用户上传的(例如图像)文件的方式。

+0

我不需要使用正确的标题吗?我将如何能够将其内容返回到src属性? – AdamGold 2013-03-02 15:25:30

+0

是的,例1给你一个想法,你可以如何构造标题。 – birgire 2013-03-02 15:26:35

1

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

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

// script.php的

$file = "tiger.jpeg"; 
$type = "image/jpeg"; 
header("Content-Type: $type"); 
header("Content-Length: " . filesize($file)); 
readfile($file); 
0

你应该记住,在src标签应直接指向一个图像文件。但是,可以通过使用GD库使用PHP创建图像,对于〔实施例:

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上的文本经纪商网站的图片(例如新的,出售的,出租的等)。