现在要用php读取一个网页
但是这个网页加载过程比较慢,加载过程会搜索数据库,大约需要六七秒之后才会搜出结果。如果用
file(url)或者fopen(url)之类的语句,都只能读取页面的初始内容,读不了搜索之后的结果。即使在file或者fopen之后sleep几秒,然后再file_get_content也不行请问要怎么做

解决方案 »

  1.   

    用CURL吧,速度比FILE()或FOPEN()都快,参考http://curl.haxx.se/libcurl/
    简单点的 
    <? 
    $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 );                        //会话结束 
    ?> 
      

  2.   

    絶对不是速度慢的问题~
    fopen跟file_get_content有什么关系?
    你sleep 1万年都不会有用 =_=
      

  3.   


    代码很简单啊  比如说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];}显示出来的是刚开始搜索的画面,始终是进度条。而网站本身要搜索几秒之后才会出结果,怎么样读取搜索出的结果
      

  4.   

    http://flight.qunar.com/twell/flight/DynamicFlightInfo.jsp?fromCity=%E5%B9%BF%E5%B7%9E&toCity=%E5%90%88%E8%82%A5&departureCity=%E5%B9%BF%E5%B7%9E&arrivalCity=%E5%90%88%E8%82%A5&departureDate=2009-05-14
      

  5.   

    http://flight.qunar.com/twell/longwell?http%3A%2F%2Fwww.travelco.com%2FsearchDepartureAirport=%E5%B9%BF%E5%B7%9E&http%3A%2F%2Fwww.travelco.com%2FsearchArrivalAirport=%E5%90%88%E8%82%A5&nextNDays=0&http%3A%2F%2Fwww.travelco.com%2FsearchDepartureTime=2009-05-14&http%3A%2F%2Fwww.travelco.com%2FsearchReturnTime=2009-05-17&searchType=OneWayFlight&searchLangs=zh&locale=zh
      

  6.   

    去分析目标网站是如何 搜索出结果的
    用php去读取那个接口
      

  7.   


    firefox + firebug
    network tab