目前共有1篇帖子。
【函數】PHP將多行文本框中輸入的內容正確地顯示到HTML上,且正確處理換行和連續空格的函數
1樓 巨大八爪鱼 2015-12-11 23:39
function textToHTML($text, $filterHTMLChars = true, $ltrim = true, $rtrim = true) {
    if ($filterHTMLChars) {
        $text = htmlspecialchars($text);
    }
    if ($ltrim) {
        $reg = '/^[\n\t\s]*\n/';
        $text = preg_replace($reg, '', $text);
    }
    if ($rtrim) {
        $reg = '/\n[\n\t\s]*$/';
        $text = preg_replace($reg, '', $text);
    }
    $text = str_replace("\t", '    ', $text);
    $text = str_replace(' ', ' ', $text);
    $text = nl2br($text, false);
    return $text;
}
其中,第二個參數決定是否轉換HTML特殊字符。比如將<script>轉換為&lt;script&gt;
第三個參數決定是否刪除內容前多餘的空行。
第四個參數決定是否刪除內容後多餘的空行。
內容中間的空行不會被刪除。
\n將會被轉換成HTML5的標準換行形式:<br>
如果想要轉換成<br />,可將nl2br那一行的第二個參數false去掉。
另外,縮進符\t會被替換成4個空格。
例如,原文:

當該函數的第2~4個參數都保持默認的true的情況下,轉換後的內容顯示到HTML上是:

回復帖子

內容:
用戶名: 您目前是匿名發表
驗證碼:
 
 
©2010-2024 Arslanbar [手機版] [桌面版]
除非另有聲明,本站採用創用CC姓名標示-相同方式分享 3.0 Unported許可協議進行許可。