array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'fr', ), 'this' => array ( 0 => 'function.header-register-callback.php', 1 => 'header_register_callback', ), 'up' => array ( 0 => 'ref.network.php', 1 => 'Fonctions réseaux', ), 'prev' => array ( 0 => 'function.getservbyport.php', 1 => 'getservbyport', ), 'next' => array ( 0 => 'function.header-remove.php', 1 => 'header_remove', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'fr', 'path' => 'reference/network/functions/header-register-callback.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 5 >= 5.4.0, PHP 7, PHP 8)
header_register_callback — Enregistre une fonction de rappel pour l'envoi des en-têtes
Enregistre une fonction de rappel qui sera appelée lorsque PHP tentera d'écrire sur la sortie.
callback
est exécutée juste après que PHP ait préparé les en-têtes
à envoyer, et avant qu'il ne les envoie. Ceci permet une manipulation fine des en-têtes
avant leur envoi.
callback
La fonction à appeler juste avant que les en-têtes ne soient envoyés. Elle n'accepte aucun paramètre et sa valeur de retour est ignorée.
Exemple #1 Exemple avec header_register_callback()
<?php
header('Content-Type: text/plain');
header('X-Test: foo');
function foo() {
foreach (headers_list() as $header) {
if (strpos($header, 'X-Powered-By:') !== false) {
header_remove('X-Powered-By');
}
header_remove('X-Test');
}
}
$result = header_register_callback('foo');
echo "a";
?>
Résultat de l'exemple ci-dessus est similaire à :
Content-Type: text/plain a
header_register_callback() est exécutée juste avant l'envoi des en-têtes, donc tout affichage déclenché par cette fonction peut casser l'affichage final de la sortie.
Note:
Les en-têtes ne seront accessibles et s'afficheront que lorsqu'un SAPI qui les supporte sera utilisé.