Benim komut çöküyor çıktı tamponunu temizlemek için güvenli bir yolu var mı?

1 Cevap

I register_shutdown_function() PHP benim senaryom çöküyor herhangi bir zamanda bir işlevi çağırmak izin kullanabilirsiniz. Ben bir dosyaya kaydediliyor sonra, ben kullanıcıya güzel bir hata-sorry-mesajı görüntülemek istiyor.

Bunu yapmak için, ben akım çıkış tamponu temizlemek istiyorum. Ben çıkış tamponlar (emin değilim) bir yığın olduğunu düşünüyorum, bu yüzden sadece benim kapatma-geri arama fonksiyonu ob_end_clean() aramak ve sonra benim hata sayfası yazdırmak eğer büyük soru?

En azından, mac benim MAMP çevre (yerel) Ben belgelerinde bazı insanlar bunun imkansız olduğunu iddia bile, benim geri çağırma işlevi bir şey yankı.

Eğer o çalışır ama, ben çıkış tamponuna önceden gittim gerçekten bir şey temizlenmiş olur emin olmalıdır. Öte yandan, bir sonraki soru gönderdi başlıklarıyla ne olurdu?

1 Cevap

register_shutdown_function () kullanıcıya görüntülenebilir içerik üretmek asla. Bu amaç için uygun değildir. Orada soket hala açık olacağı garanti - ve eğer, HTTP dosya akışı yazılabilir olmayabilir.

Eğer daha incelikle varsayılan daha hataları işlemek istiyorsanız, o zaman kendi hata işleyicisi yazmak ve yüklemeniz gerekir:

 <?php

 set_error_handler('britney');

 function britney()
 {
    ob_clean;
    print "Whoops! I did it again<br />";
    debug_print_backtrace();
    ob_end_flush();
 }
 ..... your code goes here

C.