【发布时间】:2016-10-06 21:32:27
【问题描述】:
我有一个与 html 混合的文本字符串,并且需要分隔单词 only 并将它们包装在跨度中。
字符串:
$string ='<div class="something">What </div> if it it is is same <div style="color:red;">same </div>';
想要的输出
<div class="something">
<span class="splits split1">
What
</span>
</div>
<span class="splits split2">
if
</span>
<span class="splits split3">
it
</span>
<span class="splits split4">
it
</span>
<span class="splits split5">
is
</span>
<span class="splits split6">
is
</span>
<span class="splits split7">
same
</span>
<div style="color:red;">
<span class="splits split8">
same
</span>
</div>
我尝试了所有我能想到的东西,preg_replace with word boundary, preg_match, str_replace, combos with explodes, loops and replace,但是输出失败并在不应该出现的地方添加了替换。
感谢任何帮助。
【问题讨论】:
-
您忘记了为此设计的一个工具:DOM。一旦你用 dom 提取了你的单个 html 节点,那么你就可以处理文本节点并将它们转换为 html。
-
@MarcB 你是对的,如果你有时间展示一个例子会很棒。
标签: php regex preg-replace