0

私は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形式で値を返します。

その値をどのように読み取ることができるかについての解決策を教えてください。

4

2 に答える 2

1

JSON関数はあなたのマシンで動作すると思います。あなたが得るエラーのためにそう思います。また、DanFromGermany の例も機能するはずですが、URL が長いため、切り捨てられた可能性があります。これがあなたが試すことができるものです:

1.) https://api.eancdn.com/api/tester/にアクセスし、上記のリンクから解析したいものを選択します。「ホテルリスト」でやってみました。"Hotel List" リンクをクリックし、JSON 形式を選択して [続行] をクリックします。次に、以下のリンク全体が表示されます (長いです)。右クリックしてコピーします。

2.) この PHP コードは機能するはずです (私にとっては機能しました)。JSON と ARRAY の少し複雑な構造なので、重要なデータはかなり深いです:)

$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 (配列を返す)と、ホテル ID、ホテルの住所などの解析済みデータについてはこちら- 上記と同じ PHP コード- 2.)

于 2013-10-08T13:45:39.417 に答える
0

「Hotel List」の例から Json を取得する方法

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&currencyCode=USD&......';
$arr = json_decode(file_get_contents($url), true); // true is for array, false for objects

print_r($arr);

これは、少なくとも正しい配列要素に到達しようとするのに役立ちます。JSONがかなり奇妙であることを管理する必要があります(0:...、1:...)。

于 2013-10-08T12:24:54.510 に答える