求指点PHP里的curl_exec有关问题

WBOY
发布: 2016-06-13 12:03:06
原创
1084 人浏览过

求指点PHP里的curl_exec问题

本帖最后由 easyrecovery8 于 2014-07-25 08:17:46 编辑 某网盘的压缩包rar格式外链有referer检测防盗链,本人想把它放到博客上供人下载,于是学习PHP伪造referer,但是得到的结果是一串乱码,估计是把压缩包以文本的形式输出了,本人是菜鸟,求大神指点如何让它以打开原连接的形式下载啊
我的代码如下:
<?php<br />$url = '某个连接地址url.rar格式';<br />$ch = curl_init(); //初始化<br />curl_setopt($ch, CURLOPT_URL, $url); //你要访问的页面<br />curl_setopt($ch, CURLOPT_REFERER, '某个来路url'); //伪造来路页面<br />curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); <br /><br />$content = curl_exec($ch); //执行<br />curl_close($ch); //关闭<br />echo $content;<br />?>
登录后复制

------解决方案--------------------
你把这些得到的结果另存成rar格式,如果能打开,说明内容是对的。这样的话,只需要输出一下Header信息就可以了:
header("Content-type: application/octet-stream");<br />Header("Content-Disposition: attachment; filename=download.rar" );<br />
登录后复制
登录后复制

------解决方案--------------------
引用:
Quote: 引用:

你把这些得到的结果另存成rar格式,如果能打开,说明内容是对的。这样的话,只需要输出一下Header信息就可以了:
header("Content-type: application/octet-stream");<br />Header("Content-Disposition: attachment; filename=download.rar" );<br />
登录后复制
登录后复制


用这个能下载打开,很感谢!
但是改变了原RAR的文件名称,比如原下载地址的rar名称是 电子书.rar ,但是这个下载的就是download.rar,有什么办法让它保存为原名称吗?

这个需要你自己分析下载地址的关系
------解决方案--------------------
嗯,那样不行,头变成了正文。要这样
既然对方提供的是下载,那么相关信息自然已经都提供了,包括文件名和文件长度
$url = '/某个连接地址url.rar格式';<br />$ch = curl_init(); //初始化<br />curl_setopt($ch, CURLOPT_URL, $url); //你要访问的页面<br />curl_setopt($ch, CURLOPT_REFERER, '某个来路url'); //伪造来路页面<br />curl_setopt($ch, CURLOPT_HEADER, 1); //要读回 http 头<br />curl_setopt($ch, CURLOPT_WRITEFUNCTION, 'func'); //监听返回的数据<br />curl_exec($ch); //执行<br /><br />function func($ch, $str) {<br />  static $s = '@';<br />  if($s) {<br />    $s = trim($str);<br />    if($s) header($s); //如果是头信息,则发送相应的头<br />  }else echo $str; //否则发送数据<br />  return strlen($str);<br />}<br />
登录后复制


------解决方案--------------------
中文文件名出现乱码是正常现象
服务端可能是gbk或utf-8 编码的
客户端也可能是gbk或utf-8 编码的
你需要在收到形如 Content-Disposition: attachment; filename=download.rar 这样的头信息时对其中中文文件名做一下判断,必要时根据客户端的字符集进行转码处理
相关标签:
来源:php.cn
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!