Como analisar feeds RSS com PHP

Este artigo representa um guia completo para todo o processo de análise de arquivos RSS 2.0 usando PHP.



Como um exemplo RSS usaremos o seguinte arquivo: . Uma parte deste arquivo é dado abaixo.
You can skip this part and go directly to the php code
Nota: Você pode pular essa parte e ir diretamente para o código php





 <? Xml version = "1.0" encoding = "UTF-8"?>





 <rss version="2.0">

  



 <channel>

    





    



 <link>

      



 /windows/Web_Development

      



 / XML_CSS_Utilities/LatestReleases-1.html

    



 </ Link>

    





    



 <idioma> en-us </ language>

    



 <image>

      





      



 <url> /images/logo.gif </ url>

      



 / <link> </ link>

      



 <description>

        





      



 </ Description>

    



 </ Image>

    



 <item>

      



 <title> Feed Mix </ title>

      



 <link>

        



 /windows/Web_Development/

        



 XML_CSS_Utilities / Revisão Feed_Mix.html-

      



 </ Link>

      



 <description>

        



 Feed Mix é uma característica-rico editor RSS com o exclusivo

        



 capacidade de criar um novo feed RSS de vários outros 

        



 que já existem ...

      



 </ Description>

    



 </ Item>

    



 <item>

      



 <title> RSS Submit </ title>

      



 <link>

        



 /windows/Web_Development/

        



 XML_CSS_Utilities / Revisão RSS_Submit.html-

      



 </ Link>

      



 <description>

        



 RSS Submit é o mais poderoso feed RSS 

        



 ferramenta de promoção disponíveis ...

      



 </ Description>

    



 </ Item> 

  



 <Canal />





 </ Rss>

Breve introdução ao RSS e XML.
You can skip this part and go directly to the php code
Nota: Você pode pular essa parte e ir diretamente para o código php

XML significa Extensible Markup Language e é um subconjunto simplificado da Standard Generalized Markup Language (SGML). Seu objetivo principal é facilitar a partilha de dados entre diferentes sistemas de informação, particularmente sistemas ligados através da Internet.

RSS é um formato de distribuição de conteúdo Web. Seu nome é um acrônimo para Really Simple Syndication. Em outras palavras, RSS é um formato XML leve concebido para partilha de títulos e outros conteúdos da Web. Mais detalhes sobre RSS especificação 2.0 pode ser encontrado em http://blogs.law.harvard.edu/tech/rss .

Muitas vezes as pessoas querem ler arquivos rss e exibir o conteúdo em seu site usando um layout personalizado. Este artigo representa um guia completo para todo o processo de análise de arquivos RSS 2.0 usando PHP.
Requisitos:
, A fim de ser capaz de testar o código deste tutorial, precisamos de ter instalado um servidor web (estou usando Apache: http://httpd.apache.org ) configurado com suporte a PHP ( http://www.php. net ). Você pode encontrar lotes de artigos e tutoriais na web sobre como instalar o Apache eo PHP.

Método disponível para analisar um arquivo XML.
Atualmente, existem dois métodos usados ​​pelos desenvolvedores para ler arquivos XML, não importa o que a linguagem de programação pode ser: SAX (Simple API para XML) e DOM (Document Object Model). Vou descrever brevemente cada um destes métodos e, finalmente, escolher o melhor para nós.

SAX (Simple API for XML) é um evento baseado API. Cada vez que uma tag é aberta ou fechada, ou a qualquer momento o analisador encontra um texto, faz callbacks para funções definidas pelo usuário para cada evento com o nó ou informações de texto. A vantagem de um analisador SAX é que é realmente leve. O analisador não manter qualquer coisa na memória por muito tempo, então ele pode ser usado para arquivos extremamente grandes. A desvantagem é que a escrita função de evento SAX parser pode levar algum tempo e experiência de codificação.

O DOM (Document Object Model) define uma forma padrão para acessar e manipular documentos XML. O DOM apresenta um documento XML como uma estrutura de árvore (a árvore de nós), com os elementos, atributos e texto definido como nós. Implementação de uma API padrão DOM irá ler todo o documento XML na memória e fornecer um conjunto de funções para manipular os dados. A desvantagem desse método poderoso é que não é recomendado para grandes documentos XML, o que levaria muita memória para construir o modelo do documento.

Porque geralmente as pessoas estão lidando com arquivos de tamanho normal e nem todo mundo tem o tempo necessário ou habilidade para escrever um parser SAX todo nós vamos usar o método DOM.

Então vamos começar.

A fim de obter os dados úteis a partir do arquivo RSS é preciso percorrer os nós do item e extrair as informações que precisamos. Abaixo você pode encontrar o script para analisar o acima RSS feeds:






 <? Php



  



 DOMDocument $ doc = new ();

  



 $ Doc-> load ('/rss/windows/Web_Development/XML_CSS_Utilities.xml');

  



 $ ArrFeeds = array ();

  



 foreach ($ doc-> nó getElementsByTagName ('item') as $) {

    



 ItemRSS $ array = ( 

      



 'Title' => $ node-> getElementsByTagName ('title') - item> (0) -> nodeValue,

      



 'Desc' => $ node-> getElementsByTagName ('description') -> item (0) -> nodeValue,

      



 'Link' => $ node-> getElementsByTagName ('link') -> item (0) -> nodeValue,

      



 'Date' => $ node-> getElementsByTagName ("pubDate") -> item (0) -> nodeValue

      



 );

    



 array_push ($ arrFeeds, $ itemRSS);

  



 }







 ?>

O script começa criando um novo objeto DOMDocument e carregar o arquivo RSS para esse objeto usando o método de carga. Depois disso, o script usa o método getElementsByName para obter uma lista de todos os elementos com o nome dado (no 'item' nosso caso).

Dentro do ciclo dos nodos item, o script usa o método getElementsByName para obter o nodeValue para as tags do título, descrição link, e data. O nodeValue é o texto dentro do nó. Uma matriz é utilizada para armazenar cada conjunto de valores e de cada matriz representa uma entrada na matriz grande que mantém os nossos dados estruturados RSS.

Como você pode ver, o trabalho foi fácil. Todos os dados agora é segurar pelo array $ arrFeeds, é bem estruturado e você pode exibi-lo usando o layout desejado.


script php calendario com impressao data