【问题标题】:the coding problem in server服务器中的编码问题
【发布时间】:2010-03-16 05:22:59
【问题描述】:
$fp = fopen("http://feeds.reuters.com/Reuters/PoliticsNews?format=xml","r")
    or die("Error reading RSS data.");

上面的代码在 localhost;;;

但在服务器显示“读取 RSS 数据时出错。”...

我不知道为什么......

请大家解释一下...

我在等……

谢谢

【问题讨论】:

    标签: php localhost


    【解决方案1】:

    一个可能的原因是allow_url_fopen 可能被禁用(引用)

    此选项启用 URL 感知 启用访问的 fopen 包装器 URL 对象,如文件。

    您可以使用phpinfo() 功能检查它是否已启用。


    如果未启用,您将不得不使用其他解决方案来发送获取该远程内容的 HTTP 请求。

    例如,使用curl 可能是一种解决方案;请参阅curl_exec 以获取快速示例,curl_setopt 以获取所有可能选项的列表。
    下面是一个简单请求的样子:

    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, "http://feeds.reuters.com/Reuters/PoliticsNews?format=xml");
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    $feed = curl_exec($ch);
    curl_close($ch);
    

    这将为您提供$feed 中的提要内容——但请查看curl_setopt 的手册页:有很多选项,浏览列表并不是一个坏主意。


    不过,作为预防措施,在这样做之前,您可能需要检查 curl 是否启用,是 phpinfo() 的输出...

    【讨论】:

      【解决方案2】:

      尝试确保在服务器上启用了allow_url_fopen。如果不是,对 fopen 的调用将失败。

      【讨论】:

        【解决方案3】:

        很可能服务器配置了so that fopen() can not open a remote URL。您可能想尝试使用Simplepie 来解析提要,这样可以减轻痛苦。

        【讨论】:

          【解决方案4】:

          关于“可能的原因”的废话,而不是关于如何找到真正原因的建议。

          ini_set('display_errors',1);
          error_reporting(E_ALL);
          

          在脚本顶部查看问题所在。

          【讨论】:

          • 嗯.. 垃圾?是的,那会走得很远。 ini_set() 并不总是有效,顺便说一句:)
          • 我不是在说“总是”。我说的是现在。在 this 的情况下它会起作用,因为我们可以看到这段代码没有语法错误。
          • 如果 allow_url_fopen 未启用,很有可能 ini_set() 被列在 disable_functions 中。我看不到将 OP 指向 phpinfo() 和描述 allow_url_fopen 的文档是垃圾吗?
          • 因为它在猜测。程序员不应该猜。程序员应该调试。
          猜你喜欢
          • 1970-01-01
          • 2018-04-21
          • 2015-05-21
          • 2023-04-09
          • 2011-05-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多