好的人,尽管有最着名的做法,今天我决定这样做:
<img src='<? include("dir/dir/img.png"); ?>'>
有6种不同的.png图像。
可悲的是,在浏览器上只能看到6个中的2个。
为什么只显示了6张图片中的2张?也许在路上有数据丢失位?
感谢您的时间:]
答案 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')) ; ?> ' >