Comment envoyer une requête GET à partir de PHP?
Je suis à la planification de l'utilisation de PHP pour une simple exigence. J'ai besoin de télécharger un contenu XML à partir d'une URL, pour laquelle j'ai besoin d'envoyer des requête HTTP GET à l'URL.
Comment puis-je le faire en PHP?
Vous devez vous connecter pour publier un commentaire.
Si vous en avez besoin plus que juste du contenu du fichier, vous pouvez utiliser
file_get_contents
.Pour quelque chose de plus complexe, je ne l'utiliserais cURL.
failed to open stream: HTTP request failed!
file_get_contents
ne les laissez pas vous en faire la demande à la coutume des cookies, des en-têtes, et d'autres choses que d'un navigateur généralement d'envoyer, de sorte que vous ne pourriez pas obtenir la réponse que vous cherchez. Dans ce cas, vous feriez mieux d'utiliser CURL de toute façon. (Mais ce n'est pas le cas des OP cas.)file_get_contents
pourrait être beaucoup plus lent, surtout que la plupart du temps sera passé à attendre pour la réponse.Pour les plus avancés GET/POST demandes, vous pouvez installer la bibliothèque CURL (http://us3.php.net/curl):
file_get_contents()
. Un simple 4 lettre de la chaîne a pris environ 10 secondes, tandis que le roulage a eu un plus raisonnable ~1 seconde max.http_get
devrait faire l'affaire. Les avantages dehttp_get
surfile_get_contents
offre la possibilité d'afficher les en-têtes HTTP, demande d'accès à des détails, et de contrôler le délai d'attente de connexion.N'oubliez pas que si vous utilisez un proxy, vous devez faire un petit tour dans votre code php:
En fonction de votre configuration de php permet fopen sur les Url, vous pouvez aussi tout simplement fopen l'url de la obtenir des arguments dans la chaîne (comme http://example.com?variable=value )
Edit: Re-lecture de la question, je ne suis pas certain de savoir si vous cherchez à passer des variables ou non - si vous n'êtes pas, vous pouvez tout simplement envoyer la fopen demande contenant http://example.com/filename.xml - n'hésitez pas à ignorer la variable=valeur de la partie
J'aime utiliser fsockopen ouvert pour cela.
Dans l'autre main, à l'aide de l'API REST d'autres serveurs sont très populaires en PHP. Supposons que vous êtes à la recherche d'un moyen de rediriger certaines requêtes HTTP dans le serveur (par exemple l'obtention d'un fichier xml). Voici un package PHP pour vous aider:
Donc pour le fichier xml:
Bouffer est très bien connue de la bibliothèque qui le rend très facile à faire toutes sortes de HTTP appels. Voir https://github.com/guzzle/guzzle. Installer avec
composer require guzzlehttp/guzzle
et exécutercomposer install
. Maintenant, le code ci-dessous est assez pour faire un appel http get.