我想从网站上获取带有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
答案 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
希望有所帮助。