• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPのforeach文について)

PHPのforeach文でyahoo!のカテゴリランキングを表示

このQ&Aのポイント
  • yahoo!のwebサービスを利用して、自サイトにカテゴリランキングを表示する方法を教えてください。
  • 現在、foreach文を使ってカテゴリランキングを表示しようとしていますが、表示件数を制限する方法が分かりません。
  • PC環境はWindowsXP PHP5です。PHP初心者なので、アドバイスをお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

<?php $mykey = "(略)"; //とりあえずallow_url_fopenはtrueにしてある。falseの時のやり方知らないので $xml = simplexml_load_file("http://shopping.yahooapis.jp/ShoppingWebService/V1/categoryRanking?appid=" . $mykey); //これが一番好み。名前空間が意識できるので。 //XPath式は配列の添字等と違って1から数えるので注意。 $xml->registerXPathNamespace ("y","urn:yahoo:jp:categoryRanking" ) ; foreach($xml->xpath("y:Result/y:RankingData[position() <= 5]") as $ranking){ $name = $ranking->Name; $url = $ranking->Url; $medium = $ranking->Image->Medium; $store = $ranking->Store->Name; // PHP 6ではない場合はunicode stringへのキャストはしない print((unicode)$store[0]); print("\n"); } print ("-----------"); print("\n"); for($i = 0; $i < 5 ;$i++){ $ranking = $xml->Result->RankingData[$i]; $name = $ranking->Name; $url = $ranking->Url; $medium = $ranking->Image->Medium; $store = $ranking->Store->Name; // PHP 6ではない場合はunicode stringへのキャストはしない print((unicode)$store[0]); print("\n"); } print ("-----------"); print("\n"); for($i = 0; $i < count($xml->Result->RankingData) ;$i++){ if ($i >= 5){ break; } $ranking = $xml->Result->RankingData[$i]; $name = $ranking->Name; $url = $ranking->Url; $medium = $ranking->Image->Medium; $store = $ranking->Store->Name; // PHP 6ではない場合はunicode stringへのキャストはしない print((unicode)$store[0]); print("\n"); } print ("-----------"); print("\n"); $i = 0; foreach($xml->Result->RankingData as $ranking){ if ($i >= 5){ break; } $ranking = $xml->Result->RankingData[$i]; $name = $ranking->Name; $url = $ranking->Url; $medium = $ranking->Image->Medium; $store = $ranking->Store->Name; // PHP 6ではない場合はunicode stringへのキャストはしない print((unicode)$store[0]); print("\n"); $i++; } ?>

noname#80189
質問者

お礼

himajin100000さん、回答ありがとうございます。 教えて頂いたもので上手くいきました。ありがとうございました。 ただ print((unicode)$store[0]); の部分で下記エラーが出たため4箇所削除して対応しました。問題ありでしょうか? Parse error: syntax error, unexpected T_VARIABLE 兎にも角にも、思うような表示が出来ましたので教えて頂いたソースを使わせていただきたいと思います。

関連するQ&A