行结尾以textarea的形式出现

时间:2013-10-13 20:29:59

标签: php html

上午,

当您发布包含textarea的表单时,会使用哪些行结尾? \ r \ n,\ n或类似本地文件是否依赖于操作系统?

我正在尝试查找RFC或W3C规范或其他内容,还是基于操作系统/浏览器不同?有链接吗?

例如

<textarea name="message">This is
my
message
</textarea>

是不是

This is\r\n
my\r\n
message\r\n

This is\n
my\n
message\n

是基于浏览器/操作系统的标准还是不同的。证明?

在发送到服务器之前我并不担心textarea内容,而是PHP /服务器端的实际变量内容。

3 个答案:

答案 0 :(得分:3)

此信息可在HTML5规范中找到。它表示textarea元素:

  

...有表单提交值。它被归一化为线   中断使用U + 000D CARRIAGE RETURN“CRLF”(U + 000A)字符对,和   另外,如果需要给定元素的wrap属性,   插入其他换行符以包含给定的文本   宽度。

     

元素的值被定义为元素的原始值   应用以下转换:

     

替换每次出现的“CR”(U + 000D)字符后面没有“LF”(U + 000A)字符,并且每次出现“LF”(U + 000A)   字符前面没有“CR”(U + 000D)字符,由a表示   由U + 000D CARRIAGE RETURN“CRLF”组成的双字符字符串   (U + 000A)字符对。

     

如果元素的wrap属性处于Hard状态,则在字符串中插入U + 000D CARRIAGE RETURN“CRLF”(U + 000A)字符对   使用UA定义的算法,使每行不超过   字符宽度字符。出于本要求的目的,   行由字符串的开头(字符串的结尾)分隔,   和U + 000D CARRIAGE RETURN“CRLF”(U + 000A)字符对。

答案 1 :(得分:1)

HTML specs,换行符表示为CR LF。在表单提交中的默认数据格式中,它表示为编码为%0D%0A。 (这不依赖于操作系统及其本机行结束约定。)您的服务器端代码将从那里获取它。在PHP中,您会将其视为\r\n

答案 2 :(得分:0)

您将收到纯文本 - 如果您需要添加<br>标签,则可以使用 http://php.net/manual/en/function.nl2br.php =)

如果我不理解你的问题,我很抱歉 - 请不要对我投票:\

编辑:它可能是\ n因为当你转储它时它会逐行返回文本,就像你使用echo "something\nsomething";

一样