如何读取使用摘要式身份验证的远程XML文件?

时间:2013-10-10 18:22:32

标签: php xml authentication

我正在使用以下命令在PHP网页中读取远程XML文件:

    $url = 'http://www.examplesite.com/xml';
    $xml = simplexml_load_file($url);

不幸的是,该网站使用摘要式身份验证,通常会弹出用户名/密码框,并要求我登录该网站。将我的用户名和密码嵌入到URL本身(如http://USER:PASSWORD@examplesite.com/)不起作用,也不是很安全。

如何验证(在PHP中)获取XML文件?

1 个答案:

答案 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后验证等)。