Изнутри HTML-кода на одной из моих серверных страниц мне нужно обратиться к поиску определенного элемента в базе данных, размещенной на другом удаленном сервере, который у меня не сам.
Пример типа поиска, который выполняет мой запрос: http://www.remoteserver.com/items/search.php?search_size=XXL
Удаленный сервер предоставляет мне – как клиент – ответ, отображающий страницу с несколькими элементами, которые соответствуют моим критериям поиска.
Я не хочу, чтобы эта страница отображалась. Я хочу, чтобы собрать в строку (или локальный файл) полное содержимое ответа на удаленный сервер HTML (код, который у нас есть, когда мы нажимаем «Просмотр источника» в моем браузере IE).
Если я соберу эти данные (это может легко достигнуть 50000 байт), я смогу затем фильтровать тот, в котором меня интересуют (подстроки), и собрать новый запрос на удаленный сервер только для одного из конкретных элементов предоставленного ответа.
Есть ли способ, с помощью которого я могу получить HTML из ответа, предоставленного удаленным сервером, с помощью Javascript или PHP, а также избежать отображения ответа в самом браузере?
Надеюсь, я не смутил ваши мысли … Спасибо за любую помощь, которую вы можете предоставить.
Как отметил @mario, есть несколько способов сделать это.
Использование file_get_contents()
:
$txt = file_get_contents('http://www.example.com/'); echo $txt;
Использование функций curl php:
$url = 'http://www.mysite.com'; $ch = curl_init($url); // Tell curl_exec to return the text instead of sending it to STDOUT curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // Don't include return header in output curl_setopt($ch, CURLOPT_HEADER, 0); $txt = curl_exec($ch); curl_close($ch); echo $txt;
завиток, вероятно, является наиболее надежным вариантом, поскольку у вас есть опции для большего контроля над точными параметрами запроса и возможностями обработки ошибок, когда все идет не так, как планировалось