求帮忙修改个php curl模拟post请求内容后并下载文件的解决思路

这篇文章主要介绍了求帮忙修改个php curl模拟post请求内容后并下载文件的解决办法的相关资料,需要的朋友可以参考下。

下面代码使用curl模拟post请求链接后直接显示出了文件内容,如何修改成不显示内容而直接下载请求到的.torrent格式文件呢。

  1. function curl_post($header,$data,$url)
  2. {
  3. $ch = curl_init();
  4. $res= curl_setopt ($ch, CURLOPT_URL,$url);
  5. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  6. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  7. curl_setopt ($ch, CURLOPT_HEADER, 0);
  8. curl_setopt($ch, CURLOPT_POST, 1);
  9. curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
  10. curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt($ch,CURLOPT_HTTPHEADER,$header);
  12. $result = curl_exec ($ch);
  13. curl_close($ch);
  14. if ($result == NULL) {
  15. return 0;
  16. }
  17. return $result;
  18. }
  19. $url = 'http://www.bttiantang.com/download4.php' ;
  20. $header = array("Host:www.bttiantang.com",
  21. "Content-Type:application/x-www-form-urlencoded",
  22. 'User-Agent: Mozilla/4.0 (compatible; MSIE .0; Windows NT 6.1; Trident/4.0; SLCC2;)');
  23. $data = 'action=download&;
  24. $ret = curl_post($header, $data,$url);

需将内容显示修改为文件下载

echo $ret;

------解决思路----------------------

不要echo $ret;

把$ret写入文件中去。保存起来

------解决思路----------------------

  1. $ret = curl_post($header, $data,$url);
  2. //需将内容显示修改为文件下载
  3. $filename = 'x.torrent';
  4. header("Content-Type: application/force-download");
  5. header("Content-Disposition: attachment; filename=$filename");
  6. echo $ret;