0

背景

我正在尝试将使用 php 的 rss 提要包含到 html 文档中

代码

<?php
include ("feed url");
?> 

我已经使用 ssl 命令成功在 html 文件中添加了 include 标记,如下所示

<!--#include virtual="rssfeed.php" -->

编辑 htaccess 文件后工作正常。现在的问题是因为在我的 php im 中使用 include ("feed url") 我收到了这个错误:

警告:include() [function.include]: 在第 2 行的 path/rssfeed.php 的服务器配置中禁用 URL 文件访问

警告:include(feed url) [function.include]:未能打开流:在第 2 行的 path/rssfeed.php 中找不到合适的包装器

现在要注意的事情我已经尝试设置 php_value allow_url_fopen 1 但没有运气,因为文件保存在第三方托管服务器上,所以我没有很多访问权限,所以他们阻止我将 allow_url_fopen 设置为 ON,原因很明显。所以我的问题是我该如何解决这个问题?任何方向都会得到极大的重视。

感谢大家阅读。

4

2 回答 2

2

您的服务器配置为无法从远程位置包含。这在共享主机环境中很常见,有助于减少服务器负载并减少恶意代码被意外执行的可能性。

但是,如果我理解正确,那么无论如何您都不能只使用该include()构造包含 RSS 提要,因为它不是有效的 PHP 代码 -include()期望路径是有效的 PHP 源代码文件。如果您的服务器允许您这样做,您正在做的事情将导致无用的输出或解析错误。

您需要连接到 RSS 提要(例如使用cURLfsockopen(),具体取决于您对远程站点请求的控制级别)并解析提要数据,以便您可以以合理的格式输出。

于 2011-08-28T12:34:38.243 回答
0

include "http://..."这是一个坏主意,因为http://...如果有人可以在该 RSS 提要的响应中注入 PHP 代码,则它的内容被评估为 PHP 代码,这会使您的站点容易受到攻击。

如果要显示来自其他站点的数据,请使用 curl。从PHP 手册示例:

<?php
// create a new cURL resource
$ch = curl_init();

// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/");
curl_setopt($ch, CURLOPT_HEADER, 0);

// grab URL and pass it to the browser
curl_exec($ch);

// close cURL resource, and free up system resources
curl_close($ch);
?>
于 2011-08-28T12:32:48.587 回答