我正在使用以下命令在PHP网页中读取远程XML文件:
$url = 'http://www.examplesite.com/xml';
$xml = simplexml_load_file($url);
不幸的是,该网站使用摘要式身份验证,通常会弹出用户名/密码框,并要求我登录该网站。将我的用户名和密码嵌入到URL本身(如http://USER:PASSWORD@examplesite.com/)不起作用,也不是很安全。
如何验证(在PHP中)获取XML文件?
答案 0 :(得分:0)
function get($url, $user, $pass) {
$ch = curl_init();
curl_setopt($ch, CURLOPT_FORBID_REUSE, 1);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_DIGEST);
curl_setopt($ch, CURLOPT_USERPWD, "$user:$pass");
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$res = curl_exec();
curl_close($ch);
return $res;
}
您可以使用cURL执行此操作。请注意,可能不需要前3个卷曲标志 - 禁止重复使用,新连接,跟随位置,但在某些情况下可能需要(302后验证等)。