我正在测试一个回调,它正在添加不必要的斜线,这阻碍了API成功与我的服务器通信的能力。为什么要添加这些斜线,我该如何解决这种情况呢?代码如下:
<?php
$real_secret = 'cantletyousee';
$my_address = '16qVmcFj6EergwQuiXLqHucBC2BZzdpMfo';
$my_callback_url = 'http://myurlcantseeit.me/gg/blockchain_callback.php?secret=' . $real_secret;
$root_url = 'https://blockchain.info/api/receive';
$parameters = 'method=create&callback='. urlencode($my_callback_url) . '&address=' . $my_address;
$response = file_get_contents($root_url . '?' . $parameters);
var_dump($response);
$object = json_decode($response);
?>
var转储返回:string(203) "{"input_address":"1MtYhCDEq1euiV7PjL58XtjfwTgX3Bqqpe","callback_url":"http:\/\/myurlcantseeit.me\/gg\/blockchain_callback.php?secret=cantletyousee","fee_percent":0,"destination":"16qVmcFj6EergwQuiXLqHucBC2BZzdpMfo"}"
我用虚拟信息替换了秘密和我网站的网址,以保持私密性 - 这不会产生任何影响。
正如您所看到的,它应该是http://myurlcantseeit.me/gg/blockchain_callback.php?secret=cantletyousee,但它会在任何地方添加反斜杠。
为什么以及如何解决此问题?
答案 0 :(得分:4)
\
是转义字符,这不会影响您的输出。
反斜杠字符有多种用途。首先,如果遵循它 通过非字母数字字符,它消除了任何特殊含义 那个角色可能有。这种反斜杠用作转义字符 适用于内部和外部字符类。
是的,你可以在使用json_encode
时添加一些选项,试一试,可以帮到你
json_encode($response, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES );
答案 1 :(得分:0)
如果要删除反斜杠,可以使用str_replace()
$str2 = str_replace ('\\', '', $response);
顺便说一下,我尝试用json_decode()
解码你的字符串,并在做var_dump()时收到正确的信息(没有额外的\
):
class stdClass#1 (4) {
public $input_address =>
string(34) "1MtYhCDEq1euiV7PjL58XtjfwTgX3Bqqpe"
public $callback_url =>
string(72) "http://myurlcantseeit.me/gg/blockchain_callback.php?secret=cantletyousee"
public $fee_percent =>
int(0)
public $destination =>
string(34) "16qVmcFj6EergwQuiXLqHucBC2BZzdpMfo"
}