Ankündigung

Einklappen
Keine Ankündigung bisher.

Weiterleitung von Programmausgaben auf Website

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Weiterleitung von Programmausgaben auf Website

    Hallo zusammen,

    ich habe zwar keine Ahnung von PHP, trotzdem ist mein Chef der Meinung, dass ich mich mal darin einarbeiten soll. Ziel ist letztendlich die Darstellung von weiterverarbeiteten Programmausgaben zur Laufzeit (Linux) auf einer Webseite. Damit das ganze nicht so abstrakt bleibt, stelle man sich folgendes Modellprogramm vor, das nichts weiter macht, als im Sekundenabstand von 1 bis 10 auf die Standardausgabe zu zählen:

    PHP-Code:
    #include <stdio.h>

    int main void )
    {
            
    int i;

            for ( 
    <= 10 i++ )
            {
                    
    sleep(1);
                    
    printf("%d\n"i);
            }

            return 
    i;

    Ich möchte nun eine Webseite mit drei Elementen erstellen:

    -oben ein Startbutton
    -mittig ein Textausgabefeld
    -unten ein Abbruchbutton

    Durch Klick auf den Startbutton soll - welch Wunder - das C-Programm gestartet werden. Immer dann, wenn das Programm eine Ausgabe erzeugt, soll die Summe aller bisherigen Ausgaben in dem Textausgabefeld angezeigt werden (1, 3, 6, 10, ...). Bei Klick auf den Abbruchbutton soll das C-Programm abgebrochen werden und eine andere Webseite angesteuert werden.

    Den Start und die IPC mit dem C-Programm müsste man, wenn ich das richtig verstanden habe, mittels proc_open realisieren können. Was mir noch nicht klar ist, wie ich die eintreffenden Nachrichten auf der Pipe weiterverarbeiten und von da aus auf die Webseite bringen kann. Sachdienliche Hinweise zur Lösung dieses Problems sind herzlich willkommen Wenn hier eine rege und fruchtbare Teilnahme entsteht, wäre ich gern dazu bereit, das ganze am Schluß in einem Tutorial zusammenzufassen.

    Mit freundlichen Grüßen

  • #2
    [man]exec[/man] und ähnliche Funktionen.

    Irgendwie klingt dein Lösungsansatz recht umständlich, es geht viel einfacher.

    Das Problem bei dem Startbutton ist, dass du einen neuen Request senden mussst um die Aktion von PHP auslösen zu lassen. Also brauchst du einen Reload/Weiterleitung oder AJAX.
    Den Abbruchbutton fungiert genauso wie Stopbutton im Browser, eine andere Möglichkeit fällt mir nicht ein.

    Kommentar


    • #3
      Zitat von PTC Beitrag anzeigen
      [man]exec[/man] und ähnliche Funktionen.
      Genau das führt nicht zum Ziel. Zwar ist es möglich, die Ausgabe des Programms an PHP zurückzuliefern. Das geschieht aber erst dann, wenn die Bearbeitung des externen Programms abgeschlossen ist - in diesem Beispiel also nach 10 Sekunden Wartezeit. Ich möchte die Ausgaben des externen Programms jedoch in Echtzeit weiterverarbeiten und auf einer Webseite darstellen.

      Irgendwie klingt dein Lösungsansatz recht umständlich, es geht viel einfacher.
      Wie?

      Das Problem bei dem Startbutton ist, dass du einen neuen Request senden mussst um die Aktion von PHP auslösen zu lassen. Also brauchst du einen Reload/Weiterleitung oder AJAX.
      Um eine asynchrone Technik wie AJAX komme ich wohl tatsächlich nicht rum. Von der Anzahl der möglichen Frameworks bin ich zur Zeit jedoch noch ein wenig erschlagen. Vielleicht hat jemand hier bei der Auswahl einen Tipp für mich und kann mich auch direkt auf eine passende Stelle in der Dokumentation stoßen?

      Kommentar


      • #4
        Soweit nach meinen Kenntnissen ich einzuschätzen weiß, gibt es keine Echtzeitverarbeitung bzw. Interaktion zwischen PHP und einem externen Programm.

        Kommentar


        • #5
          Zitat von Woodyboy Beitrag anzeigen
          Ich möchte die Ausgaben des externen Programms jedoch in Echtzeit weiterverarbeiten und auf einer Webseite darstellen.
          popen() / proc_open() könnte dir da weiterhelfen.

          Kommentar

          Lädt...
          X