<br/>我正在使用这个,但它取代了一个新的行的单个发生
function nl2br2($string){ $string = preg_replace('/(\r\n){2,}/', '<br/><br/>', $string); //$string = preg_replace('/[\r\n]/', '<br/>', $string); return $string; }
它发生在第一个模式。
那么,我怀疑你的输入可能不是'/ r / n',而只是'\ n'。 在这种情况下,你应该让你的正则表达式来检测,像这样:'/(\ r?\ n){2,} /'。
所以你的代码可能是:
function nl2br2($string){ $string = preg_replace('/(\r?\n){2,}/', '<br/><br/>', $string); return $string; }
希望这有助于。
在NawaMan的帮助下,我做了我的代码
function nl2br2($string){ $string = preg_replace('/(\r?\n){2,}/', '<br/><br/>', $string); $string = preg_replace('/(\r?\n)+/', '<br/>', $string); return $string; }
:) 谢谢