爆炸 textarea php(换行)

Posted

技术标签:

【中文标题】爆炸 textarea php(换行)【英文标题】:explode textarea php (at new lines) 【发布时间】:2011-10-26 20:31:05 【问题描述】:

我可以做什么:

explode("\n", $_POST['thetextarea']);

它可以在所有平台上运行吗? (我要问的问题是它会不会是 \r\n 而不仅仅是 \n")

编辑:

我忘了提到我正在将 $_POST['thetextarea'] 保存到 mysql 数据库 VARCHAR 255。看来 \r\n 已转换为 \n。

【问题讨论】:

***.com/questions/760282/…的可能重复 如果文本字段包含\r\n,那么在换行符处拆分仍然有效,并且只在行中保留无关的回车符。 【参考方案1】:

这将解决\r\n\r\n 给出的技巧:

preg_split('/\r\n|[\r\n]/', $_POST['thetextarea'])

【讨论】:

是的。也为我工作,而不是\r\n。 对我来说有点不同,双引号而不是单引号 "/\r\n|[\r\n]/" 我不知道为什么【参考方案2】:

你应该使用:

explode("\r\n", $_POST['thetextarea']);

它永远都是一样的。

浏览器和其他用户代理会确保它们是 :-)

请参阅http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2.1 了解更多信息。

【讨论】:

不是所有的用户代理都是浏览器。 @mario:同样根据 HTML5 规范(我知道的草案)行以CRLF 终止。 dev.w3.org/html5/spec/Overview.html#the-textarea-element 如果我是正确的 新链接是w3c.github.io/html/sec-forms.html#the-textarea-element【参考方案3】:

您也可以使用php_EOL 常量:

explode(PHP_EOL, $_POST['thetextarea']);

【讨论】:

不会PHP_EOL只使用当前平台的换行符吗?如果是这样,你不希望它在这里:)【参考方案4】:

你可以这样做:

$text = trim($_POST['textareaname']);
$text = nl2br($text);

【讨论】:

“重要的是要记住,这个函数不会用 标签替换换行符。相反,它会在每个换行符之前插入一个 标签,但它仍然保留换行符本身!” - php.net 手册中的人

以上是关于爆炸 textarea php(换行)的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中的 textarea 值中换行

javascript/html/php 捕获 textarea 中的换行符

PHP使用换行符从textarea保存内容

如何用 li 标签在 textarea 中换行? PHP

PHP 占用跨平台的换行符爆炸字符串

Apache/PHP/HTML - Textarea,提交包含换行符(输入键)的表单会产生 403?