目前共有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許可協議進行許可。