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

Reply via email to