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.