2017-07-30 80 views
0

我想爲域信息使用Namecheap的API,雖然他們的API文檔沒有很好地解釋,而且這將是我第一次使用XML數據,我試圖返回來自XML文件的數據。從其他服務器請求XML數據

我目前正在使用一個表單來添加變量和POST/GET數據到這個XML請求,在提交時,XML頁面顯示,那就是結束了。

我想知道如何使用PHP發送和接收這些數據?

這裏是我迄今爲止...

很簡單:

<form action="https://api.namecheap.com/xml.response" method="POST"> 
       <input type="hidden" id="ApiUser" name="ApiUser" value="user" /> 
       <input type="hidden" id="UserName" name="UserName" value="user" /> 
       <input type="hidden" id="ApiKey" name="ApiKey" value="###" /> 
       <input type="hidden" id="Command" name="Command" value="namecheap.domains.check" /> 
       <input type="hidden" id="ClientIp" name="ClientIp" value="<? echo $_SERVER['REMOTE_ADDR']; ?>" /> 
       <input type="text" id="DomainList" name="DomainList" /> 
       </form> 

就像我說的,這給我發直通到XML文件。我想,我可能需要執行POST ISSET或東西...

<? 
if(isset($_POST['domain_check'])){ 
    PERFORM XML STUFF HERE 
} 
?> 

但我沒有線索如何發送或以這種方式接收數據,因爲我是一個初學者做。數據如下返回:

<ApiResponse xmlns="http://api.namecheap.com/xml.response" Status="OK"> 
<Errors/> 
<Warnings/> 
<RequestedCommand>namecheap.domains.check</RequestedCommand> 
<CommandResponse Type="namecheap.domains.check"> 
<DomainCheckResult Domain="test.com" Available="false" ErrorNo="0" Description="" IsPremiumName="false" PremiumRegistrationPrice="0" PremiumRenewalPrice="0" PremiumRestorePrice="0" PremiumTransferPrice="0" IcannFee="0" EapFee="0"/> 
</CommandResponse> 
<Server>PHX01APIEXT01</Server> 
<GMTTimeDifference>--4:00</GMTTimeDifference> 
<ExecutionTime>1.061</ExecutionTime> 
</ApiResponse> 

請告訴我這樣做的最好方法嗎?謝謝。

回答

0

解析響應嘗試使用simple_xml,

$xml=simplexml_load_string($myXMLData) or die("Error: Cannot create object"); 
print_r($xml); 

嘗試使用捲曲,這樣你就不必手動提交表單,我沒有測試過這一點,但這個例子應該有助於讓你去

<?php 

$ch = curl_init(); 

$baseUrl = 'https://api.sandbox.namecheap.com/xml.response?ApiUser=ncuser&ApiKey=apikey&UserName=ncuser&ClientIp=121.22.123.22&Command=namecheap.domains.check&DomainList=domain1.com,domain2.com'; 


$url = $baseUrl . $query; 

curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false); 
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); 
$output = curl_exec($ch); 
if ($output === false) { 
    die(curl_error($ch)); 
} 
//print_r(curl_getinfo($ch)); 
curl_close($ch); 
return $output; 
+0

這指出我在正確的方向和腳本似乎運作良好,我感謝幫助。 – Snappysites

相關問題