Zhuyi.com の RSS 読み取りは、このプログラムに基づいて少し修正されており、主に配列文字列を出力し、エンコードの問題を解決しています。
php のソース コードとコードの詳細な説明は次のとおりです。
//RSS ソース アドレス リスト array
$rssfeed = array("http: //www.jb51.net/feed",
"http://rss.sina.com.cn/news/allnews/sports.xml",
"http://ent.163.com/ special/00031K7Q/ rss_toutiao.xml",
"http://tech.163.com/special/00091JPQ/tech important.xml");
//エンコードを UTF-8 に設定します
header('Content -Type:text/html;charset= UTF-8');
for($i=0;$i
$rss_str="";
//RSS アドレスを開いて読み取り、読み取りに失敗した場合は中止します
$fp = fopen($rssfeed[$i], "r") または die("$rssfeed を開けません");
while (!feof($fp)) {
$buff .= fgets($fp,4096); > // ファイルを閉じる
fclose($fp);
// XML パーサーを作成します
$parser = xml_parser_create();
//xml_parser_set_option -- 指定された XML のオプションを設定しますparsing
xml_parser_set_option($parser,XML_OPTION_SKIP_WHITE,1);
//xml_parse_into_struct -- XML データを配列 $values
xml_parse_into_struct($parser,$buff,$values,$idx) に解析します。 > //xml_parser_free -- 指定された XML パーサーを解放します
xml_parser_free($parser);
foreach ($values as $val) {
$tag = $val["tag"] ;
$type 🎜>
if ($tag == "アイテム" && $type == "開く"){
$is_item = 1
}else if ($tag == " item" && $type = = "close") {
// 出力文字列を構築する$rss_str ;
";
$is_item = 0;
}
//のみアイテムタグのコンテンツを読み取ります
if($is_item==1){
if ($tag == "title") {$title = $value;}
if ($tag == " link") {$link = $value;}
}
}
/ /結果を出力
echo $rss_str."
";
}
? >