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_getoverfile_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();
Comments