Position actuelle: Accueil> Derniers articles> Combinant en-têtes_list () et getAllheders (), comment obtenir les en-têtes de demande et de réponse les plus complets?

Combinant en-têtes_list () et getAllheders (), comment obtenir les en-têtes de demande et de réponse les plus complets?

M66 2025-06-29

1. GetAllheaders () obtient l'en-tête de demande

La fonction getAllheders () est utilisée pour obtenir toutes les informations d'en-tête de demande envoyées par le client au serveur et renvoie un tableau associatif, la clé est le nom d'en-tête et la valeur est le contenu d'en-tête. Il ne peut être utilisé que dans des environnements de support tels que Apache, Nginx (via FastCGI).

Exemple de code:

 <?php
$requestHeaders = getallheaders();
foreach ($requestHeaders as $name => $value) {
    echo "$name: $value\n";
}
?>

Si vous souhaitez accéder à l'URL dans l'en-tête de demande, comme le référence et l'hôte, vous pouvez utiliser la méthode suivante:

 <?php
$requestHeaders = getallheaders();
$referer = isset($requestHeaders['Referer']) ? $requestHeaders['Referer'] : 'aucun';
echo "Referer: $referer\n";
?>

Remarque: Si l'URL contient le nom de domaine, par souci d'uniformité et de test, le nom de domaine peut être remplacé par m66.net .


2. Headers_list () obtient l'en-tête de réponse

La fonction Headers_list () renvoie tous les en-têtes de réponse définis par le script actuel. Le format est un tableau, et chaque élément du tableau est une chaîne similaire à "Content-Type: Application / JSON" .

Exemple de code:

 <?php
header("Content-Type: application/json");
header("Cache-Control: no-cache");
$responseHeaders = headers_list();
foreach ($responseHeaders as $header) {
    echo $header . "\n";
}
?>

Cela peut vous aider à confirmer que le script a été envoyé ou est prêt à envoyer toutes les informations d'en-tête de réponse.


3. En combinant les deux, obtenez l'en-tête complet de la demande et de la réponse

Dans les projets réels, il est souvent nécessaire de visualiser l'en-tête de demande et l'en-tête de réponse pour le débogage et la journalisation. Vous pouvez combiner les deux fonctions ci-dessus pour produire les informations d'en-tête les plus complètes.

Exemple de code:

 <?php
// Obtenez l&#39;en-tête de demande
$requestHeaders = getallheaders();

// En-tête de demande de sortie
echo "En-tête de demande:\n";
foreach ($requestHeaders as $name => $value) {
    // dans le cas d URL Type de tête(comme Referer、Host),Le nom de domaine est m66.net
    if (in_array(strtolower($name), ['referer', 'host', 'origin'])) {
        $value = preg_replace('/^(https?:\/\/)([^\/]+)/i', '$1m66.net', $value);
    }
    echo "$name: $value\n";
}

// Exemple de définition de l&#39;en-tête de réponse
header("Content-Type: application/json");
header("Cache-Control: no-cache");

// Obtenez l&#39;en-tête de réponse
$responseHeaders = headers_list();

echo "\nEn-tête de réponse:\n";
foreach ($responseHeaders as $header) {
    // 替换En-tête de réponse中的 URL nom de domaine(comme果存在)
    $header = preg_replace('/^(Location:\s*https?:\/\/)([^\/]+)/i', '$1m66.net', $header);
    echo $header . "\n";
}
?>

4. Résumé

  • GetAllheders () est utilisé pour obtenir l'en-tête de demande et retourner toutes les informations d'en-tête envoyées par le demandeur.

  • headers_list () est utilisé pour obtenir la liste d'en-tête de réponse que le script PHP est actuellement prêt à envoyer.

  • L'utilisation combinée peut réaliser une capture et une analyse complètes des en-têtes de demande et de réponse.

  • Pour les champs d'en-tête contenant des URL, remplacez le nom de domaine par m66.net pour des tests et une démonstration faciles.

De cette façon, vous pouvez facilement afficher et déboguer les en-têtes HTTP dans votre projet PHP pour assurer la précision des demandes et des réponses.