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

PHP 處理 Textarea 換行輸出的完整指南

     編輯:PHP 綜合知識

問題背景

HTML <textarea> 中用戶輸入的換行符(\r\n 或 \n)若直接輸出到網頁,瀏覽器不會渲染換行,導致內容擠在一行。必須將換行符轉換為 HTML 換行標籤 <br /> 才能正確顯示排版。

核心方法

1. 使用 nl2br() 內建函數(推薦)

<?php
$str = $_GET['test'];
echo nl2br($str); // 自動將 \n \r\n 轉為 <br />
?>

2. 手動分割與替換

<?php
$str = $_GET['test'];
$arr = explode("\n", $str); // 按換行符分割為數組
print_r($arr);
echo count($arr); // 行數

// 或使用 str_replace
$str = str_replace("\n", "<br />", $str);
echo $str;
?>

3. 完整表單示例

<html>
<body>
<form action="" method="get">
<textarea name="test"></textarea>
<input type="submit" />
</form>
<?php
if (isset($_GET['test'])) {
    $str = $_GET['test'];
    echo nl2br($str);
}
?>
</body>
</html>

Discuz 風格批量處理

論壇常見需求:將 textarea 多行內容拆分為數組逐行處理(如批量添加用戶)。

<?php
$names = preg_split('/\r\n/', $_POST['textarea']);
foreach ($names as $name) {
    // 處理每一行,如 echo $name;
}
?>

數據寫入 Textarea 的換行技巧

從數據庫讀取數據填充 textarea 時,需用換行實體 (對應 \r\n):

<?php
$vals = get_from_db();
$tmp = '';
foreach ($vals as $val) {
    $tmp .= $val . '
';
}
echo "<textarea>$tmp</textarea>";
?>

總結

nl2br() 是最簡便方案;批量處理用 preg_split;寫入 textarea 需用 。掌握這三招,輕松搞定換行顯示與存儲。

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