br4p - 雙折行改段落的 PHP 自定函式
發表於 2008-02-24 22:22:41| 分類: PHP 研究心得
這個函式是我參考了 PHP 網站上有關 nl2br() 函式的各家好手心得回饋,然後揣測嘗試出來的結果。與其他人的函式不同點在於,這個函式會將兩個折行改為 <p> 段落,但仍保留單一折行符號為 <br />,如此更便利於一般網誌上習慣利用雙折行當作段落的寫作習慣。
因為是雙折行,所以原來函式名稱有別於 br2p 稱作 br22p: two break-line to paragraph,,嫌兩個2麻煩,後來索性 2x2=4 將這個函式改名為 br4p: break-line for paragraph,也挺好記得。
這個函式可以處理 windows (\r\n), unix(\n), mac(\r) 三種折行符號,但為何需要連續處理兩次雙斷行的正規式比對,這部份仍沒有搞得很清楚。不過既然答案正確,也就懶得解了。
function br4p($str) {
return '<p>'. preg_replace('#(\r\n|\n|\r)?(\r\n|\n|\r)?#m', '', preg_replace('#(\r\n|\n|\r)?(\r\n|\n|\r)?#m', '</p>$0<p>', nl2br($str))) . '</p>';
}
