我可以做到这样吗:
explode("\n", $_POST['thetextarea']);
如何使其在所有平台上都能正常工作?(我要问的问题是,它将永远是\r\n而不仅仅是\n吗?)
编辑:
我忘了提到我正在将 $_POST['thetextarea'] 保存到一个 mysql 数据库 VARCHAR 255。似乎 \r\n 会被转换为 \n。
如果给定\r\n
、\r
或\n
,以下代码可以解决问题:
preg_split('/\r\n|[\r\n]/', $_POST['thetextarea'])
你应该使用:
explode("\r\n", $_POST['thetextarea']);
它将始终保持相同。
浏览器和其他用户代理会确保它们是相同的 :-)
有关更多信息,请参见http://www.w3.org/MarkUp/html-spec/html-spec_8.html#SEC8.2.1。
CRLF
终止。如果我没记错的话,可以参考http://dev.w3.org/html5/spec/Overview.html#the-textarea-element。 - PeeHaa你也可以使用PHP_EOL
常量:
explode(PHP_EOL, $_POST['thetextarea']);
您可以采取以下措施:
$text = trim($_POST['textareaname']);
$text = nl2br($text);
\r\n
,那么按换行符分割仍然有效,并保留行中多余的回车符号。 - mario