0

我正在测试一个回调,它添加了不必要的斜杠,这阻碍了 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"}"

我用虚拟信息替换了秘密和我网站的 URL 以保持私密 - 这不会有什么不同。

如您所见,它应该是http://myurlcantseeit.me/gg/blockchain_callback.php?secret=cantletyousee,但它到处都添加了反斜杠。

为什么以及如何解决这个问题?

4

2 回答 2

4

\是转义字符,这不会影响您的输出。

来自PHP 转义序列

反斜杠字符有多种用途。首先,如果它后跟一个非字母数字字符,它将带走该字符可能具有的任何特殊含义。这种将反斜杠用作转义字符的做法适用于内部和外部字符类。

是的,您可以在使用时添加一些选项json_encode,试一试,可能对您有所帮助

json_encode($response, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES );
于 2013-10-07T05:19:55.200 回答
0

如果要删除反斜杠,可以使用str_replace()

$str2 = str_replace ('\\', '', $response);

顺便说一句,我尝试在执行 var_dump() 时使用解码您的字符串json_decode()并收到正确的信息(没有额外的):\

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"
}
于 2013-10-07T05:20:10.463 回答