Mailinglisten-Archive |
> Georg Leitner schrieb: > > Liebe Liste, > ich hänge immer noch an dem Problem, stinknormale Perl-Scripts aus Php > (3.0.16 unter W2K auf Xitami 2.4 / 3.0.16 unter Linux auf Apache > 1.3.12) aufzurufen. > > was nehm ich jetzt ? virtual(), exec(), include? > > Wichtig für mich ist, dass ich dem Perl-Script ein paar (auch längere) > Variablen mit auf den Weg geben kann und den Output irgendwie > zurückgeliefert bekomme. > > Scheinbar bin ich mit dem Problem nicht ganz alleine - aber leider > fehlen die Antworten im Listarchiv :) > Niemand ist wirklich allein....... Spass beiseite. Sorry fuer die spaete Antwort, aber die Anworten lagen im Buero und zuhause fehlte die Motivation. Fuer ein Projekt (das mit PHPlib realisiert wurde) war es aber von Nöten mit Crypt anstelle der MD5 verschluesselten Passwörter zu verwenden. Im Rahmen der Plattformkompatiblitaet musste das ganze auch unter Windows(NT.4.0) laufen. Das war nur mit Hilfe von Perl zuschaffen. Leider war es zum verrecken nicht zu schaffen mit dem Beispiel was ueber die ML (trotzdem nochmal Danke an "ritze") kam unter Windows (steht evtl. sogar im Manual) Perl mit dem Parameter -e aufzurufen. Backticks hin oder her.... unter *nix ging es sofort. Aber wenn der Prophet nicht zum Berge kommt dann halt anders herum... Somit wurde ein ein externes Perlscript aufgerufen und ihm zusaetzlich ein paar Parameter mit auf dem Weg gegeben. <? // snip $cmd = "perl $DOCUMENT_ROOT/pages/admin/crypt.pl $pass $salt"; exec("$cmd",$auth_array,$err); $password = $auth_array[0]; ?> Perl steht natuerlich im Pfad. Ansonsten halt den genau angeben "c:/perl/bin/perl.exe". Die Funtion exec() liefert Standardmessig nur die letzte Zeile zurueck (die war oftmals leer (evtl. der Fehler bei dir?)). und deshalb der Weg ueber das Array. $err enthaelt einen Status/Fehlercode. Im Perl Script selbst kannst du dann mittels $ARGV[0]... auf die uebergegebenen Parameter zugreifen. Script crypt.pl --------------- print crypt("$ARGV[0]","$ARGV[1]"); Schoene gruesse aus dem sonnigen Wuerzburg.. in Hannver hat es heute morgen noch geregnet. -- Key fingerprint = 92 7D E0 A6 CF AE EC 32 14 28 EF 0D 57 2A 88 5B ---------------------------------------------------------------------- TakeNet GmbH Mobil: 0171/60 57 963 D-97080 Wuerzburg Tel: +49 931 903-2243 Alfred-Nobel-Straße 20 Fax: +49 931 903-3025
php::bar PHP Wiki - Listenarchive