Błąd PHP Wprowadzenie
Funkcje błędów są wykorzystywane do czynienia z obsługi błędów i logowania.
Funkcje błędów pozwalają nam określić własne zasady obsługi błędów i zmodyfikować sposób błędy mogą być rejestrowane.
Funkcje rejestrowania pozwala nam na wysyłanie wiadomości bezpośrednio do innych maszyn, e-maile, lub logach systemowych.
Funkcje raportowania błędów pozwalają nam dostosować jaki poziom i rodzaj sprzężenia zwrotnego o błędzie jest podane.
Instalacja
Funkcje błędów PHP są częścią jądra PHP. Bez instalacji jest wymagane do korzystania z tych funkcji.
Konfiguracja wykonawcza
Zachowanie funkcja błędu zależy od ustawień w pliku php.ini.
Błędy i opcje konfiguracyjne rejestrowania:
Nazwa | Zaniedbanie | Opis | Zmienny |
---|---|---|---|
zgłaszanie błędów | ZERO | Ustawia poziom raportowania błędów (albo liczbą całkowitą lub nazwane stałe) | PHP_INI_ALL |
display_errors | "1" | Określa, czy błędy powinny być drukowane na ekranie, czy powinny one być ukryte przed użytkownikiem. Uwaga: Funkcja ta nie powinna być stosowana w systemach produkcyjnych (tylko w celu wspierania rozwoju) | PHP_INI_ALL |
display_startup_errors | "0" | Nawet gdy display_errors jest na błędy występujące podczas sekwencji uruchamiania PHP nie są wyświetlane Uwaga: Zaleca się, aby zachować display_startup_errors off, z wyjątkiem debugowania | PHP_INI_ALL |
log_errors | "0" | Określa, czy komunikaty o błędach skryptu powinny być rejestrowane w dzienniku błędów serwera lub error_log. Uwaga: Zaleca się, aby używać rejestrowanie błędów zamiast błędu wyświetlania stron internetowych na produkcji | PHP_INI_ALL |
log_errors_max_len | "1024" | Ustawia maksymalną długość log_errors w bajtach. Wartość "0" może być używany do niestosowania żadnej maksymalną długość w ogóle. Długość ta jest stosowana do zalogowanych błędów wyświetlane błędy, a także do $ php_errormsg (available since PHP 4.3) | PHP_INI_ALL |
ignore_repeated_errors | "0" | Określa, czy do zalogowania powtarzające się komunikaty o błędach. Po ustawieniu na "1" nie będzie błędów z powtarzającym się błędów z tego samego pliku na tej samej linii log (available since PHP 4.3) | PHP_INI_ALL |
ignore_repeated_source | "0" | Określa, czy do zalogowania powtarzające się komunikaty o błędach. Po ustawieniu na "1" nie będzie błędów z powtarzającym się błędów z różnych plików lub linie źródłowe log (available since PHP 4.3) | PHP_INI_ALL |
report_memleaks | "1" | Jeśli jest ustawiony na "1" (the default) , parametr ten pokaże raport wycieków pamięci wykrytych przez menedżera pamięci Zend (available since PHP 4.3) | PHP_INI_ALL |
track_errors | "0" | Jeśli jest ustawiony na "1" , ostatni komunikat błędu zawsze będzie obecna w zmiennej $ php_errormsg | PHP_INI_ALL |
html_errors | "1" | Wyłącza znaczników HTML w wiadomościach o błędach | PHP_INI_ALL PHP_INI_SYSTEM PHP <4.2.3. |
xmlrpc_errors | "0" | Wyłącza normalne raportowanie błędów oraz formaty błędy jako komunikat o błędzie XML-RPC (available since PHP 4.1) | PHP_INI_SYSTEM |
xmlrpc_error_number | "0" | Używany jako wartość elementu XML-RPC faultCode (available since PHP 4.1) | PHP_INI_ALL |
docref_root | „” | (Dostępna od PHP 4.3) | PHP_INI_ALL |
docref_ext | „” | (Dostępny od PHP 4.3.2) | PHP_INI_ALL |
error_prepend_string | ZERO | Określa ciąg do wyjścia przed komunikatem o błędzie | PHP_INI_ALL |
error_append_string | ZERO | Określa ciąg do wyjścia po komunikacie błędu | PHP_INI_ALL |
error_log | ZERO | Określa nazwę pliku, w którym błędy skryptów powinny być rejestrowane. Plik powinien być zapisywalny przez użytkownika serwera WWW. Jeśli używana jest specjalna wartość syslog, błędy wysyłane są do systemu zamiast rejestratora | PHP_INI_ALL |
PHP błędów i logowania Funkcje
Funkcjonować | Opis |
---|---|
debug_backtrace() | Generuje ślad |
debug_print_backtrace() | Drukuje ślad |
error_get_last() | Zwraca ostatni błąd, który wystąpił |
error_log() | Wysyła komunikat o błędzie do dziennika, do pliku lub do konta pocztowego |
error_reporting() | Określa, które błędy są zgłaszane |
restore_error_handler() | Przywraca poprzednią obsługi błędów |
restore_exception_handler() | Odtwarza poprzednie obsługi wyjątków |
set_error_handler() | Ustawia funkcję obsługi błędu zdefiniowany przez użytkownika |
set_exception_handler() | Wyznacza funkcję obsługi wyjątków zdefiniowany przez użytkownika |
trigger_error() | Tworzy się komunikat o błędzie na poziomie użytkownika |
user_error() | Alias trigger_error() |
PHP 5 predefiniowane błędów i logowania Stałe
Wartość | Stały | Opis |
---|---|---|
1 | E_ERROR | Śmiertelne błędy run-time. Błędów, które nie mogą być odzyskane. Wykonanie skryptu zostaje zatrzymany |
2 | E_WARNING | Ostrzeżenia run-time (non-fatal errors) . Wykonanie skryptu nie jest zatrzymany |
4 | E_PARSE | Kompilacji czas analizowania błędów. Zanalizować błędy powinny być generowane tylko przez parser |
8 | E_NOTICE | Anonse Run-Time. Skrypt znaleźć coś, co może być błąd, ale może się zdarzyć, gdy uruchomiony skrypt normalnie |
16 | E_CORE_ERROR | Śmiertelne błędy przy starcie PHP. To jest jak E_ERROR, oprócz tego, że są generowane przez rdzeń PHP |
32 | E_CORE_WARNING | Non-śmiertelne błędy przy starcie PHP. To jest jak E_WARNING, oprócz tego, że są generowane przez rdzeń PHP |
64 | E_COMPILE_ERROR | Śmiertelne błędy podczas kompilacji. To jest jak E_ERROR, oprócz tego, że są generowane przez przez Zend Scripting Engine |
128 | E_COMPILE_WARNING | Non-śmiertelnych błędów kompilacji. To jest jak E_WARNING, oprócz tego, że są generowane przez przez silnik Zend Scripting |
256 | E_USER_ERROR | Błąd krytyczny generowane przez użytkowników. To jak E_ERROR, oprócz tego, że jest wytwarzany w kodzie PHP za pomocą funkcji PHP trigger_error() |
512 | E_USER_WARNING | Niezakończony zgonem ostrzeżenie generowane przez użytkowników. To jak E_WARNING, oprócz tego, że jest wytwarzany w kodzie PHP za pomocą funkcji PHP trigger_error() |
1024 | E_USER_NOTICE | Generowane przez użytkowników wypowiedzenia. To jak E_NOTICE, oprócz tego, że jest wytwarzany w kodzie PHP za pomocą funkcji PHP trigger_error() |
2048 | E_STRICT | Włącz mieć PHP sugerować zmiany w kodzie, które zapewnią najlepszą interoperacyjność i kompatybilność w przód swojego kodu (Od PHP 5, ale nie ujęte w E_ALL aż PHP 5.4) |
4096 | E_RECOVERABLE_ERROR | Połów błąd krytyczny. Wskazuje, że wystąpił prawdopodobnie niebezpieczny błąd, ale nie pozostawić silnik w stanie niestabilnym. Jeśli błąd nie zostanie złapany przez uchwyt zdefiniowanego przez użytkownika, aplikacja przerywa jak to było E_ERROR (Since PHP 5.2) |
8192 | E_DEPRECATED | Anonse Run-Time. Włącz tę opcję, aby otrzymywać ostrzeżenia o kodzie, który nie będzie działać w przyszłych wersjach (Since PHP 5.3) |
16384 | E_USER_DEPRECATED | Generowane przez użytkowników komunikat ostrzegawczy. To jest jak E_DEPRECATED, oprócz tego, że jest generowany w kodzie PHP za pomocą funkcji PHP trigger_error() (od PHP 5.3) |
32767 | E_ALL | Włącz wszystkie błędy i ostrzeżenia PHP (except E_STRICT in versions < 5.4) |