Perl in PHP
Bense
- php
0 Harry0 Bense0 Harry0 Stefan Bach0 Harry
Hallo Zusammen!
Ich habe folgendes Problem, das zwar schon im Forum behandelt wurde, aber diese Threads haben mich zu keiner Lösung gebracht.
Wie kann ich ein Perl-Skript in PHP einbinden?
Ich muss verschiedene Geräte per Telnet abfragen. Das geht aber nur mit Perl zufriedenstellend und nicht mit PHP. Aber den Rest würde ich gerne mit PHP machen. Jetzt bräüchte ich folgendes: Ich muss das Perl-Skript aus PHP aufrufen und eine Variable übergeben. Danach sollte das Perl-Skript etwas zurückgeben. Am besten die Ausgabe von Telnet. Wie mache ich das?
Ich muss noch dazu sagen, dass ich auf einem Win-Server mit installiertem Apache arbeiten muss, ich weiss nicht, ob das die Sache noch erschwert?
Danke und Gruss
Bense
Holladiewaldfee,
Ich muss noch dazu sagen, dass ich auf einem Win-Server mit installiertem Apache arbeiten muss, ich weiss nicht, ob das die Sache noch erschwert?
exec() sollte Dein Problem lösen, wenn Du das Perl-Script in eine eigene Datei legst und dann den Perl-Interpreter aufrufst.
http://de.php.net/manual/en/function.exec.php
Ciao,
Harry
Nochmals hallo
Das scheint zu funktionieren, aber so kann ich ja keine Parameter mitgeben? Also perl irgendwas.pl?lksajfa scheint nicht zu funktionieren.
Ich hab's zwar mit einem HTTP-Request geschafft, aber hab auch gelesen, dass das eine sehr langsame Lösung sei.
Hat noch jemand eine Idee?
Gruss Bense
Holladiewaldfee,
Das scheint zu funktionieren, aber so kann ich ja keine Parameter mitgeben? Also perl irgendwas.pl?lksajfa scheint nicht zu funktionieren.
Nein, so geht's dann nicht. Wie's genau geht weiß ich auch nicht, aber ich tippe mal irgendwas in der Art "perl bla.pl meinparameter=17 watweissnich=blablubb". Oder so.
U.a. s.h. </archiv/2003/7/51305/>
Gefunden mit Google: http://www.google.de/search?sourceid=navclient&hl=de&ie=UTF-8&oe=UTF-8&q=Perl+Skript+Parameter+Kommandozeile
Ich hab's zwar mit einem HTTP-Request geschafft, aber hab auch gelesen, dass das eine sehr langsame Lösung sei.
Das ist anzunehmen, ja.
Ciao,
Harry
Hallo,
Das scheint zu funktionieren, aber so kann ich ja keine Parameter mitgeben? Also perl irgendwas.pl?lksajfa scheint nicht zu funktionieren.
Klar gehts nicht, du rufst das Programm ja auch nicht über einen HTTP Server auf. Du hast also zwei Möglichkeiten Parameter an dein Perl Programm zu schaffen.
1. Aufruf wie folgt:
./meinperlscript.pl Parameter1 Parameter2 Parameter3 ...
Die Parameter findest du dann in deinem Perl Script in einem Array abgelegt.
Wie das Array genau heißt sagt dir perlvar, ich glaube es ist @_ oder @ARG(S?) oder ähnliches.
2. Schicke die Daten an des Script, indem du sie in seine Standardeingabe schreibst.
Von dort kann sie dein Script dann einfach wieder auslesen. Ist fast wie HTTP Post.
Viele Grüße,
Stefan
Holladiewaldfee,
Wie das Array genau heißt sagt dir perlvar, ich glaube es ist @_ oder @ARG(S?) oder ähnliches.
Ich tippe mal, daß hier gewisse Ähnlichkeiten zwischen PHP und Perl bestehen. Dann ist's argv ;)
Ciao,
Harry