Der in diesem Artikel geteilte Inhalt ist die detaillierte Verwendung von php set_error_handler(), die einen bestimmten Referenzwert hat. Freunde in Not können darauf verweisen
Nachdruck: http ://us.php.net/manual/en/function.set-error-handler.php
set_error_handler-Funktion Die Funktion ist die Vermeidung von Fehlern im falschen Pfad
Was ist Fehler im falschen Pfad?
Wenn wir Programme schreiben, ist es unvermeidlich, dass es Probleme gibt (Probleme treten häufig auf ), und wenn PHP auf einen Fehler stößt, gibt es den Speicherort, die Zeilennummer und den Grund dafür an das Fehlerskript
Viele Leute sagen, es sei keine große Sache. Tatsächlich spielt das in der Debugging-Phase keine Rolle, und ich halte die Angabe des Fehlerpfads für notwendig.
Aber die Folgen des Durchsickerns des tatsächlichen Pfads sind unvorstellbar. Für einige Eindringlinge sind diese Informationen tatsächlich sehr wichtig.
Einige Netzwerkadministratoren setzen display_errors in der PHP-Konfigurationsdatei einfach auf Aus, um das Problem zu lösen (anscheinend haben wir das getan), aber ich denke, diese Methode ist zu negativ.
Manchmal brauchen wir PHP wirklich, um Fehlerinformationen zum Debuggen zurückzugeben. Und wenn etwas schief geht, müssen Sie dem Benutzer möglicherweise auch eine Erklärung geben oder sogar zu einer anderen Seite navigieren.
Also, was ist die Lösung?
PHP stellt seit 4.1.0 die Funktion set_error_handler() zum Anpassen von Fehlerbehandlungs-Handles zur Verfügung, aber nur wenige Skriptautoren kennen sie.
Die Verwendung von set_error_handler ist wie folgt:
PHP-Code
1 |
|
Zum Beispiel: Angenommen, es gibt eine Variable $admin, wir werden verwendet, um zu bestimmen, ob der Besucher ein Administrator ist (diese Bestimmung kann anhand der IP oder der angemeldeten Benutzer-ID erfolgen)
PHP-CodeAuf diese Weise wird eine Fehlerbehandlungsfunktion angepasst. Wie kann man also die Fehlerbehandlung an diese benutzerdefinierte Funktion übergeben?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
|
PHP-Code
so easy,这样,就可以很好地解决安全和调试方便的矛盾了。而且你还可以花点心思,使错误提示更加美观以配合网站的风格。
原作者给出了两点需要注意的地方,我也放出来吧,希望引起广大同胞们的注意:
E_ERROR、E_PARSE、E_CORE_ERROR、E_CORE_WARNING、 E_COMPILE_ERROR、E_COMPILE_WARNING是不会被这个句柄处理的,也就是会用最原始的方式显示出来。不过出现这些错误都是编 译或PHP内核出错,在通常情况下不会发生。
使用set_error_handler()后,error_reporting ()将会失效。也就是所有的错误(除上述的错误)都会交给自定义的函数处理。
最后,原作者又给出了一个示例(真是个认真负责的好人哈。呵呵)
Php代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 |
|
嗯,根据上面的那些解释,以及原作者认真负责的态度,我想如果我还学不会这个set_error_handler函数,那么我真该去撞墙了。
好了,总结一下,下面是 set_error_handler 三种用法:
Php代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
|
相关推荐:
有关php set_error_handler()函数的文章推荐10篇
Das obige ist der detaillierte Inhalt vonDetaillierte Verwendung von PHP set_error_handler(). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!