爆炸 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(换行)的主要内容,如果未能解决你的问题,请参考以下文章