(PHP 3 >= 3.0.4, PHP 4, PHP 5)
register_shutdown_function --
Enregistre une fonction pour exécution à l'extinction
Description
void
register_shutdown_function ( callback function [, mixed parameter [, mixed ...]] )
register_shutdown_function() enregistre la fonction
func pour exécution à l'extinction
du script.
Plusieurs appels à register_shutdown_function() sont
possibles dans le même script, et les fonctions seront appelées dans le
même ordre que celui dans lequel elles sont enregistrées. Si vous appelez
exit() durant l'une des fonctions d'extinction,
le processus sera définitivement arrété, sans que les autres fonctions
soient appelées.
En PHP 4.0.6 et précédent sous Apache, les fonctions d'extinction
sont appelées après la fin de la requête
(notamment les buffers ont été vidés), ce qui fait qu'il est impossible
d'afficher du texte depuis cette fonction, avec echo() ou
print(), ou encore de lire le contenu des buffers
avec ob_get_contents().
Depuis PHP 4.1, les fonctions d'extinction sont appelées comme une partie
de la requête, donc, il est possible d'envoyer l'affichage depuis ces dernières.
Il n'y a actuellement aucune façon de traiter les données avec les fonctions
d'affichage du buffer dans la fonction d'extinction.
La fonction d'extinction est appelé après avoir fermée tous les buffers de sortie ouverts,
de ce fait, par exemple, la sortie ne sera pas compressée si zlib.output_compression est
activé.
Depuis PHP 4, il est possible de passer des paramètres à la fonction d'extinction en
passant des paramètres additionnels à la fonction
register_shutdown_function().
Note :
Typiquement, les fonctions non définies causent des
erreurs fatales en PHP, mais lorsque la fonction
function est appelée avec
register_shutdown_function() en étant non définie,
une erreur de type E_WARNING est générée. De plus,
pour des raisons internes à PHP cette erreur va être indiquée
comme Unknown at line #0.
Note :
Le dossier de travail du script peut changer dans la fonction d'extinction
sous quelques serveurs web, e.g. Apache.
Note :
La fonction d'extinction est appelé durant l'arrêt du script, donc, les en-têtes
sont toujours déjà envoyés.
Voir aussi
auto_append_file,
exit(), et la section sur la
gestion des connexions.