cURL基本认证

Que*_*yot 0 html php get

我正试图从远程服务器访问文件

$fp = @fsockopen($ip,$port,$errno,$errstr,1);    
fputs($fp, "GET /randomfiletoget.html HTTP/1.0\r\nUser-Agent: Mozilla\r\n\r\n");
Run Code Online (Sandbox Code Playgroud)

但是服务器需要HTML身份验证.我应该如何传递登录名/密码才能访问该文件?

谢谢!

Dej*_*vic 5

对于潜在的挫折者,我authentification是故意写的.更改Host为您的域名.它应返回HTML输出,并带有有效的用户名和密码.

function authentification($url, $username, $password){
    $headers = array(
    "Host=example.com",
    "User-Agent=Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11",
    "Accept=text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language=en-us,en;q=0.5",
    "Accept-Encoding=gzip,deflate",
    "Accept-Charset=ISO-8859-1,utf-8;q=0.7,*;q=0.7",
    "Date: ".date(DATE_RFC822)
    );

    $curl = curl_init($url);
    curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_ANY);
    curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
    curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 0);
    curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($curl, CURLOPT_USERPWD, "$username:$password");
    return curl_exec($curl);
}
Run Code Online (Sandbox Code Playgroud)