PHP ne sera pas vous fournir tous les moyens conventionnels pour la capture des erreurs fatales parce qu'ils vraiment ne devraient pas être pris. C'est-à-dire, vous ne devriez pas tenter de récupérer d'une erreur fatale. Chaîne de caractères correspondant à une mémoire tampon de sortie est certainement mal conseillé.
L'appel de la fonction mail() de l'intérieur d'un gestionnaire d'erreurs de méthode s'avérer problématique, trop. Si vous avez eu beaucoup d'erreurs, votre serveur de messagerie serait chargé, avec le travail, et vous pourriez vous retrouver avec une gnarly boîte de réception. Pour éviter cela, vous pouvez envisager de faire tourner un cron pour analyser les journaux d'erreur périodique et envoyer des notifications en conséquence. Vous pouvez aussi rechercher dans le système logiciel de surveillance, tels que Nagios.
Pour parler du bit sur l'enregistrement d'une fonction d'arrêt:
Il est vrai que vous pouvez vous inscrire à un arrêt de la fonction, et c'est une bonne réponse.
Le point ici est que vous ne devriez pas tenter de récupérer à partir des erreurs fatales, surtout pas en utilisant une expression régulière à l'encontre de votre tampon de sortie. Je répond à la accepté de répondre, qui était liée à une suggestion sur php.net qui a depuis été modifiés ou supprimés.
Cette suggestion a été d'utiliser une regex par rapport à la sortie de la mémoire tampon lors de la manipulation d'exception, et dans le cas d'une erreur fatale (détecté par la correspondance contre quel que soit configuré texte d'erreur que vous pourriez attendre de), essayer de faire une sorte de reprise ou de la poursuite de la procédure. Ce ne serait pas une pratique recommandée (je crois que c'est pourquoi je ne peux pas trouver l'origine de la suggestion, trop. Je suis en train de donnant sur, ou à la communauté php abattu).
Il pourrait être intéressant de noter que les versions les plus récentes de PHP (environ 5.1) semblent appeler la fonction d'arrêt plus tôt, avant que le tampon de sortie de rappel est envoked. Dans la version 5 et les versions antérieures, que l'ordre était l'inverse (le tampon de sortie de rappel a été suivie par la fonction d'arrêt). Aussi, depuis près de 5.0.5 (qui est beaucoup plus tôt que l'interlocuteur de la version 5.2.3), les objets sont déchargés bien avant un régime enregistré d'arrêt de la fonction est appelée, donc vous ne serez pas en mesure de compter sur vos objets en mémoire à faire beaucoup de chose.
Si l'enregistrement d'une fonction d'arrêt est très bien, mais le genre de tâches qui devraient être effectuées par une fonction d'arrêt sont probablement limités à une poignée de doux arrêt des procédures.
La clé à emporter voici quelques mots de sagesse pour ceux qui bute sur cette question et voit les conseils dans le initialement accepté de répondre. Ne pas regex votre tampon de sortie.