我正在创建一个轻量级的单文件数据库管理工具,我想捆绑一些小图标。在HTML / PHP文件中嵌入图像的最佳方法是什么?
我知道一个使用PHP的方法,我可以使用一个GET参数来调用相同的文件,该参数将使用正确的头输出硬编码的二进制数据,但这似乎有点复杂。
可以使用某些东西来直接在CSS背景图像声明中传递图像吗?这将允许我利用CSS精灵技术。
浏览器支持在这里不是一个问题,所以也欢迎更多异国情调的方法。
编辑
有人有关于如何使用PHP正确生成数据URL的链接/示例?我会想到echo’data:image / png; base64,’。base64_encode(file_get_contents(‘image.png’))将足够,但我可能是错误的。
解决方法
将图像直接嵌入HTML页面的解决方案是使用
data URI scheme
例如,您可以使用HTML的一部分,如下所示:
<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAABGdBTUEAALGP C/xhBQAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9YGARc5KB0XV+IA AAAddEVYdENvbW1lbnQAQ3JlYXRlZCB3aXRoIFRoZSBHSU1Q72QlbgAAAF1J REFUGNO9zL0NglAAxPEfdLTs4BZM4dio4C7OwQg2JoQ9LE1exdlYvBBeZ7jq ch9//q1uH4TLzw4d6+ErXMMcXuHWxId3KOETnnXXV6MJpcq2MLaI97CER3N0 vr4MkhoXe0rZigAAAABJRU5ErkJggg==" alt="Red dot" />
>将图像包括为CSS规则
>使用一些Javascript。
但请注意,在您的具体情况下,这些解决方案将无法在所有浏览器上运行 – 由您自行决定是否可以接受。
编辑:回答你问的关于“如何使用PHP正确生成数据URL”的问题,在维基百科页面上看一下关于Data URI scheme的内容,这给出了这部分代码(引用):
function data_uri($file,$mime) { $contents = file_get_contents($file); $base64 = base64_encode($contents); return ('data:' . $mime . ';base64,' . $base64); } ?> <img src="<?PHP echo data_uri('elephant.png','image/png'); ?>" alt="An elephant" />