PHP preg_replace - 删除ul,li标签之间的BR标签

时间:2017-10-05 18:45:18

标签: php

我想创建一个正则表达式,它将删除ul / ol li标签之间的所有BR标签。例如:

Test<br>
<ul>
<li>
Test<br>
</li>
</ul>

我想得到这个结果:

Test<br>
<ul>
<li>
Test
</li>
</ul>

我尝试使用此代码:

    $param_array['description'] = preg_replace('/(?<=<ul>|<\/li>)([\s*<br>\s*|\s*<br\/>\s*|\s*<br \/>\s*]+)(?=<\/ul>|<li>)/is', "$1$3", $param_array['description']);
    $param_array['description'] = preg_replace('/(?<=<ol>|<\/li>)([\s*<br>\s*|\s*<br\/>\s*|\s*<br \/>\s*]+)(?=<\/ol>|<li>)/is', "$1$3", $param_array['description']);

但它不起作用。有人可以帮帮我吗?

2 个答案:

答案 0 :(得分:1)

使用str_replace()函数删除
:)

的任何实例
<?php 
    $html = "Test<br>
    <ul>
    <li>
    Test<br>
    </li>
    </ul>";

    $without_breaks = str_replace(array('<br>', '&', '"'), ' ', $html);

?>

答案 1 :(得分:0)

如何简单地使用CSS: li br {display:none;}