Erhalte wichtige Informationen, wenn fopen () fehlschlägt (PHP / suPHP)

8

Wie bekomme ich etwas Sinnvolleres als 'FALSCH', wenn ich eine Datei nicht öffnen kann?

%Vor%

Wenn ich die die -Anweisung verwende, wird can't open file an den Client zurückgegeben und ist fast nutzlos. Wenn ich es entferne, wird kein Fehler ausgelöst. Wenn ich $fh zurückgebe, ist es FALSE . Ich habe sowohl den lokalen Dateinamen als auch den absoluten Dateinamen ausprobiert. Meine index.html -Datei befindet sich in einem der Unterordner meines Lochordners. Außerdem benutze ich suPHP mit dem Ordner, in den ich schreiben möchte, mit einer Erlaubnis von 0755 (suPHP benötigt dies für alle Ordner).

Wie finde ich heraus, warum ein Problem aufgetreten ist, oder frage es zumindest ab, bevor ich versuche, die Datei zu öffnen.

    
puk 05.11.2011, 06:56
quelle

2 Antworten

5

fopen sollte ein E_WARNING auslösen, wenn es fehlschlägt. Siehe error_get_last oder set_error_handler (*) um es zu fangen. Ansonsten können Sie file_exists und is_readable , um zu prüfen, ob die Datei fehlt oder ein anderes (wahrscheinlich permission-related) Problem vorliegt.

(*) Ich halte es für eine gute Vorgehensweise, immer einen Fehlerhandler zu setzen, der alle PHP-Fehler in Ausnahmen umwandelt.

    
mpartel 05.11.2011, 07:04
quelle
8

Verwenden Sie error_get_last (), um die (unterdrückten) Fehler in php abzufangen:

%Vor%     
deejayy 05.11.2011 07:01
quelle

Tags und Links