2010-02-05 7 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> 

Okay J'apprends juste à utiliser SimpleXML. Je cours un script pour exécuter des API similaires à partir de différents sites, mais c'est différent. Je ne suis pas sûr comment j'utiliserais PHP pour renvoyer l'erreur si c'était une erreur ou la chaîne si c'était un succès. Les API que j'utilise maintenant ont juste vrai ou faux mais c'est toujours la même hiérarchie quel que soit le résultat.Comment pourrais-je faire écho en PHP en utilisant SimpleXML

Par exemple

http://gdataonline.com/qkhash.php?mode=xml&hash=notanactualhashandwillnotbefound Ce hachage ne sera pas trouvée. http://gdataonline.com/qkhash.php?mode=xml&hash=098f6bcd4621d373cade4e832627b4f6 Ce hachage retournera « test »

Comme vous pouvez voir la hiérarchie sera le même, et donc facile à analyser et écho

Répondre

1

Je ne suis pas sûr que je comprends ce que vous demandez, mais vous il suffit de charger l'URL en SimpleXml et d'accéder aux nœuds par notation d'objet régulière, par exemple

$parentNode->childNode 

L'exemple ci-dessous chargera le XML de l'URL et la sortie de l'erreur si elle existe et sinon il affichera le nœud de chaîne.

$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

Oh oui, je n'y ai pas pensé, je ne sais pas pourquoi. Merci pour l'aide, Gordon. :) – Rob

Questions connexes