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

如何用PHP的str_replace/preg_replace转换HTML标签为指定格式

解决PHP中HTML标签转指定文本格式的问题

嘿,这个需求其实很容易实现,我给你两种常用的方案,你可以根据实际场景选择:

方案一:用str_replace分步处理(适合标签格式固定的场景)

如果你的<dd>和<br />标签格式完全固定,没有变体,直接两次str_replace就能搞定:

$strRet = '<dd>abc<br />def<br />ghi</dd>';

// 第一步:把所有<br />替换成空格
$processed = str_replace('<br />', ' ', $strRet);
// 第二步:移除<dd>和</dd>标签
$result = str_replace(['<dd>', '</dd>'], '', $processed);

echo $result; // 输出:abc def ghi

这种方法简单直观,性能也不错,适合标签写法不会变动的情况。

方案二:用preg_replace处理(适合标签有变体的场景)

如果你的HTML标签可能有不同写法(比如<br>、<br/>而不是固定的<br />),用正则表达式会更灵活:

$strRet = '<dd>abc<br />def<br />ghi</dd>';

// 一次性处理两种标签:移除<dd>/</dd>,把各种br标签变体换成空格
$result = preg_replace(
    ['/<dd>|<\/dd>/', '/<br\s*\/?>/'], // 匹配规则:匹配dd标签,以及所有br标签变体
    ['', ' '], // 替换规则:dd标签替换为空,br标签替换为空格
    $strRet
);

echo $result; // 输出:abc def ghi

这里的正则<br\s*\/?>能匹配所有常见的br标签写法,包括<br>、<br/>、<br />,容错性更强。

额外优化:清理多余空格

如果处理后出现连续空格或者首尾空格,可以再加一步清理:

// 把多个连续空格换成单个空格,同时去掉首尾空格
$result = trim(preg_replace('/\s+/', ' ', $result));

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 03:12:34