1) Include file not found:
if (file_exists($incfile))
include($incfile);
else
include ($error_html_file);
2) Error in file:
global $php_errormsg;
$php_errormsg = null;
@include($incfile);
$err = $php_errormsg;
if ($err)
echo "The include file $incfile has an error: $err";
The trick is to put an "@" before the include which will hide the error
(even if it's a critical one).
However, in case of a critical error, your script will silently be aborted.
Thus here's a solution to cature these cases:
3) Include and execute capturing critical errors:
$hf = fopen($incfile, 'r');
if ($hf) {
$buffer = fread($hf, filesize($incfile));
fclose($hf);
}
if ($buffer) {
global $php_errormsg;
$php_errormsg = null;
@eval($buffer);
$err = $php_errormsg;
}
The rest goes as above. The "eval" statement will gracefully handle any
critical error that would bring your script to an immediate halt in case of
@include.
HTH :)
----- Original Message -----
From: "Bob Lockie" <[EMAIL PROTECTED]>
To: "php-general Mailing List" <[EMAIL PROTECTED]>
Sent: Tuesday, February 04, 2003 6:11 PM
Subject: [PHP] HTML if no PHP
>
> I want to display an HTML page if PHP can't load an include file or
> otherwise has an error or just doesn't work.
> How do I do this?
>
>
> --
> ----------------------------------------
> Sent from Mozilla and GNU/Linux.
> Powered by an AMD processor.
>
>
> --
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
>
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php