web-dev-qa-db-fra.com

CURL Get Request avec un paramètre qui contient une URL GET

J'essaie de créer un cURL GET pour gratter un objet Facebook Graph:

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

Dans mon cas, OBJECT_URL Contient GET paramètres:

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

Pour cette raison, je ne peux pas l'avoir en tant que paramètre GET dans file_get_contents() ou CURLOPT_URL, Car cela donnerait quelque chose comme ceci:

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

Existe-t-il un moyen de le passer en tant que paramètre GET d'une manière similaire à CURLOPT_POSTFIELDS?

16
Maxim Laco

Vous devez échapper vos paramètres, la fonction http_build_query sera utile:

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

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

var_dump($url);

Cela produira:

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