我有一个带有textarea的表单,该字段应用了一个javascript文本编辑器,它将换行符转换为<br />
标签,我想要的是编写一个php函数来清理带有许多空行的文本将它们限制为1(所以2个换行符)。
例如,如果用户写something<br /> <br /> <br /><br />something else
(请注意,还有一些空格),我想要something<br /><br />something else
目前我已编写此模式/(?:(?:<br \/>)\s*){3,}/s
,但它与多个<br />
标记不匹配,其中包含空格。
我应该如何编写正确的正则表达式?
答案 0 :(得分:0)
只需使用strip_tags
这样的功能:
$text = '<p>Test<br>paragraph.</p><br /><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
有关函数here
的更多信息如果您想要保留标记<p>
,只需将标记作为第二个参数传递:
echo strip_tags($text,'<p>');
如果您只想删除<br>
和<br />
,可以使用:
$text = preg_replace("/(<br>|<br\s\/>)/", "", $text);
我想我终于得到了它(如果超过3 <br>
),它们将被替换为只有两个:
$text = 'something<br /> <br /> <br /><br /> <br>something<br />else';
$text = preg_replace("/[(<br>|<br\s\/>)]{3,}/", "<br><br>", $text);