Что делать с Zend_Rest_Client_Result? - PullRequest
1 голос
/ 07 мая 2011

Я пытаюсь выполнить поиск с помощью API из last.fm с Zend_Rest_Client.

Что мне делать с ответом? Как я могу получить значения из ответа?

object(Zend_Rest_Client_Result)[226]
  protected '_sxml' => 
    object(SimpleXMLElement)[228]
      public '@attributes' => 
        array
          'status' => string 'ok' (length=2)
      public 'results' => 
        object(SimpleXMLElement)[229]
          public '@attributes' => 
            array
              ...
          public 'trackmatches' => 
            object(SimpleXMLElement)[230]
              ...
  protected '_errstr' => null

Как зациклить на трек-матчах? Все, что я пробую, возвращает ноль.

Ответы [ 3 ]

1 голос
/ 24 сентября 2011
$results = $object->getIterator();
foreach($result as $result) {
   ...
}

Над кодом будет творить чудеса.

1 голос
/ 08 июня 2012

Вы должны продолжать разыменование, пока не доберетесь до чего-то, что не является объектом SimpleXMLElement.Попытка напечатать объект SimpleXMLElement не работает.

$results = $object->getIterator();
foreach($results->results->trackmatches as $t) {
    echo $t->sometagname;
}
0 голосов
/ 14 мая 2011

Мне не удалось сделать это с Zend.Похоже на бесполезный класс, такой как Zend_Http.Мне пришлось использовать gool 'ol SPL:

    $url = $this->host . '?method=track.search';
    $url .= '&api_key=' . $this->apikey;
    $url .= '&track=' . urlencode($value);

    try {
        $xmlstr = file_get_contents($url);
        $xml = new SimpleXMLElement($xmlstr);
        //var_dump($xml->results->trackmatches);
        return $xml->results->trackmatches;
    } catch (Exception $e) {
        echo '<h4>url = ' . $url . '</h4>';
        var_dump($e);
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...