使用PHP函数include()来包含png图像

时间:2010-08-11 23:18:08

标签: php image include png

好的人,尽管有最着名的做法,今天我决定这样做:

<img src='<? include("dir/dir/img.png"); ?>'>

有6种不同的.png图像。

可悲的是,在浏览器上只能看到6个中的2个。

为什么只显示了6张图片中的2张?也许在路上有数据丢失位?

感谢您的时间:]

4 个答案:

答案 0 :(得分:12)

它不起作用,因为src标记的<img>属性不应包含图像的原始数据;相反,它应该包含指向图像数据的URI。

通过使用data: URI,您可以将图像直接嵌入到(X)HTML文档中。请注意,这在许多浏览器中都不起作用,例如旧版本的Internet Explorer。同样,还有一些限制,例如,data: URI上的IE8限制为32KB。

使用PHP,这是您的代码的样子:

<img src='data:image/png;base64,<?php echo base64_encode(file_get_contents("dir/dir/img.png")); ?>'>

如果您使用的图片类型发生变化,请不要忘记更改网址的image/png部分。例如,如果您使用GIF图像,请将其更改为image/gif

答案 1 :(得分:5)

这根本不应该起作用。

要获得标准方法(包括HTML文档中的内嵌图片而不是指向其网址),请参阅data URI scheme

答案 2 :(得分:3)

include()告诉PHP解析该文件。如果它包含<?,那么你将遇到真正的麻烦。相反,请使用readfile()

此外,还必须考虑Artefacto的答案。

答案 3 :(得分:1)

< img src='< ?php echo 'data:image/png;base64,' . base64_encode(file_get_contents('dir/dir/img.png')) ; ?> ' >