0

Curl を使用して Web ページにデータを投稿しています。質問は、この Web ページのデータを取得してファイルに保存する方法です。

 <?
 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;
?>
4

2 に答える 2

1

あなたの質問は明確ではありません。サイト呼び出しから何も返されていないということですか、それとも単に $result に入れられていないということですか?

curl によって返されたデータを $result に取得するには、以下を設定する必要があります。

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); 
于 2013-03-07T15:22:02.807 に答える
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 ) を使用する必要があります。

于 2013-03-07T15:25:59.040 に答える