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

PHP如何通过正则替换img标签src属性内http开头的内容

PHP正则替换img标签http开头src属性实现方案

这个需求完全可以通过正则实现,适配绝大多数常规HTML内容的安全清洗场景。

核心实现代码

直接使用PHP内置的preg_replace函数即可完成替换,正则规则兼容单引号、双引号包裹src属性、属性前后带任意空白字符的常见写法,仅会匹配img标签内以http://开头的src属性,不会误改其他标签的链接、以及https/相对路径的图片地址:

<?php
// 传入需要清洗的原始HTML内容
$rawHtml = "这里替换成你要处理的实际内容字符串";

// 执行正则替换
$cleanHtml = preg_replace(
    '/(<img\s[^>]*?src\s*=\s*[\'"])\s*http:\/\/[^"\']*([\'"][^>]*>)/i',
    '$1/files/images/$2',
    $rawHtml
);
?>

适配调整说明

  • 如果需要保留原http链接中的图片文件名,仅替换域名访问前缀,只需要调整正则捕获规则,把链接末尾的文件名部分单独捕获,拼接到/files/images/路径后即可
  • 如果业务场景存在src属性不加引号的不规范写法,可以修改正则的引号匹配逻辑,增加对无引号属性值的边界匹配支持
  • 如果待处理的HTML存在大量标签不闭合、属性转义混乱的非标准写法,建议搭配PHP内置的DOMDocument类做二次校验,避免正则漏匹配极端场景

注意:替换完成后建议抽样检查清洗结果,确认没有出现src属性拼接错误、正常图片地址被误替换的问题,再上线到生产环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 20:16:04