PHP als Shellskript, Return Code
Hallo, ich verwende ganz gerne PHP als alternative zu Perl Jedoch habe ich bisher keine schone Moeglichkeit gefunden eine Fehler Code beim Beenden zurueckzugeben. Zwar laesst sich das mit "die(NR.)" bewerkstelligen allerdings wird NR. dann auch gleich auf dem Standardout ausgegeben! mfg matthias
* Matthias Bernges
Hallo,
ich verwende ganz gerne PHP als alternative zu Perl Jedoch habe ich bisher keine schone Moeglichkeit gefunden eine Fehler Code beim Beenden zurueckzugeben. Zwar laesst sich das mit "die(NR.)" bewerkstelligen allerdings wird NR. dann auch gleich auf dem Standardout ausgegeben! Das Verhalten sehe ich nur bei die("$NR"). die($NR) funktioniert allerdings ohne weiteres:
,---------------------- | [~] rene@borg> cat t.php | #!/usr/bin/php4 -q | <? | die(-1); | ?> | [~] rene@borg> ./t.php || echo "b" | b | [~] rene@borg> `---------------------- Ich nehme mal an, dass Du die("$NR") anstatt die($NR) gemacht hast. Beste Gruesse, Rene Schleicher
Am Wed, 12 Mar 2003 15:08:04 +0100 schrieb Rene Schleicher
* Matthias Bernges
[030312 13:02]: Hallo,
ich verwende ganz gerne PHP als alternative zu Perl Jedoch habe ich bisher keine schone Moeglichkeit gefunden eine Fehler Code beim Beenden zurueckzugeben. Zwar laesst sich das mit "die(NR.)" bewerkstelligen allerdings wird NR. dann auch gleich auf dem Standardout> ausgegeben! Das Verhalten sehe ich nur bei die("$NR"). die($NR) funktioniert allerdings ohne weiteres:
,---------------------- | [~] rene@borg> cat t.php | #!/usr/bin/php4 -q | <? | die(-1); | ?> | [~] rene@borg> ./t.php || echo "b" | b | [~] rene@borg> `----------------------
Ich nehme mal an, dass Du die("$NR") anstatt die($NR) gemacht hast.
Scheint wohl von noch mehr abzuhaengen. Welche PHP Version verwendest du? Bei mir mit PHP 4.1.0: -------------------------------------- matthias@aldi:~/bin> cat test.php #!/usr/bin/php -q <?PHP die(-1); ?> matthias@aldi:~/bin> ./test.php || echo b -1b matthias@aldi:~/bin> -------------------------------------- mfg matthias ps: Bei dir ist die Reply-To Zeile im Header gesetzt, das verwirrt mein Mailprogramm etwas, so das ich deine Adresse manuell durch die Mailinglistenadresse ersetzen muss.
Hallo Matthias, Am 2003-03-12 13:02 schrieb Matthias Bernges:
Hallo,
ich verwende ganz gerne PHP als alternative zu Perl Jedoch habe ich bisher keine schone Moeglichkeit gefunden eine Fehler Code beim Beenden zurueckzugeben. Zwar laesst sich das mit "die(NR.)" bewerkstelligen allerdings wird NR. dann auch gleich auf dem Standardout ausgegeben!
Vielleicht hilft ja sowas ? ---test.php--- !#/usr/bin/php <? echo "Beende mit Fehler\n"; exit(23); ?> -------------- # chmod +x test.php # ./test.php Beende mit Fehler # echo $? 23 Gruß Martin
Hallo, wie kann man eigentlich Parameter an ein PHP-Shell Script übergeben ??? Wäre nett, wenn das auch noch einer wüsste Danke Gruß Marco
Hallo Matthias,
Am 2003-03-12 13:02 schrieb Matthias Bernges:
Hallo,
ich verwende ganz gerne PHP als alternative zu Perl Jedoch habe ich bisher keine schone Moeglichkeit gefunden eine Fehler Code beim Beenden zurueckzugeben. Zwar laesst sich das mit "die(NR.)" bewerkstelligen allerdings wird NR. dann auch gleich auf dem Standardout ausgegeben!
Vielleicht hilft ja sowas ?
---test.php--- !#/usr/bin/php <? echo "Beende mit Fehler\n"; exit(23); ?>
--------------
# chmod +x test.php # ./test.php Beende mit Fehler # echo $? 23
Gruß Martin
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Am Thu, 13 Mar 2003 14:37:46 +0100 (CET) schrieb
Hallo,
wie kann man eigentlich Parameter an ein PHP-Shell Script übergeben ??? Wäre nett, wenn das auch noch einer wüsste
$_SERVER["argv"] ist das Array mit den Parametern (wobei $_SERVER["argv"][0] der Dateiname ist) und $_SERVER["argc"] die Anzahl der Parameter
Danke Gruß Marco
Hallo Matthias,
Am 2003-03-12 13:02 schrieb Matthias Bernges:
Hallo,
ich verwende ganz gerne PHP als alternative zu Perl Jedoch habe ich bisher keine schone Moeglichkeit gefunden eine Fehler>> Code beim Beenden zurueckzugeben. Zwar laesst sich das mit "die(NR.)">> bewerkstelligen allerdings wird NR. dann auch gleich auf dem>> Standardout ausgegeben!
Vielleicht hilft ja sowas ?
---test.php--- !#/usr/bin/php <? echo "Beende mit Fehler\n"; exit(23); ?>
--------------
# chmod +x test.php # ./test.php Beende mit Fehler # echo $? 23
Gruß Martin
-- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-linux-unsubscribe@suse.com Um eine Liste aller verfuegbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-linux-help@suse.com
Hallo Und wo war hier grad so schoen am PHPen sind: Kann man prinzipiell (von mir aus auch mit einen nicht PHP-Programm) Dateien mit GET anstatt mit POST uploaden. Der Trick bei der Sache ist das ich eine einfache Moeglichkeit suche automatisiert Dateien auf einen Server abzuloaden bei dem man davon ausgehen muss das er kein FTP oder sonstwas hat. Wenn das per GET ginge waer das top! z.B.: http://domain.de/skrip.php?datei=/home/ich/meine.datei waere ideal.
* On Fri, 14 Mar 2003 at 1:15 +0100, Matthias Bernges wrote:
Und wo war hier grad so schoen am PHPen sind: Kann man prinzipiell (von mir aus auch mit einen nicht PHP-Programm) Dateien mit GET anstatt mit POST uploaden. Der Trick bei der Sache ist das ich eine einfache Moeglichkeit suche automatisiert Dateien auf einen Server abzuloaden bei dem man davon ausgehen muss das er kein FTP oder sonstwas hat. Wenn das per GET ginge waer das top!
Kurze Antwort: Nein, ist nicht möglich: Lange Antwort: Alles ist möglich, wenn man nur genug Zeit reinsteckt. Das willst Du aber nicht wirklich. GET ist für Upload von Dateien eine denkbar ungeeignete Methode. -- Adalbert GPG welcome, request public key: mailto:adalbert+key@lopez.at
Am Fri, 14 Mar 2003 07:10:02 +0100 schrieb Adalbert Michelic
* On Fri, 14 Mar 2003 at 1:15 +0100, Matthias Bernges wrote:
Und wo war hier grad so schoen am PHPen sind: Kann man prinzipiell (von mir aus auch mit einen nicht PHP-Programm) Dateien mit GET anstatt mit POST uploaden. Der Trick bei der Sache ist das ich eine einfache Moeglichkeit suche automatisiert Dateien auf einen Server abzuloaden bei dem man davon ausgehen muss das er kein FTP oder sonstwas hat. Wenn das per GET ginge waer das top!
Kurze Antwort: Nein, ist nicht möglich:
Lange Antwort: Alles ist möglich, wenn man nur genug Zeit reinsteckt. Das willst Du aber nicht wirklich. GET ist für Upload von Dateien eine denkbar ungeeignete Methode.
Weisst du denn eine Alternative um Dateien einfach per HTTP abzuloaden? Wichtig ist allerdings dabei das es nach Windows portierbar ist! Kann man mit z.B. einem C-Programm einen POST-HTTP-Upload durchfuehren? mfg matthias
* On Fri, 14 Mar 2003 at 12:10 +0100, Matthias Bernges wrote:
Am Fri, 14 Mar 2003 07:10:02 +0100 schrieb Adalbert Michelic
: * On Fri, 14 Mar 2003 at 1:15 +0100, Matthias Bernges wrote:
Und wo war hier grad so schoen am PHPen sind: Kann man prinzipiell (von mir aus auch mit einen nicht PHP-Programm) Dateien mit GET anstatt mit POST uploaden. Der Trick bei der Sache ist das ich eine einfache Moeglichkeit suche automatisiert Dateien auf einen Server abzuloaden bei dem man davon ausgehen muss das er kein FTP oder sonstwas hat. Wenn das per GET ginge waer das top!
Kurze Antwort: Nein, ist nicht möglich:
Lange Antwort: Alles ist möglich, wenn man nur genug Zeit reinsteckt. Das willst Du aber nicht wirklich. GET ist für Upload von Dateien eine denkbar ungeeignete Methode.
Weisst du denn eine Alternative um Dateien einfach per HTTP abzuloaden? Wichtig ist allerdings dabei das es nach Windows portierbar ist! Kann man mit z.B. einem C-Programm einen POST-HTTP-Upload durchfuehren?
Ja, mit einem C-Programm geht es auf jeden Fall. Ist aber möglicherweise ein wenig aufwendiger sowas zusammenzustöpseln. Perl wäre z.B. eine mögliche Alternative, das gibts auch für Windows. Als Anlaufstelle können die folgende Manpages dienen: man LWP man HTTP::Request man HTTP::Request::Common In der letzteren steht beschrieben, wie der File-Upload realisiert wird. Schau Dir auch mal http://www.i-netlab.de/article/post.shtml an, da steht soweit ich gesehen habe, ein Skript, das Du fast 1:1 übernehmen könntest. Perl für Windows gibts von ActiveState. Wenn das nur unter Windows laufen soll, gehts vermutlich auch irgendwie den Internet Explorer über VBScript oder ähnliches Teufelszeug fernzusteuern ... -- Adalbert GPG welcome, request public key: mailto:adalbert+key@lopez.at
Am Fri, 14 Mar 2003 12:37:06 +0100 schrieb Adalbert Michelic
* On Fri, 14 Mar 2003 at 12:10 +0100, Matthias Bernges wrote:
Am Fri, 14 Mar 2003 07:10:02 +0100 schrieb Adalbert Michelic
: * On Fri, 14 Mar 2003 at 1:15 +0100, Matthias Bernges wrote:
Und wo war hier grad so schoen am PHPen sind: Kann man prinzipiell (von mir aus auch mit einen nicht PHP-Programm) Dateien mit GET anstatt mit POST uploaden. Der Trick bei der Sache ist das ich eine einfache Moeglichkeit suche automatisiert Dateien auf einen Server abzuloaden bei dem man davon ausgehen muss das er kein FTP oder sonstwas hat. Wenn das per GET ginge waer das top!
Kurze Antwort: Nein, ist nicht möglich:
Lange Antwort: Alles ist möglich, wenn man nur genug Zeit reinsteckt. Das willst Du aber nicht wirklich. GET ist für Upload von Dateien eine denkbar ungeeignete Methode.
Weisst du denn eine Alternative um Dateien einfach per HTTP abzuloaden? Wichtig ist allerdings dabei das es nach Windows portierbar ist! Kann man mit z.B. einem C-Programm einen POST-HTTP-Upload durchfuehren?
Ja, mit einem C-Programm geht es auf jeden Fall. Ist aber möglicherweise ein wenig aufwendiger sowas zusammenzustöpseln.
Perl wäre z.B. eine mögliche Alternative, das gibts auch für Windows.[...]
Dann muesste man aber aud jedem Rechner Perl installiere und das ist eigentlich nicht erwuenscht.
Wenn das nur unter Windows laufen soll, gehts vermutlich auch irgendwie den Internet Explorer über VBScript oder ähnliches Teufelszeug fernzusteuern ...
Sicher, aber wuerde dann nicht ein IE Fenster geoeffnet werden? Waere ziemlich stoerend. Ausserdem muestte ich dann ja VB lernen :-) mfg matthias
Hallo Matthias, Matthias Bernges schrieb:
Am Fri, 14 Mar 2003 12:37:06 +0100 schrieb Adalbert Michelic
: * On Fri, 14 Mar 2003 at 12:10 +0100, Matthias Bernges wrote: [...]
Weisst du denn eine Alternative um Dateien einfach per HTTP abzuloaden? Wichtig ist allerdings dabei das es nach Windows portierbar ist! Kann man mit z.B. einem C-Programm einen POST-HTTP-Upload durchfuehren?
Ja, mit einem C-Programm geht es auf jeden Fall. Ist aber möglicherweise ein wenig aufwendiger sowas zusammenzustöpseln.
Perl wäre z.B. eine mögliche Alternative, das gibts auch für Windows.[...]
Dann muesste man aber aud jedem Rechner Perl installiere und das ist eigentlich nicht erwuenscht.
[...] Schau dir mal die C++-Klassenbibliothek Qt an, gibt's für Linux (KDE!), Windows und so ziemlich die meisten Plattformen. Etwas einfacher zu handhaben als die Socketprogrammierung direkt in C, geht in 3 Zeilen (naja, noch ohne Fehlerhandling): QUrlOperator oUrlOp; oUrlOp.copy("file:/home/ich/meinedatei", "http://meinserver.com/", FALSE); (ungetestet, habe sowas bisher erst mit ftp gemacht!) Gruß Raimund
On Fri, Mar 14, 2003 at 12:10:10PM +0100, Matthias Bernges wrote:
Weisst du denn eine Alternative um Dateien einfach per HTTP abzuloaden?
24.3. Wie kann ich einen HTTP POST-Request mit Datei-Upload absenden? http://www.dclp-faq.de/q/q-code-upload.html Kristian
participants (7)
-
Adalbert Michelic
-
Kristian Koehntopp
-
Martin Knipper
-
Matthias Bernges
-
Raimund Hölle
-
Rene Schleicher
-
suse-linux@milisterfer.de