shell_exec und Rückgabewert

kevkev

Erfahrenes Mitglied
Hallo,

Ich möchte gerne Fehlermeldungen von Programmen, die über shell_exec() ausgeführt worden sind, gerne irgendwie in PHP weiterverarbeiten.

Das Problem ist, das bei Fehlermeldungen einfach nicht angezeigt werden.
Z.b.:
PHP:
echo shell_exec("dir dirdenesnichtgibt");

Hier bekomme Ich keine Fehlermeldung wie in der Linux shell. Auch kann Ich die Fehlermeldung nicht in eine Datei schreiben lassen ( mit ">" ).

Wie komme Ich den nun am besten an die von Programm erzeugten Fehlermeldungen? :confused:

Danke.

Gruß Kevin
 
Es gibt tatsächlich einige Befehle, die keine Ausgabe übertragen.
Um zu überprüfen, ob es ein Verzeichnis gibt, würde ich dir die Funktion is_dir() vorschlagen oder wenn du den Weg über die Shell gehen willst, dann nutze zusätzlich den Befehl "ls". Unzwar wie folgt:

PHP:
$anything = shell_exec("dir irgendeindir && ls");
if(strlen($anything) == 0) {
  // Verzeichnis existiert nicht!
} else {
  // Verzeichnis existiert!
}

Ansonsten schau hier: http://de2.php.net/de/is_dir
 
Hi,

Das mit `dir` war nur ein Beispiel, es sollte natürlich auch mit anderen Befehlen funktionieren.

Habe aber die Lösung schon gefunden:
system() schreibt in die Variable bei einem Fehler eine "1" rein, wenn es eine Fehlermeldung gab. Eben wie in der shell $?.

Das reicht mir vorerst :).

Gruß Kevin
 
Zurück