116 votes

PHP cUrl vs file_get_contents

Voici une question. En quoi ces deux éléments de code diffèrent-ils lors de l'accès à l'API REST?

 $result = file_get_contents('http://api.bitly.com/v3/shorten?login=user&apiKey=key&longUrl=url');

$ch =  curl_init('http://api.bitly.com/v3/shorten?login=user&apiKey=key&longUrl=url');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
 

parce qu'ils produisent tous les deux le même résultat, à en juger par:

 print_r(json_decode($result))
 

135voto

Xeoncross Points 13263

file_get_contents() est un simple tournevis. Idéal pour les requêtes GET simples où l’en-tête, la méthode de requête HTTP, le délai d’attente, le cookiejar, les redirections et d’autres éléments importants n’ont aucune importance.

fopen() avec un contexte de flux ou un cURL avec setopt sont des perceuses puissantes avec toutes les options et options que vous pouvez imaginer.

29voto

vr_driver Points 133

De plus, en raison de piratages récents de sites Web, nous avons dû sécuriser davantage nos sites. Ce faisant, nous avons découvert que file_get_contents ne fonctionnait pas, alors que curl fonctionnerait toujours.

Pas à 100%, mais je pense que ce paramètre php.ini a peut-être bloqué la demande file_get_contents .

 ; Disable allow_url_fopen for security reasons
allow_url_fopen = 0
 

De toute façon, notre code fonctionne maintenant avec curl .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X