我有API的访问密钥,可以让我获取有关产品的数据(例如价格,描述等)。
我知道有两种手动方式可以使用此密钥:
1)使用"修改标题" firefox插件,在标头中插入密钥,然后键入将生成XML文件的URL(https://api.domain.com/search?parameter=something
),
我会看到这样的输出树:
<manufacturer-name>SONY</manufacturer-name>
<price>99.99</price>
另外还有20个领域。
2)使用以下代码的PHP文件:
$myHeaders = array("key: code");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.domain.com/search?parameter=something");
curl_setopt($ch, CURLOPT_HTTPHEADER,$myHeaders);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
$returnResult = curl_exec($ch);
if ($returnResult) {
//parse HTTP Body to determine result of request
if (stripos($returnResult,"Error Code ")) {
// error occurred
trigger_error($returnResult,E_USER_ERROR);
}
else{
// success
echo $returnResult;
}
}
else{
// connection error
trigger_error(curl_error($ch),E_USER_ERROR);
}
curl_close($ch);
然后我看到了这个输出:
SONY 99.99
我的问题:
使用相同的PHP代码,我如何只请求显示price
字段?
(我问这个是因为稍后,我会希望我的服务器发出这样的自动请求,并使用这些字段的当前值更新我自己的数据库。)
答案 0 :(得分:1)
这是SimpleXML
的用途:加载xml文件并解析它。
<?php
$myHeaders = array("key: code");
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "https://api.domain.com/search?parameter=something");
curl_setopt($ch, CURLOPT_HTTPHEADER,$myHeaders);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, 0);
$returnResult = curl_exec($ch);
// here the dom is generated
$xml = simplexml_load_string($returnResult);
print_r($xml);
// depending on your root element and xml tree:
// echo $xml->...->price->__toString();
?>
要获得更好的答案,请向我们展示精确的xml输出(包括命名空间等)。