我的PHP网络应用会收到一个带有textarea的表单,其中 用户希望添加换行符。 我想把文字分成几行。
我应该以哪种格式提交已提交的$ _POST中的换行符? 我知道在不同的环境中它可以是\ n,\ r,\ n \ r,\ r \ n中的任何一种,但适用于网络的是什么?浏览器,网络服务器(我的情况下是Apache)或PHP会以某种方式规范化吗?
我不想对用户浏览器做任何假设,而且我知道该文本实际上是一个剪切并从Excel粘贴的电子表格。
(此UI的设计不在我的控制范围内)
答案 0 :(得分:2)
我应该以哪种格式提交已提交的$ _POST中的换行符?
可能是您提到的任何格式。您无法控制客户端发送给您的内容 - 并且取决于浏览器/平台/因子X换行符可能以任何可能的形式到达。
在继续使用数据之前,使用正则表达式将这些规范化规范化为\ n。
编辑:
正如@deceze所说,这在HTML5规范中指定如下,http://www.w3.org/TR/html5/forms.html#the-textarea-element:
“当textarea是可变的时,其原始值应该由用户编辑:用户代理应该允许用户编辑,插入和删除文本,以及插入和删除换行符的形式“LF”(U + 000A)字符。“
我不知道之前是否在HTML 4.01中指定了这一点 - 但是,在使用数据之前,期望任何可能的换行符或字符串组合并将其规范化是安全的方法。