如何从 rpc 服务器响应中保存一个变量?



我想使用我的 RPC 和 PHP 库将我的 RPC 钱包服务器与我的 WEB 服务器连接起来。

这是我用来连接服务器的库。

[莱特币PHP图书馆][1] [1]:

这是我的索引.php它将生成新地址以存入莱特币硬币:)

$litecoind = new LitecoinClient([
'scheme' => 'http',                 // optional, default http
'host'   => '1HIDDEN.HIDDEN.HIDDEN.0',            // optional, default localhost
'port'   => PRIVATE,                   // optional, default 9332
'user'   => 'HIDDEN',              // required
'pass'   => 'HIDDEN',          // required
]);
$alo=$litecoind->getnewaddress();
?>
<pre>
<?php 
print_r($alo);
?>
</pre>

因此,当我得到响应时,我会得到一些非常困难的数组来为我读取,从他那里我只需要这个块中的变量作为 [响应]

[container:protected] => Array
(
[result] => MUZiKwDneYD7a6G8Sx3TQjVZqfC3JkDobu
[error] => 
[id] => 0
)

以下是打印为漂亮打印的服务器的完整响应:

MajesticLitecoinLitecoindResponse Object
(
[response:protected] => GuzzleHttpPsr7Response Object
(
[reasonPhrase:GuzzleHttpPsr7Response:private] => OK
[statusCode:GuzzleHttpPsr7Response:private] => 200
[headers:GuzzleHttpPsr7Response:private] => Array
(
[Content-Type] => Array
(
[0] => application/json
)
[Date] => Array
(
[0] => Mon, 08 Jun 2020 17:09:32 GMT
)
[Content-Length] => Array
(
[0] => 68
)
)
[headerNames:GuzzleHttpPsr7Response:private] => Array
(
[content-type] => Content-Type
[date] => Date
[content-length] => Content-Length
)
[protocol:GuzzleHttpPsr7Response:private] => 1.1
[stream:GuzzleHttpPsr7Response:private] => GuzzleHttpPsr7Stream Object
(
[stream:GuzzleHttpPsr7Stream:private] => Resource id #44
[size:GuzzleHttpPsr7Stream:private] => 
[seekable:GuzzleHttpPsr7Stream:private] => 1
[readable:GuzzleHttpPsr7Stream:private] => 1
[writable:GuzzleHttpPsr7Stream:private] => 1
[uri:GuzzleHttpPsr7Stream:private] => php://temp
[customMetadata:GuzzleHttpPsr7Stream:private] => Array
(
)
)
)
[container:protected] => Array
(
[result] => MNTRoGELAMYRLm395Yj2sWYTPrnGi6URwz
[error] => 
[id] => 0
)
[current:protected] => 
)

对于不了解 json 响应的人来说,这很难理解如何仅获取 [响应] 并将其保存到 sql,当然我知道如何保存到 mysql,但如何只获取响应变量对我来说很难,所以我想问任何知道在这里做什么的人来帮助我,甚至指出我一些简单的解决方案。

非常感谢您阅读我的代码。 感谢您未来的回复和帮助!

您的堆栈朋友:)

编辑: 如果这不是 json 响应,任何人都可以告诉我这个响应是什么以及如何获得我需要的结果(钱包(变量。当我想回显我的$alo变量时,我收到错误,对象无法转换为字符串...什么

这里最大的问题是container是"受保护"的属性。这意味着它不能在类(或从它继承的类(之外访问 - 这在PHP文档中有描述:https://www.php.net/manual/en/language.oop5.visibility.php。

但是,尽管库的文档忽略了它,但根据类的源代码,应该可以调用result()函数来返回容器对象的"result"部分。

例如

echo $alo->result();

作为参考,result()函数在LitecoindResponse类的源代码中如下所示:

/**
* Gets result array.
*
* @return array|null
*/
public function result()
{
if ($this->hasResult()) {
return $this->container['result'];
}
}

你可以像这样访问它

$myval = $alo["container"];
foreach($myval as $myvals){
var_dump($myvals);
}

相关内容

  • 没有找到相关文章

最新更新