大家好,尽管最佳实践是这样的,但今天我决定这样做:
<img src='<? include("dir/dir/img.png"); ?>'>
有6个不同的.png图片。
遗憾的是,只有其中2个在浏览器上清晰可见。
为什么只显示了其中的2张图片? 可能是数据在传输过程中丢失了一些位吗?
感谢您的时间:]
这段代码不起作用是因为<img>
标签的src
属性不应该包含原始图像数据,而应该包含指向图像数据的URI。
使用data:
URI,你可以直接将图像嵌入到你的(X)HTML文档中。请注意,这在许多浏览器中无法正常工作,如较旧版本的Internet Explorer。此外,还有一些限制,例如IE8对data:
URI设置的32KB限制。
使用PHP,你的代码会像这样:
<img src='data:image/png;base64,<?php echo base64_encode(file_get_contents("dir/dir/img.png")); ?>'>
如果您使用的图片类型发生更改,请不要忘记更改URL中的image/png
部分。例如,如果您使用GIF图片,请将其更改为image/gif
。
这本来是不可能的。
如果想要一种标准方法来实现这个(包括在HTML文档中内联显示图像而不是指向它们的URL),请参见data
URI scheme。
file_get_contents
来读取文件,而不是调用include
。(包含的数据存在安全风险!) - strager<?
。更不用说,它会立即输出,所以他无法操纵数据来构建数据URI。 - Artefactoinclude()
告诉PHP解析该文件。如果它包含<?
,你会遇到真正的麻烦。相反,请使用readfile()
。
此外,还必须考虑Artefacto的答案。
< img src='< ?php echo 'data:image/png;base64,' . base64_encode(file_get_contents('dir/dir/img.png')) ; ?> ' >