PHP Crash vermeiden

Liebe PHP Profis,

wie kann man ein php include ignorieren, wenn das File einen fehler/bug hat?

Sprich:

  • file.php okay:
    include(file.php);
  • file.php nicht okay:
    ignore include(file.php);

Vorschläge?

Siehe „ErrorException“ in php Hilfe. Ein try catch block sollte reichen

try {
   include 'file.php';
 } catch (ErrorException $ex) {

}

Danke kalle234

wird in dem Fall ErrorException auch benötigt?

Ja. So:

function exception_error_handler($errno, $errstr, $errfile, $errline ) {
    throw new ErrorException($errstr, $errno, 0, $errfile, $errline);
}
set_error_handler("exception_error_handler");


 try {
   include 'file.php';     
 } catch (ErrorException $ex) {
      echo "include fehler\n";
 }

 echo "Mache trotzdem weiter ...\n";

Muss mich verbessern. Die Lösung geht nicht. Scheint ein ungelöstes Problem zu sein.
Gibt nur einen „dirty hack“

 function ChkInc($file){
   return file_exists($file) && (substr(exec("php -l $file"), 0, 28) == "No syntax errors detected in");
 }
 if (ChkInc("file.php")) {
  include 'file.php';
} else {
  echo "parse error in file.php\n";
}

Das ist nicht schön, würde aber funktionieren wenn man es unbedingt braucht. Voraussetzung ist, dass php im cli modus (Kommandozeile) installiert ist

Danke