在我的一个服务器页面的 HTML 代码中,我需要解决对数据库中特定项目的搜索,该数据库位于另一台不属于我的远程服务器上。
执行我的请求的搜索类型示例:http://www.remoteserver.com/items/search.php?search_size=XXL
远程服务器向我(作为客户端)提供响应,显示一个页面,其中包含多个符合我的搜索条件的项目。
我不想显示这个页面。我想要的是将远程服务器 HTML 响应的全部内容(当我们在我的 IE 浏览器客户端中单击“查看源代码”时我们可以访问的代码)收集到一个字符串(或本地文件)中。
如果我收集该数据(它很容易达到 50000 字节),然后我可以过滤我感兴趣的数据(子字符串)并仅针对响应中的特定项目之一向远程服务器组装一个新请求提供。
有什么方法可以让我从远程服务器使用 Javascript 或 PHP 提供的响应中获取 HTML,同时避免在浏览器本身中显示响应?
我希望我没有混淆你的想法...... 感谢您提供的任何帮助。
最佳答案
正如@mario 提到的,有几种不同的方法可以做到这一点。
使用 file_get_contents()
:
$txt = file_get_contents('http://www.example.com/');
echo $txt;
使用 php 的 curl 函数:
$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;
curl 可能是最强大的选项,因为您可以选择更多地控制确切的请求参数以及在事情未按计划进行时进行错误处理的可能性
关于php - 如何从远程服务器收集 HTML 源响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8349624/