0

我使用 PHP 为 RSS 提要创建了一个 XML 文件,其标题如下:

header("Content-Type: application/rss+xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="utf-8" ?>';

我需要让页面每 120 秒刷新一次

我可以使用以下方法使任何 HTML 或 PHP 页面自动刷新:

<meta http-equiv="refresh" content="120" />

如何将之前的刷新代码添加到我的 XML RSS 代码中?

4

3 回答 3

0

我找到了一种简单的免费方法来为我刷新,它是一个谷歌 chrome 应用程序——即使我通常使用 Firefox——但我认为我可以使用 chrome 来完成这项任务

轻松自动刷新

它可以在任意秒数后自动刷新和自动重新加载页面。

于 2013-10-21T17:03:17.710 回答
0

我需要让页面每 120 秒刷新一次

好吧,我对此表示怀疑,部分原因是这里没有页面。页面(以及后来使用的术语“刷新代码”)暗示涉及 HTML(“HTML 页面”),但不涉及 HTML。根据您设置的内容类型 XML - 而不是 HTML - 涉及:

header("Content-Type: application/rss+xml; charset=UTF-8");
echo '<?xml version="1.0" encoding="utf-8" ?>';

由于涉及 XML 而不是 HTML,因此不涉及 HTML,因此没有这样的 HTML 刷新(属性值http-equiv可能会误导您刷新标头是 HTTP,但它实际上不是协议的一部分,所以您可能被该构造误导,请参阅Meta Refresh)。

所以你可能需要这样做,但从技术上讲,这是不可能的。或者反过来说:只有你需要一些东西,这并不意味着你已经很好地表达了你的需要,可以找到你需要的东西。

如何将之前的刷新代码添加到我的 XML RSS 代码中?

您可以逐字添加它 - 例如在 XML 注释中 - 但是我想您会问如何添加与 Web 浏览器和具有该代码的 HTML 页面相当的功能。

好问题。由于这是您从服务器提供的 XML 提要,因此它只是被请求。您可以通过 HTTP 响应标头发送一些缓存和 revisit-after 信息(HTTP中的缓存 - RFC 2616广泛涵盖了该主题),但除此之外,我不知道有任何其他侧通道可以传递某种刷新信息与RSS。

由于 RSS 是基于 XML 的,因此是模块化的,因此您可以建议和扩展这样做,然后告诉软件供应商哪些软件可以与您的 XML 提要一起使用。这也许是最容易的。

于 2013-10-21T13:16:12.583 回答
0

如果您真的想刷新浏览器窗口中显示的 RSS 提要,只需发送一个HTTP与元素内容相同的标题http-equiv <meta>(这就是该元素所做的一切:传达一些通常使用HTTP标题发送的数据),例如:

header("Content-Type: application/rss+xml; charset=UTF-8");
header("refresh: 120");
echo '<?xml version="1.0" encoding="utf-8" ?>';

请注意,这符合标准,因为它是由 Netscape 引入的附加功能,并且从未被标准化。但它应该适用于大多数浏览器。

如果这不是您想要的,而您只想告诉客户何时重新访问提要以进行更新,请使用<ttl>如下:

<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0"><channel>
  <title>RSS Title</title>
  <!-- other meta data here ... -->
  <!-- time the information in this file stays valid (when to refresh) in minutes: -->
  <ttl>2</ttl>
  <!-- rss items, here ... -->
</channel></rss>

详见:https ://cyber.harvard.edu/rss/rss.html#ltttlgtSubelementOfLtchannelgt

于 2018-08-10T19:13:19.143 回答