我想更换换行符\n
。如果出现一次,则将其替换为<br>
. 如果连续有两个或更多,则将其替换为<br><br>
. 我可以做任何一个,但我不确定如何为同一个变量做这两个。
问问题
1058 次
3 回答
4
如果你想用相同数量的换行符替换两个或更多,str_replace 应该可以工作。
str_replace("\n", '<br />', $text);
但是,如果您只想用两个换行符替换三个换行符,那么您必须执行两次替换,至少一次使用正则表达式:
$text = preg_replace('/\n{2,}/', "<br /><br />", $text);
$text = str_replace("\n", '<br />', $text);
于 2012-04-06T03:40:29.327 回答
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);
如果 <br> 是您真正想要的,只需将 <br/> 替换为 <br>。
于 2012-04-06T04:02:00.073 回答
0
作为 Godwin 解决方案的(希望更简单)变体,请尝试:
$text = str_replace("\n\n", '<br /><br />', $text);
$text = str_replace("\n", '<br />', $text);
这将用 2 个换行符替换任何 2 个连续的换行符,然后如果剩余任何单个换行符,它们将被单个换行符替换。这将实现您对 1、2 或 3 个(或更多)连续换行符的替换。
于 2012-04-06T04:29:55.933 回答