Stefan Welscher: Perl-Script über PHP steuern

Hallo,
ich habe ein Perl-Script welches während des Ablaufes verschiedene Angaben vom Benutzer abfragt (Situationsabhängig, also eine Übergabe von Parametern beim Programmstart ist nicht möglich).

Jetzt suche ich nach einer Möglichkeit die Ausführung des Scriptes über ein Webinterface mit PHP anzustoßen und die Nachfragen des Scriptes an den Benutzer weiterzugeben. Dieser soll dann durch Texteingabe, die zunächst geprüft werden muss, das Script weiterlaufen lassen.

Gibt es eine Möglichkeit, das mit PHP zu realisieren?
Wenn ja, wie :) ?

Dank euch!

  1. Moin!

    ich habe ein Perl-Script welches während des Ablaufes verschiedene Angaben vom Benutzer abfragt (Situationsabhängig, also eine Übergabe von Parametern beim Programmstart ist nicht möglich).

    Jetzt suche ich nach einer Möglichkeit die Ausführung des Scriptes über ein Webinterface mit PHP anzustoßen und die Nachfragen des Scriptes an den Benutzer weiterzugeben. Dieser soll dann durch Texteingabe, die zunächst geprüft werden muss, das Script weiterlaufen lassen.

    Sowas funktioniert nicht im HTTP-Kontext.

    Bestenfalls (und die Frage ist, ob dein Skript das toll findet, oder es überhaupt zuläßt - die Situation könnte sich ja ändern) könntest du jeweils das Skript bis zur ersten Frage laufen lassen, die Frage per PHP dann an den Browser reichen und das Skript abbrechen. In einer Session sammelst du dann die Antwort, startest das Perl-Skript erneut, gibst auf alle Fragen die bisher gesammelten Antworten und brichst wie oben geschildert erneut ab, wenn eine Frage kommt, zu der du noch keine Antwort gesammelt hast.

    Funktioniert, solange das Perl-Skript immer die gleichen Fragen stellt, vermutlich einigermaßen.

    Schlauer wäre, das Perl-Skript auf den Müll zu werfen und dessen Aktionen in einer HTTP-fähigen Version entweder in Perl oder in PHP neu zu realisieren.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hey,

      Schlauer wäre, das Perl-Skript auf den Müll zu werfen und dessen Aktionen in einer HTTP-fähigen Version entweder in Perl oder in PHP neu zu realisieren.

      nicht so eilig mit der Datenvernichtung, man kann doch prima einen Wrapper auf Grundlage von expect schreiben, der auf der einen Seite über TTY mit dem Programm redet und auf der anderen Seite über HTTP mit dem Browser.
      http://search.cpan.org/dist/Expect
      http://php.net/expect

      --
      水-金-地-火-木-土-天-海-冥
      1. Moin!

        nicht so eilig mit der Datenvernichtung, man kann doch prima einen Wrapper auf Grundlage von expect schreiben, der auf der einen Seite über TTY mit dem Programm redet und auf der anderen Seite über HTTP mit dem Browser.

        Das war genau meine Absicht - nur: Wie schaffst du es, auf der einen Seite exakt EINEN Prozess mit dem PHP-Skript zu starten, welcher seinerseits wieder mit dem Perl-Skript kommuniziert, welches nur in der Lage ist, in einer interaktiven Shell-Session die Konfigurationsdaten abzufragen, während auf der anderen Seite alle Abfragen in einem Frage-Antwort-Spielchen mit HTTP geregelt werden, was garantiert, dass die Browserantwort nicht den gleichen Apache-Prozess erwischen kann, weil der ja noch beschäftigt ist mit dem Perl-Skript, und deshalb nicht zur Bearbeitung neuer HTTP-Requests verfügbar ist?

        - Sven Rautenberg

        --
        "Love your nation - respect the others."