Heim >Backend-Entwicklung >PHP-Tutorial >求帮忙修改个php curl模拟post请求内容后并下载文件

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

WBOY
WBOYOriginal
2016-06-23 13:26:29879Durchsuche

下面代码使用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&id=26881&uhash=eecf3d3071a7b672c314bc39';$ret = curl_post($header, $data,$url);//需将内容显示修改为文件下载echo $ret;


回复讨论(解决方案)

不要echo $ret;
把$ret写入文件中去。保存起来

不要echo $ret;
把$ret写入文件中去。保存起来



试过使用
header("Content-Type: application/force-download");
$ret;
下载的是该PHP空白文件
使用
$filename=$ret;
header("Content-Type: application/force-download");
header("Content-Disposition: attachment; filename=".basename($filename));  
readfile($filename);
则下载一堆乱码的PHP文件

下载的文件名自己定义成.torrent的后缀     这个种子是 5.Flights.Up.2014.LIMITED.720p.BRRip.XviD.AC3-RARBG?

$ret = curl_post($header, $data,$url);//需将内容显示修改为文件下载$filename = 'x.torrent';header("Content-Type: application/force-download");header("Content-Disposition: attachment; filename=$filename");  echo $ret;
下载的 x.torrent 用迅雷打开为

$ret = curl_post($header, $data,$url);//需将内容显示修改为文件下载$filename = 'x.torrent';header("Content-Type: application/force-download");header("Content-Disposition: attachment; filename=$filename");  echo $ret;
下载的 x.torrent 用迅雷打开为

非常感谢xuzuning版主和BingoVictor提供的技术支持,我之前利用A文件获得请求内容后再使用B文件下载A文件并自定义命名和后缀。
而版主提供的方法效率更高,更方便。谢谢了

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn