CURL使用包含GET URL的参数获取请求

时间:2015-09-15 21:57:22

标签: php facebook-graph-api curl facebook-php-sdk

我试图让cURL GET刮掉Facebook Graph对象:

GET https://graph.facebook.com/?id=**OBJECT_URL**&scrape=true&method=post

就我而言,OBJECT_URL包含GET个参数:

https://www.example.com/og.php?a=b&c=d

出于这个原因,我无法将其作为GETfile_get_contents()中的CURLOPT_URL参数,因为它会显示如下内容:

https://graph.facebook.com/?id=**https://www.example.com/og.php?a=b&c=d**&scrape=true&method=post

有没有办法以与GET类似的方式将其作为CURLOPT_POSTFIELDS参数传递?

1 个答案:

答案 0 :(得分:32)

您需要转义参数,http_build_query函数将非常有用:

$query = http_build_query([
 'id' => 'http://foo?a=1&b=2',
 'scrape' => true,
 'method' => 'post'
]);

$url = "https://graph.facebook.com/?".$query;

var_dump($url);

这将输出:

https://graph.facebook.com/?id=http%3A%2F%2Ffoo%3Fa%3D1%26b%3D2&scrape=1&method=post