web-dev-qa-db-ja.com

GET URLを含むパラメーターを持つCURL Get要求

FacebookグラフオブジェクトをスクレイピングするためにcURL GETを作成しようとしています。

_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
_

そのため、file_get_contents()または_CURLOPT_URL_のGETパラメーターとして使用することはできません。次のようになります。

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

_CURLOPT_POSTFIELDS_に似た方法でGETパラメーターとして渡す方法はありますか?

16
Maxim Laco

パラメータをエスケープする必要があります。 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
34