【问题标题】:simplexml_load_file() errorsimplexml_load_file() 错误
【发布时间】:2011-05-16 23:30:24
【问题描述】:

我对 PHP 比较陌生,对 XML 更是如此。

我有一个脚本可以在我的本地主机上完美运行,但是当我尝试将它放在我的服务器上时,我收到了以下消息:

警告:simplexml_load_file() [function.simplexml-加载文件]: http://api.wefeelfine.org:8080/ShowFeelings?display=xml&feeling=happy&returnfields=imageid,feeling,sentence,posttime,postdate,posturl,gender,country,state,city,lat,lon&limit=0&extraimages=20:1:

解析器错误:文档为空 /home2/alsweet/public_html/notalone.php 第 21 行

不工作的代码行是这样的:

// get api feed
$xml = simplexml_load_file('http://api.wefeelfine.org:8080/ShowFeelings?display=xml&feeling=' . $feeling . '&returnfields=imageid,feeling,sentence,posttime,postdate,posturl,gender,country,state,city,lat,lon&limit=0&extraimages=20');

我做错了吗? 我应该与我的托管服务提供商交谈吗?

【问题讨论】:

    标签: php simplexml


    【解决方案1】:

    使用你的 xml 加载器中的 url 我得到:

    <?xml version="1.0"?> 
    <feelings>
    </feelings>
    

    所以它应该可以很好地解析。请咨询您的托管服务提供商,确保支持 simplexml_load_file。

    【讨论】:

    • 我不认为这在他使用的实际 URL 中,它只是错误输出。看到他的源代码没有“:1”
    • @KThompson 你是对的,我没有滚动查看。但是,当使用他的网址时,我得到了一个空集。
    • 我实际上使用“feeling=happy”返回了多个元素。 simplexml 似乎可以工作,因为该错误仅表示 URL 中的错误,而不是该函数不存在或类似的东西
    • 好的,你的主机应该支持。知道您的服务器上的 PHP 版本是什么吗?
    • PHP 版本 5.2.13 根据 phpinfo();
    【解决方案2】:

    尝试隔离那条线,看看它是否确实是问题出在哪里。在它自己的文件中运行这段代码,看看它是否有效。

    <?php
    $xml = simplexml_load_file('http://api.wefeelfine.org:8080/ShowFeelings?display=xml&feeling=happy&returnfields=imageid,feeling,sentence,posttime,postdate,posturl,gender,country,state,city,lat,lon&limit=0&extraimages=20');
    
    print_r($xml);
    
    ?>
    

    【讨论】:

    • 这是解决问题的一种好方法。 :) 但这应该是一个评论 :P ;)
    【解决方案3】:

    这实际上是我的托管问题,

    原来是因为我试图调用端口 8080 上的另一台服务器,该端口未在防火墙中打开出站。所以他们打开了它,它工作正常。

    非常感谢您的帮助!

    【讨论】:

      猜你喜欢
      • 2017-11-10
      • 2015-03-26
      • 2014-10-29
      • 2012-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多