Moin Thomas,
On Sat, Dec 15, 2012 at 03:14:58PM +0100, Thomas Schmidt wrote:
Werden Fehler vom Webserver oder von PHP geloggt? Das Loggen von PHP-Fehlern ist doch recht unüblich.
Nunja, PHP-Skripte haben wie alle CLI-Tools eine Standardausgabe und eine Standard-Fehlerausgabe. Die Standardausgabe wird mit der Antwort an den Client befüttert, die Fehlerausgabe bekommen alle Fehlermeldungen mit. Der Webserver ruft also das Skript auf, und verarbeitet die beiden Ausgabe-Kanäle seperat, schreibt also die Fehler in das Error-Log und die Standardausgabe an den Client der ihn kontaktiert hatte.
Deine Schleife verstehe ich ebenso wenig.
- Du greifst auf ein Verzeichnis zu, das nicht existiert. Warum
prüfst du die Existenz nicht? Du wirst die Fehlermeldungen doch gesehen haben.
Eigentlich sollte man das vorher abgeprüft haben, denn das opendir() gibt schon einen Fehlerwert (FALSE) zurück.
- Dann wiederholst du den Zugriff in einem unglaublichen Tempo. Was
soll das? Geht da nicht ein delay()?
Das wiederholen hat eigentlich nur den Sinn, dass man alle Einträge aus dem Verzeichnis erhält, denn readdir() gibt immer nur einen Eintrag zurück und am Ende ein FALSE wenn keine weiteren Einträge vorhanden sind. Ein delay() macht da keinen sinn, denn wenn man wirklich ein Verzeichnis durchgeht will man nicht absichtlich warten. Sinn macht es nur, wenn man nicht in einem Kontext wie der Web-Entwicklung arbeitet (so z.B. wenn man einen Daemon schreibt)
- Und schließlich ist das Polling und potentiell endlose Wiederholen
ein schöner Ressourcen-Killer. Kann das Script nicht nach drei Fehlversuchen abbrechen, oder, besser, nur starten, wenn die benötigte Datei da ist?
Eigentlich sollte die Nicht-Existenz vorher abgeprüft worden sein, und daher die Schleife nie aufgerufen werden.
Gruß, Andre