Variablenübergabe von Pearl zu PHP

Hallo zusammen!

Ich habe mal eine Frage:
Gibt es eine Möglichkeit ein Array, dass in einem Pearl-Skript erstellt worden ist, in PHP weiter zu verarbeiten?

Thx!

Greetz Mike

hierzu kann ich dir keine antwort geben,
aber ich freue mich mit dir,
dein erstes posting im forum begleitet zu haben.
aloha - digi

Was genau meinst du mit array?
Wenn es sich nur um ein internes(nur im Hauptspeicher) array handelt dann nicht. Falls du es aber irgendwie nach aussen weiter gibts(Festplatte, Socket, …) kannst du dieses natürlich mit php einlesen.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Was genau meinst du mit array?
Wenn es sich nur um ein internes(nur im Hauptspeicher) array
handelt dann nicht. Falls du es aber irgendwie nach aussen
weiter gibts(Festplatte, Socket, …) kannst du dieses
natürlich mit php einlesen.

Hallo!

Das ist leider auch mein Problem :frowning:
Je direkter die Übergabe ablaufen würde, desto besser.

Beschreibung meines Problems:
Ein Pearl-Skript stellt eine Verbindung zu einem DB-Server her und liest alle Einträge aus einer Datenbanktabelle aus.
Der Aufruf des Pearl-Skripts sollte vom PHP-Skript her laufen. Und das Resultat des Pearl-Skripts sollte in das alte PHP-Skript integriert, übergeben werden.

Greetz Mike

POST und GET Variablen kannst du natürlich übergeben, nur reicht das in deinem Fall wahrscheinlich nicht. Ausserdem müßte dann das Perl-Script das PHP Script wieder aufrufen. Wenn das Perl-Script aus der DB nur Daten rauszieht, würde ich das in PHP eher nachbilden.

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

POST und GET Variablen kannst du natürlich übergeben, nur
reicht das in deinem Fall wahrscheinlich nicht. Ausserdem
müßte dann das Perl-Script das PHP Script wieder aufrufen.
Wenn das Perl-Script aus der DB nur Daten rauszieht, würde ich
das in PHP eher nachbilden.

Hallo!

Auch hier herrscht ein Problem :smile:
Es handelt sich um eine Domino Datenbank, auf einen für mich für die Konfiguration nicht zugänglichen Server.

Ich bin mir zu 100% sicher, dass Perl auf diesem System so konfiguriert ist, dass der Zugriff auf die Datenbank funktioniert. Bei PHP kann ich das nicht sagen, da ich
a)die Erweiterung um das LDAP nicht installieren kann
b)keine Ahnung habe, nach was ich in der phpinfo() suchen muss um sicherzustellen, dass die Anbindung möglich ist
c)keine Ahnung habe, wie ich es evtl. über einen PHP-Aufruf testen kann.

Greetz Mike

POST und GET Variablen kannst du natürlich übergeben, nur
reicht das in deinem Fall wahrscheinlich nicht. Ausserdem
müßte dann das Perl-Script das PHP Script wieder aufrufen.
Wenn das Perl-Script aus der DB nur Daten rauszieht, würde ich
das in PHP eher nachbilden.

Hallo!

Auch hier herrscht ein Problem :smile:
Es handelt sich um eine Domino Datenbank, auf einen für mich
für die Konfiguration nicht zugänglichen Server.

POST und GET Variablen kannst du natürlich übergeben, nur
reicht das in deinem Fall wahrscheinlich nicht. Ausserdem
müßte dann das Perl-Script das PHP Script wieder aufrufen.
Wenn das Perl-Script aus der DB nur Daten rauszieht, würde ich
das in PHP eher nachbilden.

Hallo!

Auch hier herrscht ein Problem :smile:
Es handelt sich um eine Domino Datenbank, auf einen für mich
für die Konfiguration nicht zugänglichen Server.

ich nehme mal an, dass ein entsprechendes perlscript bereits laeuft, und das php und perl auf ein und der selben maschine laufen - wobei sich dann wieder die frage stellt, wieso du php ueberhaupt brauchst.

mir ist kein verfahren bekannt, mit denen man über semaphoren, shared mem. o.ä. perl+php koppeln koennte. deshalb wuerde ich ueber stdin/-out gehen. das ist am schnellsten zu implementieren, und mit sicherheit erfordert es weit weniger overhead als ein soap od. schlagmichtot zu implementieren. es hindert dich natuerlich niemand ueber die php-api eine extension zu bauen um direkt auf das array im speicher zuzugreifen, was aber dann nciht mehr sehr sinnvoll sien durefte.

dann wuerde ich das perl so modifizieren, dass es csv-daten od. einen xml-textstream ausgibt, und dann wie gestern abend im chat bereits erwaehnt:

./foo.pl|bar.php

oder in bar.php:

fopen(„stdout://foo.pl“)

Ja gehn tut das schon, aber es ist hald ein ziemliches durcheinanger.

Also:

  1. Das phpskript wird vom webserver mit parametern aufgerufen
  2. Das php-skript startet das perl-skript mit exec(„perl skript.pl $para1 $para2 …“) und uebergibt wieder Parameter
  3. Das Perl skript uebernimmt die Parameter in @ARGV
  4. Das Perl skript endet und schreibt das Array auf den STDOUT
  5. Das phpskript kann die antwort eines ausgefuehrten programms auslesen (siehe exec doku
    http://us2.php.net/manual/en/function.exec.php
    Aber vorsicht, php kann nur eine zeile auslesen (keine \n) also das array in einer zeile durch leerzeichen getrennt ausgeben.

Fertig

Zu unverstaendlich geschrieben ??

Levi

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

http://us2.php.net/manual/en/function.exec.php
Aber vorsicht, php kann nur eine zeile auslesen (keine \n)
also das array in einer zeile durch leerzeichen getrennt
ausgeben.

lies nochmal, wozu $output in der von dir zitierten quelle gut ist :wink:

OK, da haette ich mir wohl arbeit sparen koennen…

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]