You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP输出Base64图片时src中丢失data:前缀问题求助

WordPress/WooCommerce购物车页面Base64图片丢失"data:"前缀的解决方法

问题现象

在购物车页面通过PHP输出Base64格式图片时,img标签的src属性会丢失开头的data:前缀,导致图片无法正常显示;但单独echo该Base64字符串时,能完整输出包含data:前缀的内容。

解决方法

方法1:使用wp_kses_post输出完整标签

WordPress的wp_kses_post函数会保留合法的HTML结构与属性值,不会错误过滤data URI的前缀:

$img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAImCAYAAACrXu7BAAAgAE................";
echo wp_kses_post('<img src="' . $img . '" />');

方法2:手动用esc_attr转义属性值

手动对Base64字符串做属性转义,确保data:前缀被正确保留:

$img = "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAyAAAAImCAYAAACrXu7BAAAgAE................";
echo '<img src="' . esc_attr($img) . '" />';

方法3:排查第三方过滤钩子

若以上方法无效,大概率是主题或插件的自定义过滤规则导致前缀被移除:

  • 临时禁用所有插件,切换到WordPress默认主题(如Twenty Twenty-Four)测试,确认是否为第三方代码问题。
  • 检查主题functions.php或插件代码中是否存在wp_kses_allowed_html、esc_attr相关的过滤函数,这类函数可能修改了属性值的允许规则。

内容的提问来源于stack exchange,提问作者daniel ochr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 05:31:39