誤用 nl2br 和 CodeIgniter 的 auto_link
輸出文字時使用 nl2br 和 URL Helper 裡的 auto_link,例如 nl2br(auto_link($text));
會造成 JavaScript 的 syntax error:
else document.write(unescape(l[i]));}<br />\n
原因是 auto_link 會用 URL Helper 的 safe_mailto 來替換 mailto 鏈結,插入一段 JavaScript,然後裡面有一個換行符號 \n
會被換成 <br />
找麻煩。
解決方法是 auto_link(nl2br($text));
順序倒過來即可……
※CI 1.7.1 原裝的 auto_link 沒有選項把 safe_mailto 換成 mailto。
有 0 個意見
☂