Сходу нагуглился вот такой вариант. Не знаю, работает или нет.
Basic-авторизация через PHP
Тут тоже ничего сложного нет. Привожу код функции, которая авторизуется по указанному адресу с указанными логином-паролем и возвращает контент сайта, доступный после авторизации:
Код:
<?
function do_authorize($host, $uri, $user, $pwd) {
$out = "GET $uri HTTP/1.1\r\n";
$out .= "Host: ".$host."\r\n";
$out .= "Connection: Close\r\n";
$out .= 'Authorization: Basic '.base64_encode($user.':'.$pwd)."\r\n";
$out .= "\r\n";
if (!$sock = @fsockopen($host, 80, $errno, $errstr, 10)) {
return 0;
}
fwrite($sock, $out);
$data = '';
while (!feof($sock)) {
$data .= fgets($sock);
}
fclose($sock);
return $data;
}
if ($source = do_authorize('localhost','/test.php', 'novice', 'novice')) {
echo $source;
} else {
echo "I can't connect!";
}
?>
Я таким образом написал скрипт для проверки трафика у своего интернет-провайдера, который как раз предоставляет такую информацию через сайт с basic-аутентификацией, чтобы не лазить туда вручную постоянно.