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

我可以做什么:

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

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

编辑:

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

【问题讨论】:

标签: php explode


【解决方案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 了解更多信息。

【讨论】:

【解决方案3】:

您也可以使用PHP_EOL 常量:

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

【讨论】:

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

你可以这样做:

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

【讨论】:

  • “重要的是要记住,这个函数不会用
    标签替换换行符。相反,它会在每个换行符之前插入一个
    标签,但它仍然保留换行符本身!” - php.net 手册中的人
猜你喜欢
  • 2014-01-14
  • 2016-10-26
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-20
  • 1970-01-01
相关资源
最近更新 更多