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

PHP Textarea 提交 MySQL 產生多餘空格?一招教你精準清理

     編輯:PHP 相關知識

PHP Textarea 提交 MySQL 產生多餘空格?一招教你精準清理

開發者常遇到詭異現象:HTML 表單的 <textarea> 資料經 PHP 寫入 MySQL 後,再次讀取顯示時首尾卻多出大量空格,但直接查詢資料庫卻並無空格。這其實是瀏覽器渲染與原始碼格式化導致的「視覺誤差」。

問題根源:原始碼換行與縮排被當作內容

為了程式碼可讀性,開發者習慣在 <textarea> 標籤間換行並縮排:

<textarea>
  這裡是內容
</textarea>

瀏覽器會將標籤間的換行符(\r\n)與縮排空格視為文字內容一併提交,導致資料庫存入不可见字元。資料庫客戶端查詢時通常會修剪顯示,故看似無空格。

解決方案:輸出端過濾或輸入端規範

方法一:PHP 端過濾不可见字元(推薦)

使用 str_replace 或 strtr 移除全形/半形空格及換行符:

<?php
// 移除所有空格(含全形)
echo str_replace([' ', ' ', "\r", "\n", "\r\n"], '', $content);

// 或使用 strtr 批量轉換
echo strtr($content, [' ' => '', ' ' => '', "\r" => '', "\n" => '']);
?>

方法二:前端模板規範寫法(治本)

在模板中緊貼標籤輸出變數,不留任何縮排:

<textarea><?php echo $content; ?></textarea>

關鍵補充:PHP 中 Textarea 換行符本質

PHP 接收到的 Textarea 換行符為 雙字元 \r\n(CRLF),而非單一 \n、<br /> 或字面字串 '\r\n'。處理換行轉換時請針對 \r\n 進行 nl2br() 或正則替換。

掌握「輸入端規範、輸出端過濾」雙重保險,徹底杜絕 Textarea 空格困擾。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved