Как отправить запрос GET с PHP?

Я планирую использовать PHP для простого требования. Мне нужно загрузить XML-контент из URL-адреса, для которого мне нужно отправить HTTP-запрос GET на этот URL.

Как это сделать в PHP?

Ответ 1

Если вам не нужно больше, чем просто содержимое файла, вы можете использовать file_get_contents.

$xml = file_get_contents("http://www.example.com/file.xml");

Для чего-то более сложного, я бы использовал cURL.

Ответ 2

Для более продвинутых запросов GET/POST вы можете установить библиотеку CURL (http://us3.php.net/curl):

$ch = curl_init("REMOTE XML FILE URL GOES HERE"); // such as http://example.com/example.xml
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HEADER, 0);
$data = curl_exec($ch);
curl_close($ch);

Ответ 3

http_get должен сделать трюк. Преимущества http_get over file_get_contents включают возможность просмотра заголовков HTTP, сведений о запросе доступа и управления таймаутом соединения.

$response = http_get("http://www.example.com/file.xml");

Ответ 4

Помните, что если вы используете прокси-сервер, вам нужно сделать небольшой трюк в вашем php-коде:

(PROXY WITHOUT AUTENTICATION EXAMPLE)

<?php
$aContext = array(
    'http' => array(
        'proxy' => 'proxy:8080',
        'request_fulluri' => true,
    ),
);
$cxContext = stream_context_create($aContext);

$sFile = file_get_contents("http://www.google.com", False, $cxContext);

echo $sFile;
?>

Ответ 5

В зависимости от того, разрешает ли ваша php-настройка fopen на URL-адресах, вы также можете просто открыть URL-адрес с помощью аргументов get в строке (например, http://example.com?variable=value)

Изменить: перечитывать вопрос Я не уверен, что вы хотите передать переменные или нет - если вы не можете просто отправить запрос fopen containg http://example.com/filename.xml - не забудьте проигнорировать значение переменной = значение

Ответ 6

Мне нравится использовать fsockopen для этого.

Ответ 7

С другой стороны, использование REST API других серверов очень популярно в PHP. Предположим, вы ищете способ перенаправления некоторых HTTP-запросов на другой сервер (например, получение XML файла). Вот вам пакет PHP, который поможет вам:

https://github.com/romanpitak/PHP-REST-Client

Итак, получив XML файл:

$client = new Client('http://example.com');
$request = $client->newRequest('/filename.xml');
$response = $request->getResponse();
echo $response->getParsedResponse();