【问题标题】:PHP: Getting a Proper escaped String from json_encodePHP:从 json_encode 获取正确的转义字符串
【发布时间】:2014-08-02 23:08:18
【问题描述】:

我正在读取 php 中的 json 文件,并将其存储在一个变量中,其值为:

$json = {"inp" : "0"}

但是,我需要将此作为输入传递给应用程序,该应用程序要求它严格采用以下格式:

"{\"inp\" : \"0\"}"

我尝试过str_replace('"', '\"'),但这将" 替换为\\",给出:

"{\\"inp\\" : \\"0\\"}"

应用程序不接受它作为输入。

任何关于如何实现所需字符串"{\"inp\" : \"0\"}" 的指导将不胜感激。

【问题讨论】:

  • 我认为str_replace 应该可以工作。你是如何用双斜杠得到那个输出的?您如何“将其传递给应用程序”?
  • 我不确定为什么会出现双引号。有任何想法吗?有一个api需要传参数
  • 我怀疑字符串中有单个反斜杠,只有输出方法会回显它们转义(以便您可以将输出用作字符串文字)。请向我们展示您用于输出它们的代码!
  • @bergi - 这里是:$inp = "'".$inp."'"; $inp = json_encode($inp);错误日志($inp);

标签: php regex json string


【解决方案1】:
$json = json_encode('{"inp" : "0"}');

【讨论】:

  • 我需要将 $json 的值设置为 "{\"inp\" : \"0\"}"
  • 请注意,这不仅会转义引号,还会转义更多内容。
  • 这给出了 "{\\"inp\\" : \\"0\\"}"。再次双斜线
  • @Bergi 是的,我猜他的 api 也会期望那些被转义。我之前遇到过这种奇怪的双重json_encodeing
  • @user1628340 请显示更多代码,必须有一个额外的步骤导致双斜杠
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-06-02
  • 2011-01-05
  • 2019-07-28
  • 2014-11-21
  • 2014-06-12
相关资源
最近更新 更多