php将div转图片不显示,base64图片,在background-image中不显示问题解析 - 哦吆~Blog

本文介绍了PHP将线上图片转换为base64编码后,在CSS中无法正常显示的问题。问题源于chunk_split函数产生的换行符。提供了解决方案,包括去除换行符的代码示例,确保base64编码的图片能在CSS background-image属性中正确显示。
摘要由CSDN通过智能技术生成

当我们使用PHP将线上图片资源转换为base64图片编码后,图片编码放在 img src 中可以正常展示,但如果将其放入CSS样式background-image中时,会出现图片不能正常显示问题,此问题是因为网络上的生成代码往往都使用chunk_split对数据进行了处理,使数据中有了换行

chunk_split: 将字符串按指定长度、使用指定字符分隔开来。

dae11a7cfb6d33101e7be97499c17e96.gif

3c4632c3f4e9ee32ec58bd56848cafce.png

当网页源代码为如下图所示时,图片不能正常显示

dae11a7cfb6d33101e7be97499c17e96.gif

bae8f4480fb690e27bc18de45d42cccc.png

1、当您使用chunk_split对编码进行了处理时,需处理掉换行符!!代码如下$imgurl   = "http://img.******.com/aruXXBYoKMrs.png";

$imageInfo = getimagesize($imgurl); //用于获取图像大小及相关信息

/*

* file_get_contents() 把整个文件读入一个字符串中

* base64_encode 使用 MIME base64 对数据进行编码

*/

$imgStr   = chunk_split(base64_encode(file_get_contents($imgurl)));

$baseStr  = 'data:' . $imageInfo['mime'] . ';base64,' .$imgStr;

$baseStr   = str_replace(' ', '+', $baseStr);

$baseStr = str_replace(array("\r\n", "\r", "\n"), "", $baseStr);//处理数据中换行符

echo '

die;

2、或者直接不使用chunk_split,对代码无影响!!代码如下$imgurl      = "http://img.******.com/aruXXBYoKMrs.png";

$imageInfo   = getimagesize($imgurl); //用于获取图像大小及相关信息

/*

* file_get_contents() 把整个文件读入一个字符串中

* base64_encode 使用 MIME base64 对数据进行编码

*/

$imgStr     = base64_encode(file_get_contents($imgurl));

$baseStr    = 'data:' . $imageInfo['mime'] . ';base64,' .$imgStr;

$baseStr    = str_replace(' ', '+', $baseStr);

echo '

die;

当查看网页源代码,发现数据已处理为如下图所示时,表示图片已经可正常展示

b6be15a6fa70ff1bf529d48c9fd1fff6.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值