我正在开发 single serving site在 PHP 中,它只显示访问者发布的消息(最好围绕网站主题)。任何人每小时最多可以发布三条消息。
由于网站只有一页,我想控制每条消息的垂直长度。但是,我确实希望至少部分保留原始消息中的换行符。折衷方案是允许有两个换行符,但如果有两个以上,则将它们替换为连续两个换行符。 Stack Overflow 实现了这一点。
例如:
Porcupines\nare\n\n\n\nporcupiney.
将更改为
Porcupines<br />are<br /><br />porcupiney.
检查换行符的一个棘手方面是它们可能被收集并存储为 \r\n
, \r
, 或 \n
.我考虑过将所有换行符转换为 <br />
使用 nl2br()
,但这似乎是不必要的。
我的问题:在 PHP 中使用正则表达式(具有类似 preg_match()
和 preg_replace()
的函数),我如何检查连续超过两个换行符的实例(它们之间有或没有空格)然后将它们更改为总共两个换行符?
最佳答案
preg_replace('/(?:(?:\r\n|\r|\n)\s*){2}/s', "\n\n", $text)
关于php - 如何替换字符串中的一两个连续换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/816085/