2010-02-05 60 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只有真或假,但無論結果如何,其API仍然是相同的。我如何使用SimpleXML在PHP中回顯此問題

例如

http://gdataonline.com/qkhash.php?mode=xml&hash=notanactualhashandwillnotbefound 散列不會被發現。 http://gdataonline.com/qkhash.php?mode=xml&hash=098f6bcd4621d373cade4e832627b4f6 散列將返回「測試」

正如你所看到的層次結構是相同的,因而易於解析和回聲

回答

1

我不知道我明白你問什麼,而是你只需將URL加載到SimpleXml並通過常規對象表示法訪問節點,例如

$parentNode->childNode 

下面的例子將會從URL和輸出,如果它存在的錯誤加載XML,如果沒有它會輸出字符串節點。

$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 2010-02-06 18:18:34