2011-12-01 108 views
2

从我的一个服务器页面的HTML代码中,我需要解决放置在另一个远程服务器上的数据库上特定项目的搜索问题,这个服务器并非我自己的。如何从远程服务器收集HTML源响应?

执行我的请求,搜索类型的示例:http://www.remoteserver.com/items/search.php?search_size=XXL

远程服务器提供给我 - 作为客户端 - 显示页面与符合我搜索标准的若干项的响应。

我不希望显示此页面。我想要的是将字符串(或本地文件)收集到远程服务器HTML响应的全部内容(当我们在IE浏览器客户端中单击“查看源代码”时我们可以访问的代码)。如果我收集数据(它可以很容易地达到50000字节),然后我可以筛选我感兴趣的那个(子字符串),并将一个新的请求汇编到远程服务器,以便只有一个特定的项目提供的响应。

有没有什么方法可以让我从远程服务器使用Javascript或PHP提供的响应中获取HTML,并且避免在浏览器本身显示响应?

我希望我没有混淆你的想法...... 感谢您提供的任何帮助。

+1

您可以使用['file_get_contents'](http://php.net/file_get_contents)或['curl'](http://php.net/curl)或[ 'HT tp'](http://php.net/http)扩展名,用于从URL中检索。 – mario

+0

你可以发送一个ajax请求到'search.php'脚本,然后检查响应? – Cyclonecode

+0

可能与[使用CURL的file_get_contents()等效)?(http://stackoverflow.com/questions/6595041/equivalent-of-file-get-contents-with-curl) – mario

回答

6

作为@mario提到,有几种不同的方式来做到这一点。

使用file_get_contents()

$txt = file_get_contents('http://www.example.com/'); 
echo $txt; 

使用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; 

卷曲可能是最稳健的选择,因为你有过确切的请求参数和可能性错误处理更多的控制选项当事情不按计划进行时

+0

谢谢,我从来没有使用过此功能。很高兴知道我可以依靠这里的一些人帮助一个非程序员,当他们被困住时。 – GoldenDays

+1

每个人都曾经有过,我们中的大多数人(尤其是我!)每天仍然学习新东西 – rdlowrey

相关问题