我想替换换行符\n
。如果有一次出现,则会被<br>
替换。如果连续两个或更多,则会被<br><br>
替换。我可以做任何一种,但我不知道如何对同一个变量做两种情况。
答案 0 :(得分:4)
如果要使用相同数量的换行符替换两个或更多,则str_replace应该有效。
str_replace("\n", '<br />', $text);
但是,如果你想用仅两个换行符替换三个换行符,那么你必须执行两次替换,至少一次使用正则表达式:
$text = preg_replace('/\n{2,}/', "<br /><br />", $text);
$text = str_replace("\n", '<br />', $text);
答案 1 :(得分:0)
怎么样:
$pattern = array("/\n\n+/", "/\n/");
$replacement = array('<br/><br/>', '<br/>' );
$str = "The quick \nbrown fox \n\n\njumps over \n\nthe lazy dog.";
$result = preg_replace($pattern, $replacement, $str);
只需替换&lt; br /&gt;与&lt; br&gt;如果&lt; br&gt;是你真正想要的。
答案 2 :(得分:0)
作为Godwin解决方案的一个(希望更简单)变体,请尝试:
$text = str_replace("\n\n", '<br /><br />', $text);
$text = str_replace("\n", '<br />', $text);
这将用2个换行符替换任意2个连续的换行符,然后如果剩下任何单个换行符,它们将被单个换行符替换。这将实现1,2或3(或更多)连续换行符的替换。