在哪种格式我应该期望在提交的文本区域换行


in which format should I expect newlines in a submitted textarea

我的PHP web应用程序收到一个带有textarea的表单,其中用户希望添加换行符。我想把文本分成几行。

提交的$_POST中应该使用哪种格式的换行符?我知道在不同的环境中,它可以是'n, 'r, 'n'r, 'r'n中的任何一个,但这适用于网络吗?浏览器,web服务器(在我的情况下是Apache),或PHP规范化这种方式吗?

我不想对用户的浏览器做任何假设,我知道文本实际上是一个从Excel中剪切和粘贴的电子表格。

(这个UI的设计不在我的控制范围内)

提交的$_POST中应该使用哪种格式的换行符?

可能是您提到的任何格式。您无法控制客户端发送给您的内容-并且根据浏览器/平台/因素X,换行符可能以任何可能的形式到达。

在继续处理数据之前,使用正则表达式将这些归一化为'n。

编辑:

正如@dec所说,这在HTML5规范中是这样指定的:http://www.w3.org/TR/html5/forms.html#the-textarea-element:

"当一个文本区域是可变的,它的原始值应该可以被用户编辑:用户代理应该允许用户编辑,插入和删除文本,并以"LF" (U+000A)字符的形式插入和删除换行符。"

我不知道这是否在之前的HTML 4.01中指定-但是,期望任何可能的换行符或字符组合并在处理数据之前对其进行规范化是安全的方法。