现在要用php读取一个网页
但是这个网页加载过程比较慢,加载过程会搜索数据库,大约需要六七秒之后才会搜出结果。如果用
file(url)或者fopen(url)之类的语句,都只能读取页面的初始内容,读不了搜索之后的结果。即使在file或者fopen之后sleep几秒,然后再file_get_content也不行请问要怎么做
但是这个网页加载过程比较慢,加载过程会搜索数据库,大约需要六七秒之后才会搜出结果。如果用
file(url)或者fopen(url)之类的语句,都只能读取页面的初始内容,读不了搜索之后的结果。即使在file或者fopen之后sleep几秒,然后再file_get_content也不行请问要怎么做
简单点的
<?
$url='http://www.163.com';
ob_start(); //打开输出缓冲区
$ch = curl_init(); //初始化会话
curl_setopt( $ch, CURLOPT_URL, $url ); //设定目标URL
curl_exec( $ch ); //发送请求
//$retrievedhtml = ob_get_contents(); //返回内部缓冲区的内容
//ob_end_clean(); //删除内部缓冲区的内容并关闭内部缓冲区
curl_close( $ch ); //会话结束
?>
复杂点的
<?
$url='http://202.201.7.9/CSTJ/Sear.dll?SearchZK';
$param='E=%3C1%2C4%3E%3A%28%28Title_C%3DCAm%29*Years%3D%282002%2B2003%2B2004%2B2005%2B2006%2B2007%29%29&S=1&N=20&P=1&C=0&H=%28%CC%E2%C3%FB%3DCAD%29*Year%3D2002-2007&M=&KM=&GX=&CSID=%7BC8E8BDCF-73D3-45F2-9FE9-89C8B28A02D1%7D'; //指定POST数据
ob_start(); //打开输出缓冲区
$ch = curl_init(); //初始化会话
curl_setopt( $ch, CURLOPT_URL, $url ); //设定目标URL
curl_setopt( $ch, CURLOPT_POST, 1 ); //设定表单发送方式为POST
curl_setopt( $ch, CURLOPT_POSTFIELDS, $param ); //POST数据
curl_exec( $ch ); //发送请求
//$retrievedhtml = ob_get_contents(); //返回内部缓冲区的内容
//ob_end_clean(); //删除内部缓冲区的内容并关闭内部缓冲区
curl_close( $ch ); //会话结束
?>
fopen跟file_get_content有什么关系?
你sleep 1万年都不会有用 =_=
代码很简单啊 比如说qunar的网站$file='http://flight.qunar.com/site/oneway_list.htm?searchDepartureTime=2009-05-14&arrivalTime=2009-05-17&searchDepartureAirport=%E5%B9%BF%E5%B7%9E&searchArrivalAirport=%E5%90%88%E8%82%A5&searchType=OneWayFlight&startSearch=true&from=qunarindex';$testvar=file($file);for ($i=0;$i<count($testvar);$i++){echo $testvar[$i];}显示出来的是刚开始搜索的画面,始终是进度条。而网站本身要搜索几秒之后才会出结果,怎么样读取搜索出的结果
用php去读取那个接口
firefox + firebug
network tab