Я планирую использовать PHP для простого требования. Мне нужно загрузить содержимое XML с URL-адреса, для чего мне нужно отправить HTTP-запрос GET на этот URL-адрес.
Как мне это сделать в PHP?
Если вам не нужно больше, чем просто содержимое файла, вы можете использовать file_get_contents
.
$xml = file_get_contents("http://www.example.com/file.xml");
Для чего-то более сложного, я бы использовал cURL .
failed to open stream: HTTP request failed!
file_get_contents
не позволяет вам сделать запрос с помощью пользовательских файлов cookie, заголовков и других вещей, которые обычно отправляет браузер, поэтому вы можете не получить ответ, который искали. В этом случае вам лучше использовать CURL в любом случае. (Но это не случай ОП.)Для более сложных запросов GET / POST вы можете установить библиотеку CURL ( http://us3.php.net/curl ):
источник
file_get_contents()
. Простая четырехбуквенная строка заняла около 10 секунд, а скручивание - более 1 секунды.http_get
должен сделать свое дело. Преимуществаhttp_get
overfile_get_contents
включают возможность просмотра заголовков HTTP, доступа к деталям запроса и контроля времени ожидания соединения.источник
Помните, что если вы используете прокси-сервер, вам нужно сделать небольшой трюк в своем php-коде:
источник
В зависимости от того, позволяет ли ваша настройка php открывать URL-адреса, вы также можете просто указать URL с аргументами get в строке (например, http://example.com?variable=value )
Изменить: Перечитывая вопрос, я не уверен, хотите ли вы передать переменные или нет - если вы не можете, просто отправьте запрос fopen, связавшись с http://example.com/filename.xml - не стесняйтесь игнорировать переменную = значение части
источник
Мне нравится использовать fsockopen open для этого.
источник
С другой стороны, использование REST API других серверов очень популярно в PHP. Предположим, вы ищете способ перенаправить некоторые HTTP-запросы на другой сервер (например, получить файл XML). Вот пакет PHP, чтобы помочь вам:
Итак, получив XML-файл:
источник
Guzzle - очень хорошо известная библиотека, которая позволяет очень легко выполнять всевозможные HTTP-вызовы. Смотрите https://github.com/guzzle/guzzle . Установить с помощью
composer require guzzlehttp/guzzle
и запуститьcomposer install
. Теперь приведенного ниже кода достаточно для вызова http.источник