如何在单个HTML / PHP文件中嵌入图像?

2022-08-30 17:33:15

我正在创建一个轻量级的单文件数据库管理工具,我想将一些小图标与它捆绑在一起。在 HTML/PHP 文件中嵌入图像的最佳方法是什么?

我知道一个使用PHP的方法,我会使用GET参数调用同一个文件,该参数将使用正确的标头输出硬编码的二进制数据,但这似乎有点复杂。

我可以使用某些东西直接在CSS声明中传递图像吗?这将允许我利用CSS精灵技术。background-image

浏览器支持在这里不是问题,因此也欢迎更多奇特的方法。

编辑

有人有链接/示例来说明如何使用PHP正确生成数据URL?我想这就足够了,但我可能是错的。echo 'data:image/png;base64,'.base64_encode(file_get_contents('image.png'))


答案 1

将图像直接嵌入 HTML 页面的解决方案是使用数据 URI 方案

例如,您可以使用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”的问题,请在维基百科页面中看一下关于数据URI方案的较低部分,它给出了这部分代码(引用):

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" />

答案 2

推荐