Avec PHP, est-il possible d'envoyer des en-têtes HTTP avec file_get_contents()
?
Je sais que vous pouvez envoyer l'agent utilisateur à partir de votre php.ini
fichier. Cependant, pouvez-vous également envoyer d'autres informations telles queHTTP_ACCEPT
, HTTP_ACCEPT_LANGUAGE
et HTTP_CONNECTION
avec file_get_contents()
?
Ou y a-t-il une autre fonction qui accomplira cela?
php
http-headers
Marcus
la source
la source
file_get_contents()
? en précise-t-il un?ini_set('user_agent', 'SomeBrowser v42.0.4711');
allez sur user-agent.me et copiez le vôtre à partir de là .. ou éditez php.ini pour le changer globalementVoici ce qui a fonctionné pour moi (Dominic était juste une ligne courte).
la source
header
remplacera l'user_agent
élément du tableau, si les deux sont spécifiés.Vous pouvez utiliser cette variable pour récupérer les en-têtes de réponse après la
file_get_contents()
fonction.Code:
Production:
la source
Oui.
Lors de l'appel
file_get_contents
sur une URL, il faut utiliser lastream_create_context
fonction, qui est assez bien documentée sur php.net.Ceci est plus ou moins exactement couvert sur la page suivante sur php.net dans la section des commentaires des utilisateurs: http://php.net/manual/en/function.stream-context-create.php
la source
L'utilisation des bibliothèques php cURL sera probablement la bonne solution, car cette bibliothèque a plus de fonctionnalités que le simple
file_get_contents(...)
.Un exemple:
la source
file_get_contents
et je n'ai pas encore trouvé de cas d'utilisation que vous ne pouvez réaliser qu'avec cURL.Si vous n'avez pas besoin de HTTPS et que curl n'est pas disponible sur votre système, vous pouvez utiliser
fsockopen
Cette fonction ouvre une connexion à partir de laquelle vous pouvez à la fois lire et écrire comme vous le feriez avec un descripteur de fichier normal.
la source
file_get_contents
, c'est donc une réponse hors sujet.Malheureusement, il ne semble pas
file_get_contents()
vraiment offrir ce degré de contrôle. L'extension cURL est généralement la première à apparaître, mais je recommande vivement l'extension PECL_HTTP ( http://pecl.php.net/package/pecl_http ) pour les requêtes HTTP très simples et directes. (c'est beaucoup plus facile à travailler qu'avec cURL)la source