首页博客网络编程
如何根据您的需求制作自定义的 PHP RSS 解析器
摘要 通过一些使用PHP,AJAX和RSS的练习,您可以创建一个用于读取RSS源的自定义应用程序。 RSS 源通常包含经常更新的信息。它们通常由新闻网站和博客发布。 RSS 提要以 HTML 或 XML 字符串的形式显示,然后读者可以将其解析为 DOM 文档。

生活在媒体时代,我们被海量的信息所包围。PHP RSS解析器允许人们快速接收来自不同网站的更新或新数据。如果您不想错过特定类型的新闻文章,则可以使用 RSS 自动接收更新的内容。

RSS 代表 真正简单的联合。它从新闻系统中收集标题,将其格式转换为XML,并在您的计算机中显示完整的提要。与时事通讯不同,RSS 不要求您提供电子邮件地址,因此您不仅可以节省时间,还可以保护隐私。

内容

PHP RSS 解析器:主要提示

  • 您可以使用PHP,AJAX和RSS构建交互式PHP RSS提要阅读器Web应用程序(也称为解析器)。

  • PHP RSS 阅读器用于阅读包含经常更新的信息(如新闻)的 PHP RSS 提要。

  • PHP RSS提要不仅由大型新闻网站发布:许多博主也这样做。某些内容系统(如Wordpress)默认提供此机会。

  • PHP RSS 提要以 HTML 或 XML 字符串的形式显示。PHP RSS 解析器将其转换为 DOM 文档。

创建过程说明

我们相信您已经知道这个PHP RSS解析器是什么。为了教你它是如何创建的,我们必须介绍一些基本说明。让我们浏览一下您需要学习的文件。

网页文件

首先,用户必须从下拉列表中选择特定的 RSS 源。为此,我们调用一个名为 .此函数可由以下事件触发:show_rss()onchange

复制

<html>
  <head>
    <script>      function show_rss(str) {        if (str.length == 0) { 
          document.getElementById("rss_output").innerHTML = '';          return;
        }        if (window.XMLHttpRequest) {            //if the field is not empty, create an XMLHttpRequest to get suggestions
            xmlhttpreq = new XMLHttpRequest();
          } else {            // server response is ready, we call the function
            xmlhttpreq = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttpreq.onreadystatechange = function() {          if (this.readyState==4 && this.status==200) {
            document.getElementById('rss_output').innerHTML = this.responseText;
          }
        }
        xmlhttpreq.open('GET', 'get_rss.php?q=' + str, true);
        xmlhttpreq.send();
      }
    </script>
  </head>
  <body>

    <form>
      <select onchange="show_rss(this.value)">
        <option value="">Select the RSS feed title:</option>
        <option value="google_news">Google News</option>
        <option value="bbc_news">BBC News</option>
      </select>
    </form>
    <br>
    <div id="rss_output">This is where the RSS feed data goes.</div>
  </body>
</html>

让我们分解一下该函数为 PHP RSS 提要阅读器工作所采取的所有步骤:show_rss()

  • 首先,它检查是否已进行选择。

  • 将创建一个 XMLHttpRequest 对象。

  • 然后设置一个函数。准备好服务器响应后,它必须准备好执行。

  • 最后,请求被发送到位于我们服务器上的PHP文档get_rss.php

注意:当您将 q 参数应用于 get_rss.php?q=“+str 时要注意。

PHP 文件

JavaScript 通过调用服务器来访问get_rss.php,然后服务器执行以下操作:

复制

<?php
  //get q parameter from the URL
  $q = $_GET["q"];  //check which feed was selected
  if($q == 'reuters_news') {
    $xml_src=("http://news.google.com/news?ned=us&topic=h&output=rss");
  } elseif($q == 'bbc_news') {
    $xml_src=("http://feeds.bbci.co.uk/news/world/rss.xml");
  }

  $xml_doc = new DOMDocument();
  $xml_doc->load($xml_src);  //get elements from inside the "<channel>"
  $c=$xml_doc->getElementsByTagName('channel')->item(0);
  $c_title = $c->getElementsByTagName('title')
  ->item(0)->childNodes->item(0)->nodeValue;
  $c_link = $c->getElementsByTagName('link')
  ->item(0)->childNodes->item(0)->nodeValue;
  $c_desc = $c->getElementsByTagName('description')
  ->item(0)->childNodes->item(0)->nodeValue;  //output elements from "<channel>"
  echo("<p><a href='" . $channel_link
    . "'>" . $channel_title . "</a>");  echo("<br>");  echo($channel_desc . "</p>");  //get and output "<item>" elements
  $x = $xmlDoc->getElementsByTagName('item');  for ($i=0; $i< = 2; $i++) {
    $item_title = $x->item($i)->getElementsByTagName('title')
    ->item(0)->childNodes->item(0)->nodeValue;
    $item_link = $x->item($i)->getElementsByTagName('link')
    ->item(0)->childNodes->item(0)->nodeValue;
    $item_desc = $x->item($i)->getElementsByTagName('description')
    ->item(0)->childNodes->item(0)->nodeValue;    echo ("<p><a href='" . $item_link
    . "'>" . $it_title . "</a>");    echo ("<br>");    echo ($item_desc . "</p>");
  }?>

当Javascript请求PHP RSS提要时,这是向下的:

  • 系统检查选择了哪个 RSS 源。

  • 将创建新的 XML DOM 对象。

  • PHP RSS 解析器将 RSS 文件加载到我们拥有的 XML 变量中。

  • 接下来,它解析通道元素中的元素。

  • 从项目元素中提取并显示元素。

PHP RSS 解析器:摘要

  • 通过一些使用PHP,AJAX和RSS的练习,您可以创建一个用于读取RSS源的自定义应用程序。

  • RSS 源通常包含经常更新的信息。它们通常由新闻网站和博客发布。

  • RSS 提要以 HTML 或 XML 字符串的形式显示,然后读者可以将其解析为 DOM 文档。


声明提示:若要转载请务必保留原文链接,申明来源,谢谢合作!

本文链接:https://www.gaoxuejun173.top/blog/194

广告位

本文配乐
来说两句吧

该文章已禁止评论

最新评论

广告位