【发布时间】:2021-07-01 08:54:49
【问题描述】:
我正在使用preg_replace 使段落块中的所有 html 标记都换行,例如<strong></strong> 或 <a></a>。但是,它会在任何替换标签的末尾产生额外的空格。
代码如下:
$text = preg_replace('/\/[a-zA-Z0-9]+>/', "$0\n", $text);
以下是检查器工具中返回的 html 输出示例:
<p>
"Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent "
<strong>faucibus ut turpis </strong>
<a href="#" target="_blank">eu consequat</a>
" . Etiam fermentum nisi id massa ultricies, non pretium libero tempus.
</p>
如您所见,这会在超链接之后和句号之前添加空格。
【问题讨论】:
-
表示空格已经存在,或者你有另一行代码在
.之前插入空格。 -
@WiktorStribiżew - 我不这么认为。如果我注释掉这段代码,那么一切看起来又正常了。注意 - 这也是使用页面编辑器 CMS 系统。
-
\/[a-zA-Z0-9]+>不匹配任何空格。$0\n不引入任何空格,除了 LF 字符。由于您显示的那条线,该空间不存在 - 句号。 -
这就是我的想法 - 但是如果只注释掉这行代码,就无法理解额外的空间是如何不再显示的。
-
换行符是空格,这是检查员显示的内容
标签: php html preg-replace