求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路
这篇文章主要介绍了求帮忙修改个php curl模拟post请求内容后并下载文件的解决办法的相关资料,需要的朋友可以参考下。
下面代码使用curl模拟post请求链接后直接显示出了文件内容,如何修改成不显示内容而直接下载请求到的.torrent格式文件呢。
- function curl_post($header,$data,$url)
- {
- $ch = curl_init();
- $res= curl_setopt ($ch, CURLOPT_URL,$url);
- curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
- curl_setopt ($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
- $result = curl_exec ($ch);
- curl_close($ch);
- if ($result == NULL) {
- return 0;
- }
- return $result;
- }
- $url = 'http://www.bttiantang.com/download4.php' ;
- $header = array("Host:www.bttiantang.com",
- "Content-Type:application/x-www-form-urlencoded",
- 'User-Agent: Mozilla/4.0 (compatible; MSIE .0; Windows NT 6.1; Trident/4.0; SLCC2;)');
- $data = 'action=download&;
- $ret = curl_post($header, $data,$url);
需将内容显示修改为文件下载
echo $ret;
------解决思路----------------------
不要echo $ret;
把$ret写入文件中去。保存起来
------解决思路----------------------
- $ret = curl_post($header, $data,$url);
- //需将内容显示修改为文件下载
- $filename = 'x.torrent';
- header("Content-Type: application/force-download");
- header("Content-Disposition: attachment; filename=$filename");
- echo $ret;