首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 多行文字轉 HTML 格式函數:保留換行、段落結構的 shtm() 實作

     編輯:PHP 相關知識

需求場景

用戶在 <textarea> 輸入多行文字,後端需輸出為 HTML 並保留原有換行、段落結構。

函數實作 (shtm)

function shtm($design_str) {
    $str = trim($design_str);                 // 去除首尾空白
    $str = str_replace("\r\n", "<br>", $str); // Windows 換行轉 br
    $str = str_replace("\n", "<br>", $str);   // Unix 換行轉 br
    $str = str_replace("\r", "<br>", $str);   // Mac 老式換行轉 br
    // 可選:將連續 br 包裝為 p 標籤
    // $str = '<p>' . str_replace('<br><br>', '</p><p>', $str) . '</p>';
    return $str;
}

進階版:段落感知 (自動包裝 <p>)

function shtm_advanced($text) {
    $text = trim($text);
    // 統一換行符為 \n
    $text = str_replace(["\r\n", "\r"], "\n", $text);
    // 分割段落 (連續空行視為段落分隔)
    $paragraphs = preg_split('/\n\s*\n/', $text);
    $html = '';
    foreach ($paragraphs as $para) {
        $lines = explode("\n", trim($para));
        $html .= '<p>' . implode('<br>', $lines) . '</p>';
    }
    return $html;
}

線上工具推薦

相關函數速查

建議: 實務上優先使用 nl2br(htmlspecialchars($str)) 組合,安全且標準。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
函數用途
nl2br()內建函數,將 \n 轉 <br> (PHP 4.0.5+)
htmlspecialchars()轉義 HTML 特殊字元,防 XSS
strip_tags()移除 HTML/JS 標籤
wordwrap()按寬度自動換行