使用密码从网站获取xml数据

时间:2014-05-09 19:14:01

标签: php xml

我想从网站上获取带有XML输出的www.example.com/stations数据:

<stations>
    <station>
        <name>Loppersum</name>
        <code>LP</code>
        <country>NL</country>
        <lat>53.334713</lat>
        <long>6.7472625</long>
        <alias>false</alias>
    </station>
    <station>
         <name>Ludinghausen</name>
         <code>ELDH</code>
         <country>D</country>
         <lat>51.76184</lat>
         <long>7.43165</long>
         <alias>true</alias>
    </station>
</stations>

但是网址受密码和用户名保护(我有)。

我以为我可以使用cURL功能,但我之前从未使用过它。 我可以将数据存储为对象吗?

修改
这是一个HTTP授权,我使用 PHP

1 个答案:

答案 0 :(得分:0)

您没有指定正在使用的登录方案类型。

如果你反对HTTP授权,你可以简单地使用curl的-u参数。请参阅此答案:Using cURL with a username and password?

如果你反对cookie授权,它会变得有点复杂。您很可能需要充当网络浏览器并且&#34;登录&#34;到网站,然后执行您的请求。这两个请求都需要访问您提供给curl的cookie jar /文件。

修改 作者表示这是使用PHP的HTTP授权。

解决方案是使用PHP的SimpleXMLElement来获取XML对象。您可以使用Curl下载XML数据并将其传递给构造函数,或者您可以SimpleXMLElement为您执行此操作。

试试这个:

$user = 'someuser';
$pass = 'somepass';
$url  = "http://$someuser:$somepass@example.com/stations";
$obj  = new SimpleXMLElement($url, NULL, TRUE);

echo $obj->movie[0]->title; // example

希望有所帮助。