人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

PHPで他のサイトのXMLの内容を表示する方法を優しく教えてください。
(サンプルソースなどあるとありがたいです)

●質問者: yamazakiis
●カテゴリ:インターネット ウェブ制作
✍キーワード:PHP XML サイト サンプルソース
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● fonya3
●35ポイント

こんなん(↓)でいかがでしょう.

http://www.2ones.com/bidders+/index.php?tag=%E5%85%A8%E3%81%A6%E...

この(↑)URLのhatenaの情報を取得・表示している部分のソースです。


<?php
/***************************************
 hatena rss reader
 はてなのRSS配信を受信して表示する

****************************************/



$keyword = "Webサービス";

$xml_url_hatena = "http://q.hatena.ne.jp/list?mode=rss&amp;word=".urlencode($keyword);


$item_count = 0;

function startElement_hatena($parser, $name, $attrs) {
 global $start_item_hatena
 ,$item_count_hatena
 ;

 if($name == 'ITEM'){
 $item_count_hatena++;
 $start_item_hatena = 1;
 }
}

function readData_hatena($parser, $value) {
 global $value_temp_hatena;
 $value_temp_hatena = $value;
}

function endElement_hatena($parser, $name) {
 global $start_item_hatena
 ,$item_count_hatena
 ,$item_array_hatena
 ;

 global $value_temp_hatena;
 if($start_item_hatena == 1){
 switch($name){
 case 'TITLE':
 $item_array_hatena[$item_count_hatena][title] = $value_temp_hatena;
 break;
 case 'LINK':
 $item_array_hatena[$item_count_hatena][link] = $value_temp_hatena;
 break;
 case 'DESCRIPTION':
 $item_array_hatena[$item_count_hatena][description] = $value_temp_hatena;
 break;

 default:
 break;
 }
 if($name == 'ITEM'){
 $start_item_hatena = 0;
 }
 }
}


$xml_parser = xml_parser_create();
xml_parser_set_option($xml_parser,XML_OPTION_CASE_FOLDING,true);
xml_parser_set_option($xml_parser,XML_OPTION_SKIP_WHITE,1);
xml_set_element_handler($xml_parser, "startElement_hatena", "endElement_hatena");
xml_set_character_data_handler($xml_parser, "readData_hatena");


if (!($data = file_get_contents($xml_url_hatena))) {
 die("XML 入力をオープンできませんでした");
}

if (!xml_parse($xml_parser, $data)) {
 die(sprintf("XML エラー: %s が %d 行目で発生しました", xml_error_string(xml_get_error_code($xml_parser)), xml_get_current_line_number($xml_parser)));
}

// XMLパーサーを解放
xml_parser_free($xml_parser);

//echo "結果:配列のサイズ".count($item_array_hatena)."\n";

if(count($item_array_hatena) > 0){

 echo "<ul style=\"font-size:8pt;vertical-align:top;padding-top:1px;padding-right:0px;padding-bottom:1px;padding-left:0px;margin-left:0em;margin-top:1em;margin-bottom:1em;\">\n";
 $i=1;
 for ($i=1; $i<count($item_array_hatena)+1; $i++){
 echo "<li style=\"font-size:8pt;vertical-align:top;padding-top:1px;padding-right:0px;padding-bottom:1px;padding-left:0px;margin-left:2em;margin-top:1em;margin-bottom:1em;\"><a href=\"".$item_array_hatena[$i][link]."\" target=\"_blank\"><div style=\"font-size:9pt\">".$item_array_hatena[$i][title]."</a><br><div>\n";
 echo "<div style=\"font-size:8pt\">".$item_array_hatena[$i][description]."<div>\n";
 echo "</li>\n";
 }
 echo "</ul>\n";
}else{
 echo "<ul style=\"font-size:8pt;vertical-align:top;padding-top:1px;padding-right:0px;padding-bottom:1px;padding-left:0px;margin-left:0em;margin-top:1em;margin-bottom:1em;\">\n";
 echo "<li style=\"font-size:8pt;vertical-align:top;padding-top:1px;padding-right:0px;padding-bottom:1px;padding-left:0px;margin-left:2em;margin-top:1em;margin-bottom:1em;\">Hatenaには情報はありませんでした。</li>";
 echo "</ul>\n";
}


?>

2 ● ワテ
●35ポイント

「他のサイトのXML」 => RSS

ということであれば、

「Do you php?」の「PEARのXML_RSSでRSSしてみる」

URL:

http://www.doyouphp.jp/sample/sample_xml_pear_rss.shtml

のサンプルソースを見てみるのがいいのではないでしょうか?

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ