Wie Fehlermeldungen bekommen bei Aufruf einer Funktion ueber system() u. ae.?

22/10/2013 - 17:52 von Gustaf Mossakowski | Report spam
Hi,

ist es möglich, beim Aufruf eines Programms mit system(), exec() oder
àhnlichen Funktionen auf dem Webserver die Fehlernachricht des Programms
(hier: ImageMagicks convert) in PHP zu bekommen?

Mein Versuch:

| $string = exec('convert -thumbnail120x120 bla.jpg bla-klein.jpg',
| $output, $return_var);

ergibt

$string: false
$output: array()
$return_var: 1

Gibt es einen Schlüssel, was die 1 bedeutet? (Es kommen auch höhere
Werte vor, je nach Fehler vermutlich.)

Wenn ich das gleiche in der Shell eingebe, erhalte ich:

| Gustaf$ convert -thumbnail120x120 bla.jpg bla-klein.jpg
| convert: unrecognized option `-thumbnail120x120' @
| error/convert.c/ConvertImageCommand/2945.

Komme ich irgendwie an diese Fehlermeldungen über PHP dran?

Viele Grüße
Gustaf
 

Lesen sie die antworten

#1 Bjoern Hoehrmann
22/10/2013 - 18:17 | Warnen spam
* Gustaf Mossakowski wrote in de.comp.lang.php:
ist es möglich, beim Aufruf eines Programms mit system(), exec() oder
àhnlichen Funktionen auf dem Webserver die Fehlernachricht des Programms
(hier: ImageMagicks convert) in PHP zu bekommen?

Mein Versuch:

| $string = exec('convert -thumbnail120x120 bla.jpg bla-klein.jpg',
| $output, $return_var);

ergibt

$string: false
$output: array()
$return_var: 1

Gibt es einen Schlüssel, was die 1 bedeutet? (Es kommen auch höhere
Werte vor, je nach Fehler vermutlich.)



Das ist der Rückgabewert des Programms und eine Aufschlüsselung müsste
man in der Dokumentation des Programms suchen. Da steht allerdings "The
ImageMagick command-line tools exit with a status of 0 if the command
line arguments have a proper syntax and no problems are encountered.
Expect a descriptive message and an exit status of 1 if any exception
occurs such as improper syntax, a problem reading or writing an image,
or any other problem that prevents the command from completing
successfully."

Eventuell http://www.imagemagick.org/script/exception.php aber ich sehe
immer nur `1` als Rückgabewert.

Wenn ich das gleiche in der Shell eingebe, erhalte ich:

| Gustaf$ convert -thumbnail120x120 bla.jpg bla-klein.jpg
| convert: unrecognized option `-thumbnail120x120' @
| error/convert.c/ConvertImageCommand/2945.

Komme ich irgendwie an diese Fehlermeldungen über PHP dran?



Die Fehlermeldungen werden nach `stderr` geschrieben, mit `proc_open`
làsst sich die Abfangen. Alternativ kann man gemeinhin die Shell bitten
`stderr` nach `stdout` umzuleiten mittels `convert ... 2>&1`, dann würde
die Fehlermeldung in deinem `$output` oben landen.
Björn Höhrmann · mailto: · http://bjoern.hoehrmann.de
Am Badedeich 7 · Telefon: +49(0)160/4415681 · http://www.bjoernsworld.de
25899 Dagebüll · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

Ähnliche fragen