Bense: Perl in PHP

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

  1. 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

    --
      Schnee :) Skitour gefällig?
      http://harry.ilo.de/projekte/berge/
    1. 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

      1. 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

        --
          Schnee :) Skitour gefällig?
          http://harry.ilo.de/projekte/berge/
      2. 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

        --
        Lass dir das Tanzen NICHT verbieten
        http://tanzverbot.de
        1. 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

          --
            Schnee :) Skitour gefällig?
            http://harry.ilo.de/projekte/berge/