使用 php 向 html 的 textarea 标签内写入内容或由 html textarea 标签向 php 提交内容时,其 textarea 内容里换行符一直是个很麻烦的问题(个人觉的,大姥可以忽略)。这篇博文就记录一下,php 读取与输出 textarea 标签的换行符问题。

php 向 textarea 标签输出换行

由 php 向 html 的 textarea 文本框输入换行时,要用到 html 转义字符 


可以参考下面的代码:

例:php 向 textarea 输出换行符

<?php
$arr = array('飞鸟慕鱼博客','小明','小红','小黄','小绿');
$str = null;
foreach ($arr as $key => $a) {
   //加入换行符
   $str .= $a.'&#13;&#10;';
}
?>
<textarea ><?php echo $str;?></textarea>

运行结果如下图:

通过下图,可以发现,php输出的每个数组的元素,都是另起一行的

php向html文本框中输入换行符,php输出换行符

php 获取 textarea 中的换行符

php 获取 textarea 文本框的换行符,要使用正规表达式“/rn/”。

例1:php 获取 textarea 文章框的值,并按原样输出

示例代码:

<?php
//飞鸟慕鱼博客
//只有提交时,下面的代码才会运行
if(count($_POST)){
    //正规表达式
    $arr = preg_split('/\r\n/',$_POST['text']);
    foreach ($arr as $key => $a) {
        echo $a;
        echo '<br/>';
    }
}
?>
<form action="" method="post">
    <textarea name="text"></textarea>
    <input type="submit" value="提交">
</form>

运行结果如下图:

php 读取换行符号,php读取文本框内的换行符

例2:使用 nl2br() 函数,替换 textarea 文本框的换行符号

代码:

<form action="" method="post">
    <textarea name="text"></textarea>
    <input type="submit" value="提交">
</form>
<?php
if(count($_POST)){
    //nl2br() 函数
    echo nl2br($_POST['text']);    
}
?>

PS:关于 nl2br() 函数介绍,请参考下面的文章

php nl2br() 函数详解

php nl2p() 自定义函数