file_get_contents() vs curl pour appeler l'Api PHP

En fonction de la description de la Recherche Personnalisée Google API, vous pouvez les appeler en utilisant le verbe GET du RESTE de l'interface, comme avec l'exemple:

GET https://www.googleapis.com/customsearch/v1?key=INSERT-YOUR-KEY&cx=017576662512468239146:omuauf_lfve&q=lectures

- Je configurer ma clé API et moteur de recherche personnalisé, et lorsqu'il est collé à ma requête de test directement sur mon navigateur, il a bien fonctionné, et j'ai obtenu le fichier JSON affiché à moi.

Puis j'ai essayé d'appeler l'API de mon code PHP en utilisant:

$json = file_get_contents("$url") or die("failed");

Où $url est la même que celle qui a travaillé sur le navigateur, mais mon code PHP était en train de mourir en essayant de l'ouvrir.

Après que j'ai essayé avec curl, et cela a fonctionné. Le code était:

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$body = curl_exec($ch);

Questions:

  1. Comment se file_get_contents() ne fonctionne pas et curl n'a?
  2. Pourrais-je l'utiliser fsocket pour cela ainsi?
Sans doute parce que vos paramètres de PHP a été configuré pour ne pas autoriser les connexions à distance avec fopen wrappers: uk3.php.net/manual/en/...
Je peux ouvrir d'autres pages avec file_get_contents bien que, comme celui-ci travaille $test = file_get_contents("google.com");
Avez-vous RTM? nz.php.net/manual/en/function.file-get-contents.php

OriginalL'auteur Daniel Scocco | 2012-03-11