【问题标题】:Use Server Side Includes 'include' command in the html file在 html 文件中使用服务器端包含“include”命令
【发布时间】:2011-08-28 12:24:09
【问题描述】:

背景

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

代码

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

我已经使用ssl命令成功在html文件中添加了include标签,像这样

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

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

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

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

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

感谢大家阅读。

【问题讨论】:

  • 我不确定我是否遵循您的操作。能详细解释一下吗?
  • echo '&lt;iframe src="feed url"&gt;&lt;/iframe&gt;'; 大概?
  • 我相信@DaveRandom 得到了我想要实现的目标。我只是想使用 php 将 rss 提要内容拉到我的 html 页面上
  • Bobby,@hakre 的建议是值得考虑的,因为它减少了应用程序的负载,并让客户端处理提要数据的检索。如果您先将其获取到服务器并将其转发到浏览器,则会导致页面加载速度变慢。使用&lt;iframe&gt;,您的其余内容将立即加载并显示,即使提要服务器出现问题,您也需要考虑这种可能性...
  • 哦,你可能正在寻找echo file_get_contents('http://example.com'); :)

标签: php rss hosting ssi


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

    如果您想显示来自其他站点的数据,请使用 curl。来自PHP Manual 示例:

    <?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-01-21
      • 2013-07-15
      • 1970-01-01
      • 2013-03-13
      • 2013-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多