PHP로 RSS/Atom 피드를 구문 분석하는 가장 좋은 방법
Magpie RSS는 PHP에서 RSS 및 Atom 피드를 구문 분석하는 데 널리 사용되는 라이브러리이지만 잘못된 형식의 피드가 발견되면 실패하는 것으로 알려져 있습니다. 따라서 대체 옵션이 필요할 수 있습니다.
권장되는 대안 중 하나는 PHP에 내장된 SimpleXML 기능을 사용하는 것입니다. SimpleXML은 RSS 및 Atom 피드를 포함하여 XML 문서를 구문 분석하기 위한 직관적인 구조를 제공합니다. 또한 XML 경고 및 오류를 감지하고 처리합니다. 오류가 발생하면 다시 구문 분석을 시도하기 전에 HTML Tidy와 같은 도구를 사용하여 피드 소스를 정리할 수 있습니다.
다음은 SimpleXML을 사용하여 RSS 피드를 구문 분석하는 간단한 클래스입니다.
class BlogPost { var $date; var $ts; var $link; var $title; var $text; } class BlogFeed { var $posts = array(); function __construct($file_or_url) { $file_or_url = $this->resolveFile($file_or_url); if (!($x = simplexml_load_file($file_or_url))) return; foreach ($x->channel->item as $item) { $post = new BlogPost(); $post->date = (string) $item->pubDate; $post->ts = strtotime($item->pubDate); $post->link = (string) $item->link; $post->title = (string) $item->title; $post->text = (string) $item->description; // Create summary as a shortened body and remove images, // extraneous line breaks, etc. $post->summary = $this->summarizeText($post->text); $this->posts[] = $post; } } private function resolveFile($file_or_url) { if (!preg_match('|^https?:|', $file_or_url)) $feed_uri = $_SERVER['DOCUMENT_ROOT'] .'/shared/xml/'. $file_or_url; else $feed_uri = $file_or_url; return $feed_uri; } private function summarizeText($summary) { $summary = strip_tags($summary); // Truncate summary line to 100 characters $max_len = 100; if (strlen($summary) > $max_len) $summary = substr($summary, 0, $max_len) . '...'; return $summary; } }
이 클래스는 RSS 피드 로드 및 구문 분석, 개별 게시물 추출 및 저장, 표시 목적으로 게시물 텍스트 요약을 위한 메소드를 제공합니다. SimpleXML을 사용하면 이 클래스는 올바른 형식과 잘못된 형식의 RSS 피드를 효과적이고 안정적으로 처리할 수 있습니다.
위 내용은 SimpleXML을 사용하여 PHP에서 RSS/Atom 피드를 구문 분석하는 가장 좋은 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!