Вот через сокет (это если вдруг курла нет)
$fp = @fsockopen("tcp://".$host, 80, $errno, $errstr, 10);
if (!$fp)
{
die($errstr.':'.$errno);
}
else
{
$out = "GET $path HTTP/1.0\r\n";
$out .= "Host: $host\r\n";
//авторизируемся
$out .= "Authorization: Basic " . base64_encode("$user:$password") . "\r\n";
$out .= "Connection: Close\r\n\r\n";
//посылаем данные
fwrite($fp, $out.$data);
$headers='';
//читаем заголовки
while ($str = trim(fgets($fp, 10000)))
$headers .= "$str\n";
$body='';
//читаем ответ
while (!feof($fp))
$body.= fgets($fp, 10000);
//закрываем сокет
fclose($fp);
}