Seite 1 von 1

bug xml api

BeitragVerfasst: 3. Okt 2008, 22:19
von Gast
Hy,

ich versuche mir ein script in php5 zu basteln womit ich die userdaten auslesen kann, nur leider bekomme ich einfach kein erfolg da etwas wichtiges bei der programmierung (seitens des autors) etwas vergessen wurde. in der api werden namespaces benutzt, diese sind jedoch nicht im header des documentes deklariert.

kann das der autor fixen?

Re: bug xml api

BeitragVerfasst: 4. Okt 2008, 09:41
von Gast
ich denke mal, das das nicht hier hin gehöert...

Re: bug xml api

BeitragVerfasst: 4. Okt 2008, 17:19
von Gast
das prob hatte ich auch, hab dann einfach regex benutzt

Re: bug xml api

BeitragVerfasst: 5. Okt 2008, 11:17
von Gast
Hi,
probiere es mal mit folgender Klasse:

Code: Alles auswählen
<?php
/**
* World Hack Organization - XMLAPI Klasse
*
* Die API Klasse gibt die XML Datei in einem Array zurück, um dieses
* in einer weiterverarbeitung zu behandeln.
*
*
* @author    Kevz <Godecker@gmx.net>
* @copyright 2008 Kevin Gödecker
* @version   1.0.0 Beta
*/
class WHO_xmlAPI {
  /**
   * @var string
   * @access protected
   **/
  protected $url = '';

  /**
   * @var string
   * @access protected
   **/
  protected $xmlAPI = '';

  /**
   * @var string
   * @access protected
   **/
  protected $xmlAPISource = '';

  /**
   * @var string
   * @access protected
   **/
  protected $onError = 'errorHandler';



  /**
   * my private errorHandler. :-)
   *
   * @access protected
   * @return null
   */
  protected function errorHandler ( $message )
  {
    die($message);
  }


  /**
   * Zum setzen der URL, beim Abrufen der XML-API
   *
   * @param string $url XML-API URL-Adresse
   *
   * @access public
   * @return boolean
   **/
  public function setURL ( $url )
  {
    $content = @file_get_contents($url);
    if ( $content === false )
      return false;
    else {
      $this->url    = substr($url, 0, strrpos($url, '/')+1);
      $this->xmlAPI = substr($url, strrpos($url, '/')+1);

      $this->xmlAPISource = @file_get_contents($url);

      return true;
    }
  }


  /**
   * RegExpression ausführen, um den XML-Code in ein Array
   * zu Konventieren.
   *
   * @access public
   * @return null
   */
  public function getAPI ( )
  {
    $regEXP = '/<(.*?)>(.*?)<\/\\1>/s';
    preg_match_all($regEXP, $this->xmlAPISource, $xml);
    preg_match_all($regEXP, $xml[2][0], $xmlAttributes);

    $i = 0;
    $attributes = array();

    foreach ( $xmlAttributes[1] as $key ) {
      $attributes[$xmlAttributes[1][$i]] = $xmlAttributes[2][$i];
      $i++;
    }

    return $attributes;
  }


  /**
   * Instanz der Klasse erzeugen und zurückgeben
   *
   * @access public
   * @return object
   **/
  static public function &getInstance ()
  {
    static $instance;

    if ( !isset($instance) ) {
      $instance = new self;
    }
    return $instance;
  }


  /**
   * Wird am Ende aufgerufen
   *
   * @access public
   * @return null
   **/
  public function __destruct ()
  {
    if ( empty($this->onError) )
      $this->onError('Es wurde keine Funktion zur Fehlerbehandlung definiert!');

    if ( $this->url === false )
      $this->onError('Die XML-API konnte nicht aufgerufen werden!\n
                      Es wurde keine gültige URL-Adresse zur API angegeben.');
  }
}


// WHO XML-API Klasse erzeugen
$xmlAPI = WHO_xmlAPI::getInstance();
$xmlAPI->setURL('http://www.world-hack.org/api_xxxxxxxxxxxx.xml');

$dump = $xmlAPI->getAPI();
var_dump($dump);
?>

Re: bug xml api

BeitragVerfasst: 7. Okt 2008, 11:54
von Gast
ich dank dir für die klasse, ich nehme mal an das du sie einfach mal schnell geschrieben hast, nur verstehe ich nicht warum du dann nicht gleich die xml ausgabe überarbeitest, ich bin denke ich mal nicht der einzigste mit dem problem, wäre der fehler nicht könnte ich mein script gleich im IRC/TCL schreiben und müsste nicht den umweg über php gehen ;)

ich danke dir aber trotzdem soweit.

Re: bug xml api

BeitragVerfasst: 7. Okt 2008, 14:22
von Biondetta
Ich habe zwar Null Ahnung...weder was das hier is, noch was das problem is aber egal...
* @author Kevz <Godecker@gmx.net>
* @copyright 2008 Kevin Gödecker
* @version 1.0.0 Beta

Jedenfalls sieht es für mich so aus als wäre nicht summa der Author dieses dingens sonder jemand anders:)