关于接口返回值的转义处理 str_replace("\"", '"', $result);
ching631108 opened this issue · comments
ching631108 commented
我想讨论的代码在当前示例的这个中
上下文大概是这样
$result = curl_exec($ch);
$data = str_replace("\"", '"', $result );
$data = json_decode($data);
我认为这步 replace 是没有意义的。我理解,原本这部替换,是希望把类似于这种字符串 \"128\"
变成这样 "128"
。如果是这个需求的话,这行应该写成这样:
$data = str_replace('\"', '"', $result ); // 第一个参数改为使用单引号
根据我测试,kuaidi100 的接口,并不会返回 \"128\"
的数据,所以可以没有这步替换。
这其中的细节大概是这样的,在 php 中,双引号和单引号的意义不完全相同。双引号会转义字符串,将 \"
理解成一个字符(双引号)。但是单引号不会转移字符串,会将 \"
理解成两个字符(一个斜杠和一个双引号)。
顺便现在已有代码不影响针对该接口的正常使用,我就随便聊聊。
ching631108 commented
我看到项目更新中,移除了上述的代码,感谢您采纳建议(或者可能是我误会了。
总之因为项目中没有上述代码了,所以我关闭这个issus了