【发布时间】:2014-02-10 20:13:42
【问题描述】:
我在 PHP 中使用strip_tags 在回显数据时删除 HTML 标记。
我的字符串看起来像:
<br>
<br>
<br>
<br>
<br>
Test 1, Test2<br>
Test 3,<br>
<br>
<br>
<br>
<br>
<br>
Test 4<br>
Test 5<br>
<br>
Test 6 test 7
如何删除留下大间隙的<br> 标记,但保留行间隙之间的<br> 标记(例如Test 1, Test2<br>Test3 之间的标记)?
然后删除:
<br>
<br>
<br>
<br>
<br>
所以字符串最终看起来像:
Test 1, Test2<br>
Test 3,<br>
Test 4<br>
Test 5<br>
<br>
Test 6 test 7
【问题讨论】:
-
预期结果是什么?
-
所以,如果你试图用一个
<br>替换n<br>s,其中n是任何大于一的数字,正则表达式替换会很好用。 -
抱歉,在您发布的字符串中,Test2 和 Test3 之间没有“
”标签。所以你的目标是不是保留这些标签,而是添加它们?我建议您删除所有标签,然后使用 phpsnl2br()函数将换行符(仍然存在)替换为<br>标签。 -
提示,我很懒 atm:
foreach($DOMXPath->query('//br/preceding-sibling::br') as $br){$br->parentNode->removeChild($br);}. -
检查我更新的问题