删除 html 标签之间的换行符

Mr_*_*imp 5 html php

我正在制作一个表单(html 和 php),它是用于编辑网站内容的管理部分的一部分。我想让用户包含一些基本的 html。这很好用。我想保留换行符。这也有效。我的问题是,当有人写这样的东西时:

<ul>
<li>item one</li>
<li>item two</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

代码行之间的换行符被保留,并在写出时变成 BR。这意味着每个 LI 元素之间有双倍间距。现在可以通过将整个列表部分写在一行上来解决这个问题,但是a)这使得阅读变得混乱,b)教人们使用代码已经够困难的了,更不用说解释无关的换行符了。

我想要的是某种方法来删除所有 /n ,但仅在 UL 和 /UL 标签之间。

por*_*ero 5

<ul>此正则表达式删除和之间</ul>不属于<li>和之间文本的所有换行符/空格</li>

/(?<=<ul>|<\/li>)\s*?(?=<\/ul>|<li>)/is
Run Code Online (Sandbox Code Playgroud)

示例:

 $output = preg_replace('/(?<=<ul>|<\/li>)\s*?(?=<\/ul>|<li>)/is', '', $input);
Run Code Online (Sandbox Code Playgroud)

输入:

<ul>
<li>item one</li>
<li>item two</li>
</ul>
Run Code Online (Sandbox Code Playgroud)

输出:

<ul><li>item one</li><li>item two</li></ul>
Run Code Online (Sandbox Code Playgroud)

编辑:已修复