Maison >développement back-end >tutoriel php >« file_get_contents() » de PHP peut-il envoyer des en-têtes HTTP personnalisés ?

« file_get_contents() » de PHP peut-il envoyer des en-têtes HTTP personnalisés ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-28 08:30:11404parcourir

Can PHP's `file_get_contents()` Send Custom HTTP Headers?

La fonction file_get_contents() de PHP peut-elle envoyer des en-têtes HTTP ?

En PHP, file_get_contents() est une fonction d'E/S de fichier polyvalente qui permet vous pouvez également récupérer le contenu des URL. Cependant, il y a eu une certaine confusion quant à sa capacité à envoyer des en-têtes HTTP.

Au départ, file_get_contents() ne fournissait pas de moyen direct d'envoyer des en-têtes HTTP personnalisés. Il était généralement admis que la définition de ces en-têtes via le paramètre de l'agent utilisateur de php.ini était la seule option.

Cependant, après un examen plus approfondi de la documentation file_get_contents(), il a été découvert que les en-têtes HTTP peuvent effectivement être envoyés en utilisant le Fonction stream_context_create(). Voici un exemple :

// Create a stream context with custom HTTP headers
$opts = [
    "http" => [
        "method" => "GET",
        "header" => "Accept-language: en\r\n" .
            "Cookie: foo=bar\r\n"
    ]
];

// Create a stream context from the options
$context = stream_context_create($opts);

// Open the URL with the stream context
$file = file_get_contents('http://www.example.com/', false, $context);

En suivant cette approche, vous pouvez désormais envoyer des en-têtes HTTP personnalisés avec file_get_contents(). Il est important de noter que cette méthode n'a pas été testée de manière approfondie, vous pouvez donc rencontrer des problèmes en fonction des en-têtes spécifiques et des configurations du serveur.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn