【问题标题】:simplexml_load_file() not working when trying to load intranet RSS尝试加载 Intranet RSS 时 simplexml_load_file() 不起作用
【发布时间】:2012-11-01 17:03:38
【问题描述】:

我正在尝试使用 simplexml_load_file 加载 wordpress RSS 提要,但失败了。

我有一个驻留在我们内部网络服务器(内联网)上的 PHP 脚本和一个驻留在内联网/新闻通讯上的 wordpress 博客。我正在尝试使用以下代码广告将 RSS 提要从博客拉入我们的内部网:

$rss = simplexml_load_file('intranet/newsletter/feed/');

这是我得到的错误:

警告:simplexml_load_file():I/O 警告:无法加载外部 /var/www/html/intranet/test.php 中的实体“intranet/newsletter/feed/” 在第 69 行

我尝试过使用

$rss = simplexml_load_file('http://intranet/newsletter/feed/');

没有成功。

从浏览器 Intranet/newsletter/feed/ 工作正常。

【问题讨论】:

  • intranet 是否代表其他东西?
  • stackoverflow.com/questions/9771666/… 验证ini_set('allow_url_fopen ','ON'); ?
  • php 在浏览器指向内网的同一台机器上运行?
  • 是的,ini_set('allow_url_fopen','ON');存在。
  • @dev-null-dweller 时事通讯 rss 提要和 Intranet 都在同一个内部 Web 服务器上。

标签: php rss simplexml


【解决方案1】:

来自评论:

您可以尝试使用服务器 IP 地址吗(例如 http://1.2.3.4/newsletter/feed/) 代替内网看看有没有 有效吗?

由于某种原因,php 无法将 Intranet 映射到 IP。 /etc/hosts 有正确的内网入口吗?

【讨论】:

    【解决方案2】:

    尝试使用file_get_contents函数

     $xml = simplexml_load_string(file_get_contents('http://intranet/newsletter/feed/'));
    

    【讨论】:

    • 试过你的建议,这给了我这个:警告:file_get_contents(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/html/intranet/test.php on line 693
    • 根据 dev-null-dweller 的建议,尝试使用 IP 而不是域名:simplexml_load_string(file_get_contents('10.10.1.1/newsletter/feed/'))
    猜你喜欢
    • 2019-08-05
    • 2015-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-02
    相关资源
    最近更新 更多