Hi,
I have added an example to the errorfunc.restore_error_handler function. Diff is attached.
--
Regards,
David Mytton Olate Ltd http://www.olate.co.uk
? errorfunc.restore-error-handler.xml.diff
Index: restore-error-handler.xml
===================================================================
RCS file:
/repository/phpdoc/en/reference/errorfunc/functions/restore-error-handler.xml,v
retrieving revision 1.5
diff -u -r1.5 restore-error-handler.xml
--- restore-error-handler.xml 14 Dec 2004 11:53:48 -0000 1.5
+++ restore-error-handler.xml 4 Apr 2005 16:18:05 -0000
@@ -26,6 +26,68 @@
<function>restore_exception_handler</function>,
<function>trigger_error</function>.
</para>
+ <para>
+ The example below shows the handling of internal exceptions by
+ triggering errors and handling them with a user defined function. It then
+ restores the original PHP error handling:
+ <example>
+ <title>
+ Error handling with <function>set_error_handler</function>,
+ <function>trigger_error</function> and
+ <function>restore_error_handler</function>
+ </title>
+ <programlisting role="php">
+<![CDATA[
+<?php
+// redefine the user error constants - PHP 4 only
+define("FATAL", E_USER_ERROR);
+define("ERROR", E_USER_WARNING);
+define("WARNING", E_USER_NOTICE);
+
+// set the error reporting level for this script
+error_reporting(FATAL | ERROR | WARNING);
+
+// error handler function
+function myErrorHandler($errno, $errstr, $errfile, $errline)
+{
+ switch ($errno) {
+ case FATAL:
+ echo "<b>My FATAL</b> [$errno] $errstr<br />\n";
+ echo " Fatal error in line $errline of file $errfile";
+ echo ", PHP " . PHP_VERSION . " (" . PHP_OS . ")<br />\n";
+ echo "Aborting...<br />\n";
+ exit(1);
+ break;
+ case ERROR:
+ echo "<b>My ERROR</b> [$errno] $errstr<br />\n";
+ break;
+ case WARNING:
+ echo "<b>My WARNING</b> [$errno] $errstr<br />\n";
+ break;
+ default:
+ echo "My unkown error type: [$errno] $errstr<br />\n";
+ break;
+ }
+}
+
+set_error_handler("myErrorHandler");
+trigger_error('Test error', ERROR);
+
+restore_error_handler(); // Will restore standard PHP handler
+trigger_error('Test error', ERROR);
+?>
+]]>
+ </programlisting>
+ &example.outputs;
+ <screen>
+<![CDATA[
+My ERROR [512] Test error
+
+Warning: Test error in C:\Program Files\Apache
Group\Apache2\htdocs\readdir.php on line 45
+]]>
+ </screen>
+ </example>
+ </para>
</refsect1>
</refentry>
