ulli: CURL + Arrays

Beitrag lesen

Hallo Zusammen

Ich überlege schon eine geraume Zeit aber ich komme nicht hinter folgende Fragestellung: Wie kann ich mit Hilfe von CURL und POST-Übermittlung ein Array zurückgeben.

Zum Aufbau: Ich müsste vom Webserver einen lokalen (mit fester IP) Win2K-Server abfragen, damit dieser wiederum den lokalen Linux-Server abfragt. Warum so kompliziert? Weil es keinen ODBC Treiber für die Datenbank (C16) auf der Linuxkiste gibt. Nur einen für Win32. Deshalb der Umweg.

Ich würde dazu CURL benutzen. Bis jetzt ist mir nichts anderes eingefallen.
Habe aber das Problem, dass ich zwar das php-Script auf dem Win-Server mit Daten zur Datenbankabfrage füttern kann, habe es jedoch nicht geschafft das Ergebnis als Array zurückzugeben.

Ich benutze folgende Scripte:

  1. Webserver der die lokale Datenbank abfragen möchte:
    $c = curl_init('http://192.168.10.103/odbc_remote.php');
    ... die IP ist noch lokal zu Testzwecken
    curl_setopt($c, CURLOPT_POST, 1);
    curl_setopt($c, CURLOPT_POSTFIELDS, 'query=QUEYSELECT%20*%20FROM%20KundenDatei');
    curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
    $page = curl_exec($c);
    echo($page);
    curl_close($c);

  2. Das php-Script auf der Win32 Kiste

include("odbc.php");   //liefert die klasse db_ODBC und die dazugehörigen Methoden und Variablen
$db1 = new db_ODBC("database", "user", "password");
if (substr($_REQUEST["query"], 0, 4) == "EXEC") {
 $question = substr($_REQUEST["query"], 4);
 if (!$db1->execute($question))
  echo "NO";
 else
  echo "OK";
}
else {
 if(substr($_REQUEST["query"], 0, 4) == "QUEY") {
  $question = substr($_REQUEST["query"], 4);
                $db1->get_answer($question);
  return $db1->answer_array;
 }
}
$db1->disconnect();

... soweit so gut. Es klappt auch - die Datenbankabfrage. Ich kann jedoch zZ das Ergebnis nur auf dem Win2k-Server bearbeiten =( . Schon mal Dank das Du bis hier her gelesen hast =).

Gruß, Ulli