En PHP, la fonction d'en-tête () est utilisée pour envoyer des informations d'en-tête HTTP brutes au navigateur. Il est généralement utilisé pour la redirection, la définition du type de contenu, le contrôle du cache, la définition des codes d'état HTTP et d'autres scénarios. Dans de nombreux cas, le code d'état HTTP par défaut (tel que 200) est suffisant, mais en vertu de certains besoins spéciaux, nous devrons peut-être personnaliser le code d'état HTTP. Cet article présentera comment utiliser la fonction d'en-tête () pour définir correctement les codes d'état HTTP personnalisés.
Le code d'état HTTP est un code à trois chiffres envoyé par le serveur lors de la réponse à une demande client, ce qui représente le résultat de la demande. Les codes d'état communs sont:
200 OK: la demande a réussi
301 déplacé en permanence: redirigé en permanence
404 Non trouvé: page introuvable
500 Erreur du serveur interne: erreur de serveur interne
Vous pouvez personnaliser le code d'état en fonction de vos besoins pour décrire plus précisément différentes demandes et réponses.
La syntaxe de base de la fonction d'en-tête () est:
header(string $header, bool $replace = true, int $http_response_code = 0)
$ En-tête : le paramètre qui doit être passé pour spécifier le contenu des informations d'en-tête HTTP. Vous pouvez définir le type de contenu, la redirection, le code d'état, etc.
$ Remplace : Il s'agit d'un paramètre facultatif, par défaut , indiquant s'il faut remplacer les informations d'en-tête existantes.
$ http_response_code : il s'agit d'un paramètre facultatif pour spécifier le code d'état HTTP. Si le paramètre est 0, en-tête () définira automatiquement le code d'état en fonction de la valeur d'en-tête que vous fournissez.
Pour définir un code d'état HTTP personnalisé, spécifiez simplement HTTP / 1.1 dans la fonction en-tête () suivi du code d'état personnalisé et des informations de description. Les exemples sont les suivants:
<?php
// installation 404 Not Found Code d'état
header("HTTP/1.1 404 Not Found");
?>
Si vous devez renvoyer un code d'état spécifique et une description d'une demande, vous pouvez également utiliser des codes comme les suivants:
<?php
// installation 403 Forbidden Code d'état
header("HTTP/1.1 403 Forbidden");
?>
Vous pouvez définir n'importe quel code d'état HTTP standard de la même manière, il suffit de modifier le code d'état et la description de ce dont vous avez besoin.
Supposons que vous développiez un site Web et souhaitez renvoyer une page d'erreur 404 personnalisée lorsque l'utilisateur visite une page qui n'existe pas, vous pouvez utiliser le code suivant:
<?php
// installation 404 Not Found Code d'état
header("HTTP/1.1 404 Not Found");
// Volonté URL Page d'erreur dans(Par exemple, 'error.php')Montrer à l'utilisateur
include('error.php');
?>
Dans cet exemple, lorsque l'utilisateur accède à une page qui n'existe pas, le serveur renvoie un code d'état 404 et affiche la page error.php .
Si vous souhaitez rediriger l'utilisateur vers une autre URL immédiatement après l'accès à la page, vous pouvez utiliser le code suivant:
<?php
// installation 301 永久重定向Code d'état
header("HTTP/1.1 301 Moved Permanently");
// installation新的重定向 URL
header("Location: https://m66.net/newpage");
exit;
?>
Ce code redirige l'utilisateur vers https://m66.net/newpage et indique au navigateur qu'il s'agit d'une redirection permanente.
Lorsque vous rencontrez une erreur de serveur interne, vous pouvez définir le code d'état 500 et renvoyer une page d'erreur personnalisée, comme celle-ci:
<?php
// installation 500 Internal Server Error Code d'état
header("HTTP/1.1 500 Internal Server Error");
// Retour à la page d'erreur personnalisée
include('500_error.php');
?>
Dans cet exemple, la page 500_error.php s'affiche à l'utilisateur, l'informant qu'une erreur de serveur s'est produite.
La fonction d'en-tête () doit être appelée avant toute sortie, sinon les informations d'en-tête HTTP ne seront pas modifiées. Si vous avez une sortie HTML ou une sortie d'écho avant d'appeler la fonction d'en-tête () , cela entraînera une erreur.
Chaque page ne peut envoyer des informations d'en-tête HTTP qu'une seule fois. Portez une attention particulière lorsque vous appelez la fonction d'en-tête () plusieurs fois et ne définissez pas à plusieurs reprises le même code d'état ou les informations d'en-tête.
Si vous souhaitez rediriger, n'oubliez pas d'ajouter la sortie après en-tête () , sinon le programme peut continuer à exécuter le code ultérieur, entraînant un comportement inutile.
La fonction d'en-tête () est un outil très puissant en PHP, qui peut être utilisé pour définir les codes d'état HTTP, effectuer la redirection de page, le cache de contrôle, etc. En utilisant la fonction en-tête () , nous pouvons mieux contrôler l'expérience utilisateur et le comportement du navigateur. Pendant le développement, lorsque vous devez renvoyer un code d'état spécifique à l'utilisateur, n'oubliez pas de définir correctement les informations d'en-tête HTTP pour assurer la stabilité et l'exactitude du site Web.