首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 操作 XML 入門:PEAR XML_RSS 解析 RSS 2.0/1.0/0.91 完整教學

     編輯:PHP 相關知識

安裝需求

pear install XML_RSS
pear install XML_Parser
# 或手動下載放入專案:RSS.php, Parser.php, PEAR.php

快速開始

require_once 'RSS.php';

$url = 'https://example.com/feed.xml'; // 或本地檔案
$rss = new XML_RSS($url);
$rss->parse();

// 取得頻道資訊
$channel = $rss->getChannelInfo();
echo "頻道: {$channel['title']} - {$channel['description']}<br>";

// 取得所有項目
$items = $rss->getItems();
foreach ($items as $item) {
    echo "<a href='{$item['link']}' target='_blank'>{$item['title']}</a><br>";
    echo "發布: {$item['pubdate']}<br>";
    echo "摘要: {$item['description']}<hr>";
}

// 取得圖片資訊
$images = $rss->getImages();
// 取得文字輸入區
$textinputs = $rss->getTextinputs();

支援的 RSS 版本

  • RSS 0.91 (Netscape)
  • RSS 1.0 (RDF)
  • RSS 2.0 (最常用)

實測三版本相容良好。

進階:自訂 User-Agent、超時、快取

class MyXML_RSS extends XML_RSS {
    public function __construct($url) {
        parent::__construct($url);
        // 覆寫 fetch 方法加入 curl 選項
    }
}

現代替代方案:SimpleXML / DOMDocument

PHP 5 內建,無需 PEAR:

// SimpleXML 範例
$xml = simplexml_load_file('feed.xml');
$namespaces = $xml->getNamespaces(true);
foreach ($xml->channel->item as $item) {
    echo $item->title . '<br>';
    // 處理命名空間 (dc:creator, content:encoded 等)
    $content = $item->children($namespaces['content']);
    echo $content->encoded;
}

// DOMDocument 範例(更強大、支援 XPath)
$dom = new DOMDocument();
$dom->load('feed.xml');
$xpath = new DOMXPath($dom);
$items = $xpath->query('//channel/item');
foreach ($items as $item) {
    echo $xpath->evaluate('string(title)', $item) . '<br>';
}

錯誤處理與健壯性

  • libxml_use_internal_errors(true) 捕捉解析錯誤
  • 檢查 $rss->parse() 回傳值
  • 網路請求設定超時、重試機制
  • 快取解析結果(檔案/Redis),避免重複請求
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved