在Php中没有使用Curl获取网页内容

时间:2013-03-07 15:14:34

标签: php curl

我使用Curl将一些数据发布到网页。我的问题是如何获取此网页的数据并将其存储在文件中?

 <?
 extract($_POST);
 //set POST variables
 $trainno="12635";
 $url = 'http://www.indianrail.gov.in/cgi_bin/inet_trnnum_cgi.cgi';
 $fields = array(
                    'lccp_trnname'=>urlencode($trainno),
           );

 //url-ify the data for the POST
 foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
 rtrim($fields_string,'&');

 //open connection
 $ch = curl_init();

 //set the url, number of POST vars, POST data
 curl_setopt($ch,CURLOPT_URL,$url);
 curl_setopt($ch,CURLOPT_POST,count($fields));
 curl_setopt($ch,CURLOPT_POSTFIELDS,$fields_string);
 curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');

 //execute post
 $result = curl_exec($ch);

 //close connection
 curl_close($ch);
 echo $result;
?>

2 个答案:

答案 0 :(得分:1)

你的问题不明确。你是说你没有从网站通话中得到任何回报,或者只是说它没有被投入$ result?

要将curl返回的数据输入$ result,您需要设置:

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 

答案 1 :(得分:0)

您需要查看PHP的DOMDocument :: loadHTML()方法(http://docs.php.net/manual/en/domdocument.loadhtml.php)。在构建查询字符串时,不需要手动执行此操作;你应该使用http_build_query()(http://www.php.net/manual/en/function.http-build-query.php)。