電子書籍の厳選無料作品が豊富!

XML初心者です。
今回PHPでデータを使いたいと思っていますが、
自前サイトのZen-cartにてサイドボックス内に表示させようとしています。:
/**
* いくつかの記号をHTMLの表現形式に変換する関数の定義
*/
function convert($str) {
return htmlspecialchars($str, ENT_QUOTES);
}
$xml = simplexml_load_file('http://auctions.yahooapis.jp/AuctionWebService/V …
if (is_array($xml)) {
foreach ($xml->item as $item) {
$url = convert($item->url);
$title = convert($item->title);
$img = convert($item->img);
$price = convert($item->price);
$content .= '<a href=\"$url\" title=\"$title\"><img src=\"$img\" width=170></a><br>$title<BR>$price\n"';
echo "<h2><a href='" . $item->url . "'>" . $item->title . "</a></h2>";
echo "<p>" . $item->price . "</p>";

}
}else{
$content .= 'NON ARRAY' . $xml . '';
}
とやったのですが、サイドボックス内に『NON ARRAY』としか表示されません。
PHP初心者で、よく判りませんが、$content .= ;の部分の中に入れると、
サイドボックス内に表示されるみたいです。
$XMLの扱いが間違っているのだと思いますが、どうすれば動くようになるのでしょうか?。。。
どうかよろしくおねがいします。。

A 回答 (2件)

確かに、$xmlは配列じゃないですね。


$xmlはobjectです。とりあえずはif文を
if (is_object($xml)) {
にすれば、表示されますが、失敗した時の
else{
の処理を直す必要があります。
    • good
    • 0

PHPのバージョンは何ですか?


simplexml_load_file('URL')
が失敗しているのではないでしょうか?
直後にprint_r($xml);を入れて確認してみましたか

PHP5.1.0以前のバージョンだとsimplexml_load_file()でオープンするURI
はエンコードする必要があるみたいです。
http://manual.xwd.jp/function.simplexml-load-fil …
    • good
    • 0
この回答へのお礼

バージョンは5.2.8です。
失敗しているかは判りませんが、
No Arrayと表示されているということは、
要するに$xmlの中身が配列ではないということですよね?
で、自分は配列を扱った事がなく、意味が判りません。
しかもNoArrayと表示した後に、$XMLを表示しているはずなのに、
表示されないということは???失敗しているのでしょうか??
うーん、、何故失敗するんでしょうか。。。

お礼日時:2009/09/03 00:36

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!