上午,
当您发布包含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 /服务器端的实际变量内容。
答案 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";