2010-02-05 2 views
0
Response example for MD5 hash found, for example http://md5.noisette.ch/md5.php?hash=2a0231531bc1a7fc29e2fa8d64352ae9 : 

<md5lookup> 
    <hash>2a0231531bc1a7fc29e2fa8d64352ae9</hash> 
    <string>noisette</string> 
</md5lookup> 

Response for MD5 hash *not* found, for example http://md5.noisette.ch/md5.php?hash=11111111111111111111111111111111 : 

<md5lookup> 
    <error> 
    No value in MD5 database for this hash. 
    </error> 
</md5lookup> 

Response for MD5 hash *not* found, for example http://md5.noisette.ch/md5.php?hash=1 : 

<md5lookup> 
    <error> 
    The string provided is not a true MD5 hash. Please try again. 
    </error> 
</md5lookup> 

Хорошо, я просто изучаю, как использовать SimpleXML. Я запускаю скрипт для запуска аналогичных API с разных сайтов, но это другое. Я не уверен, как использовать PHP для эхо-ошибки, если бы это была ошибка или строка, если бы она была успешной. API, который я использую сейчас, имеет только истину или ложь, но все равно та же иерархия, независимо от результата.Как бы я повторил это на PHP с помощью SimpleXML

Например

http://gdataonline.com/qkhash.php?mode=xml&hash=notanactualhashandwillnotbefound Это хэш не будет найден. http://gdataonline.com/qkhash.php?mode=xml&hash=098f6bcd4621d373cade4e832627b4f6 Этот хэш будет возвращать «тест»

Как вы можете видеть, иерархия будет такой же, и, таким образом, легко разобрать и эхо

ответ

1

Я не уверен, я понимаю, что вы просите, но вы просто загрузите URL-адрес в SimpleXml и получите доступ к узлам с помощью обычной нотации объектов, например

$parentNode->childNode 

В приведенном ниже примере будет загружать XML из URL и вывода ошибки, если она существует, и если нет, то будет выводиться строка узла.

$baseUrl = 'http://md5.noisette.ch/md5.php?hash='; 
$hashes = array('2a0231531bc1a7fc29e2fa8d64352ae9', 
        '11111111111111111111111111111111', 
        'not a hash'); 

foreach($hashes as $hash) { 

    // load the XML from the URL 
    $dom = simplexml_load_file($baseUrl . $hash); 

    if($dom->error) { 
     echo $dom->error; 
    } else { 
     echo $hash, ' : ', $dom->string; 
    } 

    echo PHP_EOL; // linebreak 
} 
+1

Ой, я не думал об этом, не знаю, почему. Спасибо за помощь, Гордон. :) – Rob

Смежные вопросы