我是php编程的新手。 实际上我想提取驻留在网站上的xml代码。 直到现在我用
$xml=simplexml_file_load(//URL);
foreach($xml->movie as $Movies)
{
print $Movies->name;
}
但是这段代码不会产生任何价值。
之后我也用了
$header[] = "Accept: application/xml";
$ch = curl_init();
echo $ch;
curl_setopt( $ch, CURLOPT_HTTPHEADER, $header );
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
$contents = curl_exec ($ch);
echo $contents;
curl_close($ch);
但是此代码仅返回xml(排除标记)中的值。
我也用过
readfile($url);
但是这段代码以json格式返回值。
请告诉我如何阅读该值的解决方案。
答案 0 :(得分:1)
我认为JSON功能可以在你的机器上运行。我想是因为你得到的错误。 DanFromGermany的例子应该可以工作,但URL有点长,所以也许它被切断了。您可以尝试以下方法:
1。)转到此处:https://api.eancdn.com/api/tester/并从上面的链接中选择要解析的内容。我试过“酒店列表”。因此,单击“酒店列表”链接,选择JSON格式,然后单击继续。然后你会看到整个链接(它很长)。右键单击并复制它。
2。)这个PHP代码应该可以工作(它适用于我)它只是一个有点复杂的JSON结构然后是ARRAY所以重要的数据非常DEEP:)
$url = "https://api.eancdn.com/ean-services/..."; //(ENTIRE URL HERE - its LONG)
$arr = json_decode(file_get_contents($url), true); // true is for array, false for objects
//parse data from array $arr['HotelListResponse']['HotelList']['HotelSummary']
foreach ($arr['HotelListResponse']['HotelList']['HotelSummary'] as $hotel){
$hname = $hotel['name']; //get hotel name from array
$hid = $hotel['hotelId']; //get hotel id from array
$haddress = $hotel['address1']; //get hotel address1 from array
echo "<b>Hotel name:</b> $hname Hotel ID: $hid Hotel address 1: $haddress <br>";
}
3。)还有其他数据可供每家酒店使用。检查一些示例并在此处返回数据:JSON1 (return array),此处查看some parsed data like hotel id, hotel address etc. - same PHP code as above - 2。)
答案 1 :(得分:0)
来自https://api.eancdn.com/api/tester/#query=basicAvailability
$url = 'https://api.eancdn.com/ean-services/rs/hotel/v3/list?cid=55505&minorRev=99&apiKey=cbrzfta369qwyrm9t5b8y8kf&locale=en_US¤cyCode=USD&......';
$arr = json_decode(file_get_contents($url), true); // true is for array, false for objects
print_r($arr);
这至少可以帮助您尝试获取正确的数组元素。我必须管理他们的JSON是相当奇怪的(使用0:...,1:...)。