Perl script hívása PHP-ból

Hello!

Van egy Perl scriptem, ami így néz ki:

http://hup.pastebin.com/f5eff8bb8

(Mailman levlsita tagok szinkronizálása mysql-ből)

Ez így működik szépen parancssorból, crontabból is. Viszont felmerült az igény, hogy web felületről, PHP-ból is le lehessen ezt futtatni, mégpedig úgy, hogy a script kimenete látsszon a webfelületen.

PHP-ból a system() függvényhívással próbálom futtatni a Perl scriptet, de ezzel két probléma is van:

- csak az utolsó sort kapom vissza (pl ha többször egymás után több levlistára hívom meg a Perl sub-ot)
- a Perl script system() hívásának kimenete nem látszik PHP-ból, tehát annyit kapok vissza, hogy:

Synchronizing members for list: "listaneve" Synchronizing members for list: "listaneve" finished"------------------------------

, amit közben kiír a sync_members parancs, az nem látszik.

Átírtam a scriptet így: http://hup.pastebin.com/fb9ecef7 , ennek ellenére továbbra sem látszik PHP-ból a sync_members kimenete, pedig a mailman-out.txt file-ban ott van.

Az első hibára is várom az ötleteket, hogy illik ilyet csinálni? Köszönöm előre is a segítségeteket!

Petya

Hozzászólások

Az első problémára megvan a megoldás:

$out=array();
exec("per script amit futtatni akarok", $out);
print_r($out);

Viszont a másodikra nincs ötletem, az itt http://perldoc.perl.org/perlop.html#%60STRING%60 leírtak alapján működni kellene úgy, ahogy próbálkozom (file-ba átirányítani a kimenetet, majd kiíratni)

Petya

RTFM

Return Values

The last line from the result of the command. If you need to execute a command and have all the data from the command passed directly back without any interference, use the passthru() function.

To get the output of the executed command, be sure to set and use the output parameter.

--
The Net is indeed vast and infinite...
http://gablog.eu