323 votes

Comment envoyer une requête GET depuis PHP ?

J'envisage d'utiliser PHP pour un besoin simple. Je dois télécharger un contenu XML à partir d'une URL, pour cela je dois envoyer une requête HTTP GET à cette URL.

Comment puis-je le faire en PHP ?

440voto

Sasha Chedygov Points 36783

À moins que vous n'ayez besoin de plus que le contenu du fichier, vous pourriez utiliser file_get_contents .

$xml = file_get_contents("http://www.example.com/file.xml");

146voto

James Skidmore Points 13628

Pour des requêtes GET/POST plus avancées, vous pouvez installer la bibliothèque CURL (http://us3.php.net/curl) :

$ch = curl_init("REMOTE XML FILE");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);

64voto

William Brendel Points 15453

http_get devrait faire l'affaire. Les avantages de http_get sur file_get_contents incluent la possibilité d'afficher les en-têtes HTTP, d'accéder aux détails des requêtes et de contrôler le délai de connexion.

$response = http_get("http://www.example.com/file.xml");

19voto

pepe Points 51

N'oubliez pas que si vous utilisez un proxy, vous devez faire une petite astuce dans votre code php :

(PROXY WITHOUT AUTENTICATION EXAMPLE)

<?php
$aContext = array(
    'http' => array(
        'proxy' => 'proxy:8080',
        'request_fulluri' => true,
    ),
);
$cxContext = stream_context_create($aContext);

$sFile = file_get_contents("http://www.google.com", False, $cxContext);

echo $sFile;
?>

9voto

Zxaos Points 2016

Selon que votre configuration php autorise ou non l'ouverture des URL, vous pouvez aussi simplement ouvrir l'URL avec les arguments get dans la chaîne (comme par exemple http://example.com?variable=value )

Edit : En relisant la question, je ne suis pas certain que vous cherchiez à passer des variables ou non - si ce n'est pas le cas, vous pouvez simplement envoyer la requête fopen avec les paramètres suivants http://example.com/filename.xml - vous pouvez ignorer la partie "variable=valeur".

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