PHP file_get_contents() et le paramètre d'en-têtes de requête
Avec PHP, est-il possible d'envoyer des en-têtes HTTP file_get_contents()
?
Je sais que vous pouvez envoyer à l'agent utilisateur de votre php.ini
fichier. Cependant, vous pouvez également envoyer d'autres informations telles que HTTP_ACCEPT
, HTTP_ACCEPT_LANGUAGE
, et HTTP_CONNECTION
avec file_get_contents()
?
Ou est-il une autre fonction qui permet d'accomplir cela?
Vous devez vous connecter pour publier un commentaire.
En fait, après lecture sur le
file_get_contents()
fonction:Vous pourriez être en mesure de suivre ce modèle pour obtenir ce que vous cherchez à vous, je n'ai pas personnellement testé ce bien. (et si ça ne fonctionne pas, n'hésitez pas à consulter mes autres réponses)
file_get_contents()
? ne spécifiez un?user_agent
en php.ini afin que je puisse accéder à des pages comme GoogleVoici ce qui a fonctionné pour moi (Dominique était juste une ligne qui court).
header
va se substituer à l'user_agent
élément de 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
file_get_contents()
fonction.Code:
De sortie:
Oui.
Lors de l'appel de file_get_contents sur une url, il faut utiliser les stream_create_context fonction, qui est assez bien documenté sur php.net
C'est plus ou moins exactement couverts sur la page suivante à php.net dans les commentaires de l'utilisateur section: http://php.net/manual/en/function.stream-context-create.php
En utilisant le php cURL bibliothèques sera probablement la bonne façon de faire, que cette bibliothèque dispose de plus de fonctions que la simple
file_get_contents(...)
.Un exemple:
file_get_contents
ainsi et je n'ai pas encore rencontré un Cas d'Utilisation qui vous ne pouvez réaliser avec cURL.Si vous n'avez pas besoin de HTTPS et 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 de lire et d'écrire comme vous le feriez avec un descripteur de fichier.
file_get_contents
donc c'est un peu une réponse hors sujet.Malheureusement, il ne ressemble pas à
file_get_contents()
offre vraiment que le degré de contrôle. L'extension cURL est généralement le premier à venir, mais je vous recommande fortement de le PECL_HTTP extension (http://pecl.php.net/package/pecl_http) pour de très simple et de simples requêtes HTTP. (il est beaucoup plus facile à travailler que cURL)