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>
 

Reply via email to