ursus contionabundo: Vollständige Lösung?

Beitrag lesen

Ich bezog mich explizit nicht auf das error-reporting.

Das ist mir klar. Das stand aber in der gelobten Antwort halt mit drin.

Ich denke, die umfassendste Antwort ist:

try {
    ### Wenn PHP in $file erwartet wird und "abgearbeitet" werden soll:
    ## Falls Datei sonst womöglich mehrfach geöffnet wird:
    # require_once( $file ); 
    ## Falls Datei NICHT womöglich mehrfach geöffnet wird: 
    # require( $file ); 
    ### Falls Inhalt nur ausgegeben werden soll: 
    readfile( $file );
} catch ( Exception $e ) {
    echo 'Exception abgefangen: ',  $e->getMessage(), "\n";
    # (oder was auch immer geschehen soll.)
}

Die löst auch das Problem, dass die Datei womöglich in der Tausenstelsekunde zwischen is_file() && is_readable() und dem Leseversuch gelöscht wird.