PHP Forum

PHP Forum (http://www.selfphp.de/forum/index.php)
-   PHP für Fortgeschrittene und Experten (http://www.selfphp.de/forum/forumdisplay.php?f=13)
-   -   xmlrpc - rückgabe von array und objekten (http://www.selfphp.de/forum/showthread.php?t=22457)

bibabu 22.11.2009 15:10:23

xmlrpc - rückgabe von array und objekten
 
Guten Tag!

Ich hänge schon länger an einem Problem mit php5-xmlrpc. Mein Client sendet eine Anfragen an meinen Server und fordert die methode getLog und übergibt keinen Parameter. Mein Server verbindet sich nun zu einem Mumbleserver (eine VoIP Anwendung, ähnlich TeamSpeak) und fragt von diesem das Logfile ab. Der Mumbleserver gibt eine kombination aus Arrays und Objekten zurück. Diese Rückgabe möchte ich auch über meine XMLRPC Schnittstelle weiterleiten.

Typische xmlrpc antwort:

Code:

<?xml version="1.0" encoding="iso-8859-1"?>
<methodResponse>
<params>
 <param>
  <value>
  <struct>
    <member>
    <name>method</name>
    <value>
      <string>getTree</string>

    </value>
    </member>
    <member>
    <name>message</name>
    <value>
      <string>success</string>
    </value>
    </member>

    <member>
    <name>tree</name>
    <value>
      <array>
      <data>
        <value>
        <struct>
          <member>

          <name>timestamp</name>
          <value>
            <int>1258894194</int>
          </value>
          </member>
          <member>
          <name>txt</name>

          <value>
            <string>Registration: Registration updated</string>
          </value>
          </member>
        </struct>
        </value>
        <value>
        <struct>

          <member>
          <name>timestamp</name>
          <value>
            <int>1258894194</int>
          </value>
          </member>
          <member>
          <name>txt</name>

          <value>
            <string><704:(-1)> Connection closed: The remote host closed the connection</string>
          </value>
          </member>
        </struct>
        </value>
        <value>

        <struct>
          <member>
          <name>timestamp</name>
          <value>
            <int>1258894193</int>
          </value>
          </member>
          <member>

          <name>txt</name>
          <value>
            <string><704:(-1)> New connection: 128.39.114.1:53268</string>
          </value>
          </member>
        </struct>
        </value>

        <value>
        <struct>
          <member>
          <name>timestamp</name>
          <value>
            <int>1258892277</int>
          </value>
          </member>

          <member>
          <name>txt</name>
          <value>
            <string><702:cell(-1)> Connection closed: The remote host closed the connection</string>
          </value>
          </member>
        </struct>

        </value>
      </data>
      </array>
    </value>
    </member>
  </struct>
  </value>
 </param>
</params>

</methodResponse>

Typische rückgabe des Mumbleservers

Code:

Array
(
    [0] => Murmur_LogEntry Object
        (
            [timestamp] => 1258894194
            [txt] => Registration: Registration updated
        )

    [1] => Murmur_LogEntry Object
        (
            [timestamp] => 1258894194
            [txt] => <704:(-1)> Connection closed: The remote host closed the connection
        )

    [2] => Murmur_LogEntry Object
        (
            [timestamp] => 1258894193
            [txt] => <704:(-1)> New connection: 128.39.114.1:53268
        )

    [3] => Murmur_LogEntry Object
        (
            [timestamp] => 1258892277
            [txt] => <702:cell(-1)> Connection closed: The remote host closed the connection
        )

)

Lasse ich diese Antwort nun von xmlrpc_decode dekodieren erhalte ich ein leeres array bzw. nichts. Also der Aufruf meldet mir überhaupt nichts zurück. Über Hinweiße wie ich dieses Problem lösen kann würde ich mich sehr freuen.

Realisiert habe ich das ganze mit: http://de.php.net/manual/de/book.xmlrpc.php. Externe Klassen habe ich nicht verwendet.

gruß Daniel

bibabu 30.11.2009 20:34:32

AW: xmlrpc - rückgabe von array und objekten
 
Konnte das Problem inzwischen lösen. Die Datei war als UTF-8 (mit BOM) kodiert. Diese Art der Kodierung hat die XML Rückgabe zerstört :-(


Alle Zeitangaben in WEZ +2. Es ist jetzt 15:28:59 Uhr.

Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.