Christian: Perl und PHP

Ich habe meine Seite auf PHP umstrukturiert, um u.a. auch auf immer den gleichen Fuß- und Kopfbereich (Navigation, News) zugreifen zu können. Nun habe ich einige Anwendungen, die in Perl geschrieben sind und wunderbar laufen. PHP-Anweisungen funktionieren aber im cgi-Verzeichnis nicht, so dass ich auch Fuß- und Kopfbereich nicht in die Datei einbinen kann.

Kann mir einer nen Tip geben, wie sowas doch läuft???

Danke, Christian

  1. Ich habe meine Seite auf PHP umstrukturiert, um u.a. auch auf immer den gleichen Fuß- und Kopfbereich (Navigation, News) zugreifen zu können. Nun habe ich einige Anwendungen, die in Perl geschrieben sind und wunderbar laufen. PHP-Anweisungen funktionieren aber im cgi-Verzeichnis nicht, so dass ich auch Fuß- und Kopfbereich nicht in die Datei einbinen kann.

    Kann mir einer nen Tip geben, wie sowas doch läuft???

    Mit <?php virtual("/cgi-bin/blabla.pl"); ?> Kannst Du eine Perl-Datei ausführen lassen.

    Hilft Dir das weiter?

    1. Mit <?php virtual("/cgi-bin/blabla.pl"); ?> Kannst Du eine Perl-Datei ausführen lassen.

      Hilft Dir das weiter?

      Ich hoffe mal, kann es erst abends probieren. Die Programme aus PHP ausführen zu lassen war mir noch gar nicht eingefallen, hört sich aber gut an.

      Jedenfalls Danke dafür.

      Christian

    2. Hilft Dir das weiter?

      Ich merke gerade, dass mir Dein Tip doch nicht weiterhelfen wird.

      Knackpunkt ist hier eine Suche (Perlfect-Search 3.20) und auf die kann ich ja mittels Formular zugreifen. Zur Ergebnisanzeige wird ein Template verwendet, dass standardmäßig auf html endet. Um nun header und footer ins Template einbinden zu können, muss ich die Datei auf php enden lassen. Die php-Anweisungen werden aber nicht ausgeführt. Da die Navigations- und Newsanzeige ja auch wieder per PHP eingebunden werden hilft es also auch nicht footer und header mal statisch einzubinden.

      Biite also weiter Tipps. Danke.

  2. Hallo,

    [...] PHP-Anweisungen funktionieren aber im cgi-Verzeichnis nicht, so dass ich auch Fuß- und Kopfbereich nicht in die Datei einbinen kann.

    Kann mir einer nen Tip geben, wie sowas doch läuft???

    Ich kenne mich zwar mit PHP nicht aus, aber ich denke doch, daß da eine ausführbare Datei existiert, welche man auch von der Shell aus aufrufen kann.
    Wenn beispielsweise
    php irgendeine_datei.php
    auf der Shell funktioniert, dann kannst Du unter Perl beispielsweise mit

    open(PHP,'/pfad/zu/php irgendeine_datei.php|') or die 'kann php datei nicht einbinden';
    print while (<PHP>);
    close(PHP) or die 'kann  php nicht schliessen';

    den php-interpreter starten, eine beliebige Datei interpretieren lassen und das Ergebnis in Perl wie von einer Datei einlesen und weiterbearbeiten (hier print).

    Ein Problem bleibt da noch. Wie kannst DU CGI-Parameter perl shell-Aufruf an PHP übergeben?
    Das müsste aber in der PHP-Dokumentation stehen.

    Grüße
      Klaus

    1. liest sich doch gut. Wenn ichs richtig verstanden habe, kann ich mit

      open(PHP,'/pfad/zu/php head.php|') or die 'kann php datei nicht einbinden';
      print while (<PHP>);
      close(PHP) or die 'kann  php nicht schliessen';

      Ausgabe der Suchergebnisse

      open(PHP,'/pfad/zu/php foot.php|') or die 'kann php datei nicht einbinden';
      print while (<PHP>);
      close(PHP) or die 'kann  php nicht schliessen';

      alles ausgeben?! Ich kanns erst heut abend ausprobieren.

      Ein Problem bleibt da noch. Wie kannst DU CGI-Parameter perl shell-Aufruf an PHP übergeben?
      Das müsste aber in der PHP-Dokumentation stehen.

      Das habe ich jetzt nicht ganz verstanden...

      Grüße
      Christian

      1. liest sich doch gut. Wenn ichs richtig verstanden habe, kann ich mit

        [...]

        alles ausgeben?! Ich kanns erst heut abend ausprobieren.

        Ja.

        Ein Problem bleibt da noch. Wie kannst DU CGI-Parameter perl shell-Aufruf an PHP übergeben?
        Das müsste aber in der PHP-Dokumentation stehen.
        Das habe ich jetzt nicht ganz verstanden...

        Naja, Du kannst ja ein PHP-Script in einem Browser mit dem URL
        http://www.irgendwo.de/irgend/eine/seite_mit.php?OPTION=wasauchimmer
        aufrufen.

        Wenn Du aber das PHP-Script aus Perl heraus startest, dann sollte der Parameter 'OPTION' ja auch dem PHP-Script weitergereicht werden können.
        MIt der HTTP-Moethode GET (so wie oben) sehe ich weniger Probleme, da ja die entsprechenden Parameter per Environment weitergegeben werden.
        Schwieriger ist es dagegen, wenn die Parameter per POST weitergeleitet werden sollen. Dann sollte das alles ja per STDIN ins Script übertragen werden. Jetzt hat aber Perl das schon für sich erledigt. Also wie kommen die Daten in das PHP-Script?

        Aber ich denke, daß das nicht Dein aktuelles Problem berührt.
        Naja, man macht sich halt so seine Gedanken.

        Grüße
          Klaus

        1. Aber ich denke, daß das nicht Dein aktuelles Problem berührt.
          Naja, man macht sich halt so seine Gedanken.

          Jedenfalls habe ich wieder was gelernt. Damit waren Deine Gedanken doch gut.

          Gruß, Christain