PHP 的 XmlHttpRequest 将换行符 (0x0a) 更改为文字“\n”
我对此完全感到困惑:
- 在 JavaScript 中创建一个带有几个换行符(“\n”)的字符串
- 它通过encodeURIComponent传递并通过 XmlHttpRequest 发送到 Apache/PHP
- 在 PHP 端它以文字 '\n' 的形式到达,不是换行符。
我检查过的内容:
- 字符串内的换行符是正确的,alert(string) 正确中断。
- 编码后,换行符会正确替换为 %0a。
- 尝试了 GET 和 POST(在 POST 正文中使用变量)。
- 尝试不使用encodeURIComponent(),效果相同。
- 尝试过 \r 和 \r\n - 它们也按字面意思到达。
- 实际上在 PHP 端计算了“\n”和“\n”,以确保它不是“其中之一”问题。毫无疑问,$_REQUEST 包含一个文字 \n。
可能无关紧要的事情,但以防万一:
- 这一切都发生在 window.onerror() 处理程序内
- 魔术引号和朋友都关闭了
我一遍又一遍地查看代码并用谷歌搜索了几个小时。我什么也没得到。 :( 有人吗?布勒?
I'm completely baffled by this:
- A string is created in JavaScript with several newlines ("\n")
- It is passed through encodeURIComponent and send to Apache/PHP via XmlHttpRequest
- On the PHP end it arrives as a literal '\n', not a newline.
What I have checked:
- The newlines are correct inside the string, alert(string) breaks correctly.
- After it is encoded, newlines are correctly replaced with %0a.
- Tried both GET and POST (with the variable in the POST body).
- Tried without encodeURIComponent(), same effect.
- Tried \r and \r\n - they also arrive literally.
- Actually counted "\n" and '\n' on the PHP end to make sure it's not "one of those" problems. No doubt, $_REQUEST contains a literal \n.
Things which might be irrelevant, but just in case:
- This all happens inside a window.onerror() handler
- Magic quotes and friends are off
I've looked through the code over and over again and have googled for hours. I got nothing. :( Anyone? Bueller?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论