Скрипт должен проходить стандартную HTTP-авторизации на другом сервере. Как это сделать? http://b23.ru/about/api/ Инструкция на том сайте: Доступ: при обращении требует передать имя пользователя и API-ключ в качестве пароля в формате стандартной HTTP-авторизации. Вопрос: как передать логин и пароль для авторизации?
Спасибо, как это сделать с cURL разобрался, ничего сложного)) Но как позже выяснилось, сервер не поддерживает cURL(( Если "сляпать запрос самостоятельно", то будет примерно так: Код (Text): <?php $fp = fsockopen("http://b23.ru/about/api/shorten/http:mail.ru", 80, $errno, $errstr, 30); if (!$fp) echo "Error:$errstr ($errno)\n"; else { $out = "GET / HTTP/1.0\r\n"; $out .= "Host: http://b23.ru/about/api/shorten/http:mail.ru\r\n"; $out .= "BasicAuthentication: true\r\n"; $out .= "Password: Tigrann\r\n"; $out .= "Username: ovwhx9an\r\n"; fwrite($fp, $out); fclose($fp); } ?> Возникает два вопроса. Как потом получить то, что нужно и как убрать ошибку: (Unable to find the socket transport "http" - did you forget to enable it when you configured PHP?) in Z:\home\test1.ru\www\socket.php on line 3
Практически всё, что умеет cURL можно сделать с помощью file_get_contents - любые заголовки, юзер-агенты там, можно отправлять также POST-запросы и т.п.
http://ru.php.net/manual/en/function.fi ... ntents.php http://ru.php.net/manual/en/function.st ... create.php
Всё равно не получается( Получился вот такой код: Код (Text): <?php // Создаем поток $opts = array( 'http'=>array( 'method'=>"GET", 'header'=>"BasicAuthentication: true\r\n" . "Login: MyLogin\r\n" . "Password: MyPassword\r\n" ) ); $context = stream_context_create($opts); // Открываем файл с помощью установленных выше HTTP-заголовков $file = file_get_contents('http://b23.ru/api/shorten/nm.ru', false, $context); print $file; ?> Выдаёт ошибку: Warning: file_get_contents(http://b23.ru/api/shorten/nm.ru) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.0 401 Unauthorized
Неправильно авторизуешься. Код (PHP): <?php $login = 'asd'; $pass = 'qwe'; $authCode = base64_encode($login . ':' . $pass); $opts = array( 'http' => array( 'method' => 'GET', 'header' => 'Authorization: Basic ' . $authCode ) ); $context = stream_context_create($opts); // Открываем файл с помощью установленных выше HTTP-заголовков $file = file_get_contents('http://b23.ru/api/shorten/nm.ru', false, $context); print $file; ?>