首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数据从js发送到php、php到mysql以及REST json响应时,需要哪些正确的编码/转义/ htmlentities

将数据从js发送到php、php到mysql以及REST json响应时,需要哪些正确的编码/转义/ htmlentities
EN

Stack Overflow用户
提问于 2011-07-20 17:08:51
回答 2查看 3.8K关注 0票数 4

这是我经常遇到的情况,我通常会求助于try and try try方法,直到数据正常工作。我认为这样应该知道维护数据的最佳实践是什么,而不是搞乱json。

假设我要发送的数据是最烦人的文本数据--特殊字符&、<、“、\n、\n\r、\t、+等。

我们还假设我希望将所有内容都保存在utf8中,并且我的mysql表被配置为utf8。但是,由于缺乏PHP的utf8支持,应该考虑这一点。

我应该从哪些编码/转义/from实体中进行操作:

1)通过AJAX POST将JSON数据从客户端JS发送到PHP (GET有什么不同?)

2)在PHP中解码数据并将文本字符串存储在mysql数据库中(或者存储转义/编码的数据?)

3)用PHP语言从MySQL DB中检索数据,并作为对JS AJAX请求的JSON响应返回

4)在我们的REST api的JSON响应中

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-21 02:48:09

每当我使用php/mysql/jquery来回传递数据时,我最终都会使用以下编码/转义的组合,它似乎对我很有效。

1)你不需要在这里做任何事情,除非你正在发送一个URL (我认为这只适用于GET请求)-但是如果你正在发送一个url,你需要使用encodeURIComponent( url ),它将正确地转义url中的&和特殊字符(参见更多here)。

2)使用mysqli和绑定参数,它会为你做所有的转义(阅读here)

3)在将数据回显到HTML文件中时,我总是使用这个:

代码语言:javascript
复制
<?php
  htmlspecialchars($string_to_escape, ENT_QUOTES, 'UTF-8', false);
?>

这将正确地对所有特殊字符进行编码( false表示“无双重编码”)。还要确保在html页面的顶部添加适当的UTF-8元标记。

4)使用json_encode应该总是正确地转义您的数据,但我将使用#3中的代码来确保。但您可能只在返回包含特殊字符的数据时才需要它。

票数 5
EN

Stack Overflow用户

发布于 2011-07-20 17:15:55

将json数据发送到的

  1. 你不需要做任何特殊的事情。JSON只是一个序列化的javascript‘变量’
  2. 使用预准备语句!不要试图用php解码/剥离/更改内容
  3. 使用适当的函数来转义json的数据(我不知道是否有内置的php函数)
  4. 与3.

相同

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6759480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档