2010-03-18 9 views
15

ich fopen bin mit aus einer Datei lesenDetaillierte Fehler auf fopen

$fh = fopen($path, 'r') or die('Could not open file'); 

Jetzt kann ich contantly Fehler Datei nicht öffnen. Ich überprüfte den Dateipfad und änderte sogar die Berechtigungen der Datei auf 777. Gibt es eine Möglichkeit, wie ich einen detaillierten Fehlerbericht bekommen kann, warum die Datei nicht ähnlich wie mysql_error() geöffnet werden kann?

Antwort

24

Aktivieren Sie die Fehlerberichterstattung, oder in einer Produktionsumgebung (ab PHP 5.2.0) sollten Sie auch error_get_last() verwenden können.

+0

oh, erhalten \ _Last \ _error() ... das ist besser als php \ _errormsg $. Lösche meine Antwort zugunsten dieser Funktion. – VolkerK

+2

Keine Notwendigkeit, es zu löschen. Vielleicht ist er an einem Projekt (wie ich es gerade bin), das nur 5.1 hat! – webbiedave

+0

überzeugt ...... – VolkerK

3

Ja.
PHP hat detaillierte Fehlermeldung für Sie.
Sie müssen es nur einschalten.

Um es auf dem Bildschirm fügen Sie diese zwei Zeilen am Anfang des Skripts Dislay:

ini_set('display_errors',1); 
error_reporting(E_ALL); 

Oder wenn Sie es wollen stattdessen angemeldet sein,

ini_set('log_errors',1); 
ini_set('display_errors',0); 
error_reporting(E_ALL); 

Beachten Sie auch, dass Matrize mit() ist eine sehr schlechte Übung.

12

Für PHP-Versionen vor 5.2 (fehlende error_get_last()) können Sie track_errors verwenden.

ini_set('track_errors', 1); 
$fh = fopen('lalala', 'r'); 
if (!$fh) { 
    echo 'fopen failed. reason: ', $php_errormsg; 
} 

siehe auch: http://de.php.net/reserved.variables.phperrormsg

+1

+1 vor 5.2 Installationen sind noch da. Nett, wusste das nicht! –

+1

+1 wieder - wusste nicht über die track_errors ini var, das ist praktisch :-) – richsage

0
$fh = fopen($path, 'r') or die (error_get_last());