Как отправить запрос GET с PHP?
Я планирую использовать PHP для простого требования. Мне нужно загрузить XML-контент с URL-адреса, для которого мне нужно отправить запрос HTTP GET на этот URL-адрес.
Как это сделать в PHP?
7 ответов
Если вам не нужно больше, чем просто содержимое файла, вы можете использовать file_get_contents
.
$xml = file_get_contents("http://www.example.com/file.xml");
для чего-нибудь более сложного я бы использовал cURL.
для более продвинутых запросов 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);
http_get
следует сделать трюк. Преимущества http_get
над file_get_contents
включите возможность просмотра заголовков HTTP, сведений о запросе доступа и управления временем ожидания соединения.
$response = http_get("http://www.example.com/file.xml");
помните, что если вы используете прокси, вам нужно сделать небольшой трюк в своем 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;
?>
в зависимости от того, позволяет ли ваша настройка php fopen на URL-адресах, вы также можете просто открыть url-адрес с аргументами get в строке (например,http://example.com?variable=value)
Edit: перечитывая вопрос, я не уверен, хотите ли вы передать переменные или нет - если вы не можете просто отправить запрос fopen containg http://example.com/filename.xml - не стесняйтесь игнорировать переменную=часть значения
С другой стороны, использование 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();