ホームページ >バックエンド開発 >PHPチュートリアル >PHP_PHP チュートリアルで RSS (フィード) を読み取る簡単な例
私は最近ブログを書いていますが、さまざまなブログ間の同期は面倒です。幸いなことに、各ブログには独自の RSS 集約システムがあり、RSS を介してブログ呼び出しを同期できるため、RSS を使用してブログ公開を同期するようになりました。 PHPでRSSを読むことを勉強しました。
RSS はデータ保存形式である XML で書かれています。 PHP で XML データを読み取るには、XML 解析関数、DOM モジュール、正規表現を使用する 3 つの方法があります。最も直接的な方法は、XML を直接解析して XML 内のデータを取得することです。
以下は解析コードです:
$rssfeed = "feed.xml";
header('Content-Type:text/html;charset= UTF-8');
$buff = "";
//RSS アドレスを開いて読み取ります
$fp = fopen($rssfeed,"r") または die("can not open $rssfeed");
while ( !feof($fp ) ) {
$buff .= fgets($fp,4096);
}
//ファイルを閉じる
fclose($fp);
//XML パーサーを作成します
$parser = xml_parser_create();
//xml_parser_set_option -- 指定された XML 解析のオプションを設定します
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 = $val["type"];
$value = $val["value"];
/ /Tag 小文字に変換します
$tag = strto lower($tag);
if ($tag == "アイテム" && $type == "開く"){
$is_item = 1;
}else if ($tag == "アイテム" && $type == "閉じる") {
/ /出力文字列を構築します
echo "".$title."
";
//echo $content."
";
$is_item = 0;
}
// item タグの内容のみを読み取ります
if($is_item==1){
if ($tag == "title") {$title = $value; }
if ($tag == "link") {$link = $value;}
if ($tag == "content:encoded"){$content=$value;}
}
}
?>
このプログラムを使用してフィードを読み取る効果は次のとおりです:
。