Das Ausführen von PHP bei gibt keine Ausgabe

Ich habe mit gerungenexec(), versuche die Ausgabe davon zu erfassen, wenn ich eine Aufgabe mit dem Befehlat Unix-Systembefehl. Mein Problem ist, dass es keine Ausgabe gibt, wenn es von meinem Skript ausgeführt wird, es jedoch vom Terminal ausgeführt wirdund PHP im interaktiven Modus druckt ein paar Zeilen aus.

Der Befehl, den ich ausführen möchte, lautet wie folgt:

echo exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);

var_dump() gibtstring(0) "", undprint_r() ausspuckenArray (). Ich habe versucht mitshell_exec(), welche AusgängeNULLjedoch die folgenden Ausgabenhi Beim Ausführen in einem Webseiten-Kontext:

echo exec("echo 'hi'");

Dies gibt auch Sachen aus:

echo exec("atq");

Allerdings sobald ich benutzeatwird nichts ausgegeben. Wie bekomme ich die Ausgabe von:

exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);

Weil es derzeit nichts ausgibt, wenn es von PHP über Apache als "normal" ausgeführt wird. Wenn ich den Befehl jedoch sowohl im Terminal als auch in der interaktiven Konsole von PHP ausführe, erhalte ich das erwartete Ergebnis von etwa:

php > echo exec("echo 'php -f /path/to/file.php foo=1' | at now + 1 minutes", $result);
warning: commands will be executed using /bin/sh
job 1219 at Sun Jun 10 12:43:00 2012

safe_mode ist aus, und ich kann nicht herausfinden, warum ich keine Ausgabe von bekommeat Bei der Ausführung wird eine Echoanweisung mit Pipe-In ausgegebenatq oder andere empfehlen mitexec() gibt mir die Ausgabe. Ich habe gesucht und gelesendiese FrageAlles ohne Erfolg.

Wie bekomme ichexec() um die Ausgabe von zurückzugebenat in eine Zeichenfolge oder ein Array, wenn ein zweites Argument mit verwendet wirdexec()?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage