我正在制作一个表单(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 标签之间。
<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)
编辑:已修复
| 归档时间: |
|
| 查看次数: |
5842 次 |
| 最近记录: |