curl 将“资源 ID #2”附加到输出


curl append "Resource id #2" to the output

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, "http://localhost/api/11122233A");
curl_exec($curl);
curl_close($curl);
echo $curl;

当我手动访问 URL 时,API 会返回一个 JSON,但是使用 curl 时,输出就像 {json things}Resource id #2 一样。为什么?

我正在阅读几个类似的问题,但我的问题有所不同,因为我实际上是在获取数据,而不仅仅是一条Resource id #2消息。

curl_init()返回一个resource(见 http://php.net/manual/en/function.curl-init.php(

因此,echo $curl;echo curl_init();会给你一些类似的东西 Resource id #2 .

您可能正在寻找这样的东西:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http://localhost/api/11122233A");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$output = curl_exec($ch);
curl_close($ch);   
echo $output;   

有关更多详细信息,请参阅 http://php.net/manual/en/function.curl-exec.php


正如您所说,curl 通过命令行为您工作(即 $ curl ... ( 有一个解决方法。只需 exec(( 你 curl 命令。

例:

$output = exec('curl http://localhost/api/11122233A');
echo $output;