代码之家  ›  专栏  ›  技术社区  ›  Logan Serman

正在加载带有文件“获取”内容()的远程XML页

  •  12
  • Logan Serman  · 技术社区  · 17 年前

    我在网上看到过一些类似的问题,没有答案。

    我想将远程XML页的源返回到字符串中。在这个问题中,远程XML页面是:

    http://www.test.com/foo.xml
    

    在常规的WebBrowser中,我可以查看页面,源代码是XML文档。当我使用 file_get_contents('http://www.test.com/foo.xml') 但是,它返回一个带有相应URL的字符串。

    是否需要检索XML组件?我不在乎它是否使用文件获取内容,只是一些有用的东西。

    2 回复  |  直到 10 年前
        1
  •  15
  •   maafk    10 年前

    您需要在服务器中设置“允许URL”以使其正常工作。

    如果您不这样做,则可以使用此功能作为替换:

    <?php
    function curl_get_file_contents($URL)
        {
            $c = curl_init();
            curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($c, CURLOPT_URL, $URL);
            $contents = curl_exec($c);
            curl_close($c);
    
            if ($contents) return $contents;
                else return FALSE;
        }
    ?>
    

    借来 here .

        2
  •  14
  •   Björn    17 年前

    这似乎很奇怪。file_get_contents()是否为其他站点(不仅是XML)返回任何有效数据?如果 the fopen-wrappers 已启用(默认为启用状态)。

    我猜您稍后会处理检索到的XML—然后您应该能够将其加载到 SimpleXml 直接使用simpleXML_load _file()。

    try {
       $xml = simplexml_load_file('http://www.test.com/foo.xml');
       print_r($xml);
    } ...
    

    我建议使用simpleXML来读取XML文件,这非常容易使用。

    推荐文章