将Shell Curl命令转换为PHP

时间:2019-07-04 08:30:19

标签: php curl

我使用的是我在网上找到的API,用于使用curl查询远程Grin守护程序。我正在尝试将下面的bash curl请求转换为PHP,但是我不确定如何使用PHP的curl库传递$ curl -0 -XPOST -u grin:`cat ~/.grin/floo/.api_secret` --data '{"jsonrpc":"2.0","method":"retrieve_summary_info","params":[true, 10],"id":1}' http://127.0.0.1:13420/v2/owner

重击

grin:`cat ~/.grin/floo/.api_secret`

我对此命令感到困惑的主要部分如下:

$ch = curl_init(); curl_setopt($ch, CURLOPT_URL, 'http://127.0.0.1:13420/v2/owner'); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"jsonrpc\":\"2.0\",\"method\":\"retrieve_summary_info\",\"params\":[true, 10],\"id\":1}"); curl_setopt($ch, CURLOPT_POST, 1); $headers = array(); $headers[] = 'Content-Type: application/x-www-form-urlencoded'; curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $result = curl_exec($ch); if (curl_errno($ch)) { echo 'Error:' . curl_error($ch); } return $result; curl_close($ch);

如何将以上命令转换为PHP格式? 这是我到目前为止所拥有的

{{1}}

1 个答案:

答案 0 :(得分:1)

正如treyBake所说,您可以通过使用file_get_contents并将其发送到带有CURLOPT_USERPWD选项的cURL来获得它。像这样:

// your path needs to either be relative or full, no '~' allowed
// example: '/home/grin/.grin/floo/.api_secret'
$secret = file_get_contents(PATH);
if (!$secret)
    return;

curl_setopt($ch, CURLOPT_USERPWD, "grin:$secret");