PHP:Загрузить файл с другого веб-сервера, используя базовую аутентификацию?
-
19-09-2019 - |
Вопрос
Я использую PHP уже некоторое время, но я не слишком продвинут.У меня не так уж много опыта работы с межсерверными связями.Мне нужно изучить возможность настройки канала данных у поставщика.Контактное лицо, с которым я разговаривал, сказало, что я буду загружать файл с их сервера, используя имя пользователя и пароль с помощью базовой аутентификации.Кто-нибудь, пожалуйста, может рассказать мне, как это сделать?
Спасибо!!
Решение
$f = fopen("http://$username:$password@example.com");
затем просто используйте те же методы, что и для манипулирования файлами, например.fread, fgets, fclose и т.д.
Другие советы
Заключается в размещении этого заголовка запроса в HTTP-запросе:
$login = "havenard";
$pass = "my l33t p4ssw0rd";
$header = "Authorization: Basic " . base64_encode("{$login}:{$pass}");
Теперь то, как вы собираетесь поместить это туда, будет зависеть от методов, которые вы используете для установления этого соединения.
Я думаю, что если бы они сказали вам "загрузить файл", вы, возможно, захотели бы реализовать решение на основе cURL:PHP:Скручивание - Ручное
И вы можете использовать запрос заголовка, который Хэвенард перечислил в своем посте:
$login = "havenard";
$pass = "my l33t p4ssw0rd";
$auth = "Authorization: Basic " . base64_encode("{$login}:{$pass}");
Вероятно, они имеют в виду использование SOAP API, этот формат использует (обычно) имя пользователя / пароль + вызов функции для получения / публикации данных из сервиса.Выполните поиск по php SOAP, или nusoap, и т.д.Этого должно хватить вам для начала работы.
Однако я хотел бы получить твердое "имя" сервиса для использования.Я предполагаю здесь для вас, что это МЫЛО, поскольку это то, с чем я больше всего знаком по личному использованию.
Редактировать:Если только под "базовой аутентификацией" они не подразумевают:http://us.php.net/manual/en/features.http-auth.php
Я предполагаю, что person означает что-то вроде HTTPAuth, когда при переходе на страницу в вашем браузере появляется поле имени пользователя / пароля, и вы должны предоставить учетные данные перед загрузкой содержимого.
Для этого вы можете использовать CURL.PHP имеет хороший набор функции скручивания за то, что справился с этим.Вам нужно будет настроить его с помощью параметра CURLOPT_NETRC.