Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 是否将base64编码的图像数据输出到身体背景?_Php - Fatal编程技术网

Php 是否将base64编码的图像数据输出到身体背景?

Php 是否将base64编码的图像数据输出到身体背景?,php,Php,我有一个函数,可以输出base64编码图像数据到标签。 以下工作: echo '<img src="'.$base64.'">'; echo'; 但是,如果我使用相同的准备好的数据尝试以下操作,它将不再有效 echo '<body background="'.$base64.'">'; echo'; 有什么解决方案可以直接在标签中工作吗 编辑:我想指出,在接受的解决方案中使用以下方法后,我无法通过Javascript操纵背景属性: echo '<body s

我有一个函数,可以输出base64编码图像数据到标签。 以下工作:

echo '<img src="'.$base64.'">';
echo';
但是,如果我使用相同的准备好的数据尝试以下操作,它将不再有效

echo '<body background="'.$base64.'">';
echo';
有什么解决方案可以直接在标签中工作吗

编辑:我想指出,在接受的解决方案中使用以下方法后,我无法通过Javascript操纵背景属性:

echo '<body style="background: url(data:image/png;base64,'.$base64.')">';
echo';
但是,我通过使用php将图像数据直接回显到样式,而不是样式标记内部,解决了这个问题:

<style>
body {
<?php
  echo 'background-image: url('.$base64.');' . "\n";
  echo 'background-size: 100% 100%;' . "\n";
?>
}
</style>

身体{
}
我不知道为什么is的行为不同。

echo';
echo '<body style="background: url(data:image/png;base64,'.$base64.')">';
如果base64数据代表jpg图像,则将
image/png
替换为
image/jpeg

echo';

如果base64数据代表jpg图像,则将
image/png
替换为
image/jpeg

在frost cade中,您的语法似乎有误。应该是``。请参见ohh,您还缺少
style=“
实际上,$base64数据中包含了数据:image/png。抱歉没有说清楚。你的语法在frost cade中似乎是错误的。应该是``。请参见ohh,您还缺少
style=“
实际上,$base64数据中包含了数据:image/png。很抱歉没有说清楚,谢谢!这起作用了。很抱歉没有说清楚,我在$base64数据中添加了data:image/png(在检测到图像格式/mime类型.echo“”后相应地添加它;顺便问一下,我是否必须清除缓存或释放内存以确保photodata得到更新。现在,即使我编辑或替换源照片文件,数据也不会更改/更新。@Mikko Penttienarieronen不,我认为浏览器不会缓存这些数据。C你确认数据真的不同了吗?你也可以进入devtools并禁用缓存,然后重新加载。例如,我调整了图像的大小,但它仍然继续重新加载相同的旧数据。如果完全替换图像,也会发生同样的情况。请记住,base64编码会增加大约30%的数据量,如果它处于动态模式,则无法进行缓存c页面,这会导致大量不必要的带宽消耗。人们不经常这样做是有原因的。谢谢!这很有效。很抱歉没有说清楚,我在$base64数据中添加了数据:image/png(在检测到图像格式/mime类型.echo“”后相应地添加它;顺便问一下,我是否必须清除缓存或释放内存以确保photodata得到更新。现在,即使我编辑或替换源照片文件,数据也不会更改/更新。@Mikko Penttienarieronen不,我认为浏览器不会缓存这些数据。C你确认数据真的不同了吗?你也可以进入devtools并禁用缓存,然后重新加载。例如,我调整了图像的大小,但它仍然继续重新加载相同的旧数据。如果完全替换图像,也会发生同样的情况。请记住,base64编码会增加大约30%的数据量,如果它处于动态模式,则无法进行缓存这会导致大量不必要的带宽消耗。人们不经常这样做是有原因的。