ursus contionabundo: Fehlermeldung unterdrücken

Beitrag lesen

Hi, (wie) kann ich die Fehlermeldung unterdrücken, wenn die Datei, die in require_once angegeben ist, nicht vorhanden ist?

if ( is_file( $file ) && is_readable( $file ) ) {
   require_once( $file );
}

Das ist aber blöd, denn dann stellt sich die Frage warum in aller Welt require_once und nicht include_once verwendet werden soll?

Die bei Verwendung von include_once im Fehlerfall fällige Warnung könnte man mit error_reporting( E_ALL & ~E_WARNING ) unterdrücken.

Willst Du aber den Fehler (der ja keiner sein soll) abfangen und selbst reagieren, dann gehe entweder wie oben vor (da musst Du selbst an alles denken) oder probiere try … catch

try {
    require_once( $file );
} catch (Exception $e) {
    echo 'Exception abgefangen: ',  $e->getMessage(), "\n";
}

Eine Frage bleibt noch: Willst Du nicht vielleicht lieber readfile( $file )? Erwartest Du denn PHP in der zu inkludierenden Datei? Falls nicht kann Dein Vorhaben in einer Katastrophe enden.