php Fehlerbehandlung

Neue Frage »

Auf diesen Beitrag antworten »
InformaTiger php Fehlerbehandlung

Hallo,
ich möchte auf meiner Website die Funktion glob() zum aufrufen des Verzeichnisinhaltes verwenden und habe das auch hinbekommen. Nun wenn das Verzeichnis leer ist sollte er mir einen bestimmten Text ausgeben. Das wollte ich ungefähr so machen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
 //...

try
{
     foreach (glob($search) as $path)  						
     {
         //Liest aus der Datei das Erstelldatum heraus
         $docsByCreateTime[filectime($path)] = $path;
     }
}
catch (Exception $e)
{
     echo "Text der ausgegeben werden soll";
     return; // Methode soll danach beendet werden
}

//...


Nun habe ich, aber das Problem, dass immer die Fehlermeldung trotzdem kommt.

Ich habe leider keine Ahnung was ich falsch gemacht habe.

verwirrt

Lg
InformaTiger
 
Auf diesen Beitrag antworten »
eulerscheZahl

Ich bin in php leider recht ahnungslos - habe gerade auch keine Zeit das zu testen (vielleicht heute Abend), aber:
foreach() mit einem leeren Array sollte eigentlich kein Problem darstellen - es wird nur eben einfach nichts gemacht (also auch keine Exception). Beziehen sich die Zeilenangaben in der Fehlermeldung überhaupt auf diesen Teil? Entspricht Zeile 5 der Zeile 62?
Versuche mal, die Größe des Arrays, den dir glob() zurückgibt, auf >0 zu testen.
Auf diesen Beitrag antworten »
Airblader

Edit:

Wenn man nach "glob invalid argument foreach" (o.ä.) sucht[1], dann findet man dazu einiges. Zum Einen könnte dein Argument für glob() falsch sein, zum anderen könnte dich hier ein Problem treffen, das in der glob-Dokumentation im "Note"-Teil unter "Return Values" beschrieben ist. Auf jeden Fall gilt es, beide Dinge mal zu überprüfen.

Eine mögliche Lösung könnte also evtl. so aussehen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
$content = glob($search);
if (!is_array($content) || count($content) == 0) {
    return false;
}

foreach ($content as $path) {
    // ...
}


[1] InformaTiger, du solltest dir sowas übrigens unbedingt angewöhnen!
Auf diesen Beitrag antworten »
InformaTiger

Ich habe den Fehler jetzt behoben... es war einfacher als ich dachte.
Tanzen

@Airblader: Jedenfalls habe ich mir das googeln, jetzt angewöhnt.

Danke für die Hilfe.

Lg
InformaTiger
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »