电影站提供电影bt下载,由于使用宝丽通播放器,上传电影的时候会同时上传一个电影的hash文件。利用这个hash文件,第一次请求时动态的生成对应的bt种子保存(指定路径)并提供下载。当用户点击下载bt种子的时候,首先到对应的目录下检测对应的bt种子文件是否存在,如果存在,则直接提供下载,否则先生成,再下载。

Bt种子的下载直接在文件中使用header跳转的方式。php文件本身是gbk编码。

后来发现,在chrome和firefox和ie6中都能正常工作,但是到了ie8中会出现找打不文件的情况。这让我很郁闷,ie6都能行,结果ie8还有问题。

//指向torrent文件,提供下载
//$torrent_file_url = "torrent/tyvod1/科幻片/雷神托尔.torrent"
$redirect_url = "http://vod.cqjtu.edu.cn/".$torrent_file_url;
Header("HTTP/1.1 303 See Other");
Header("Location: ".$redirect_url);
exit ();

经过对比测试,发现如果路径中有中文,ie8就没法下载。php文件本身是GBK编码,于是我们在跳转之前,先将gbk编码的字符串转换为utf8编码。

//指向torrent文件,提供下载
//$torrent_file_url = "torrent/tyvod1/科幻片/雷神托尔.torrent"
$redirect_url = "http://vod.cqjtu.edu.cn/".$torrent_file_url;
Header("HTTP/1.1 303 See Other");
Header("Location: ".iconv("gbk","utf-8",$redirect_url));
exit ();

这下,在chrome和firefox以及ie8和ie9中都没问题了,但是在ie6中又不能下载了。中文乱码。查资料之后说是因为ie6对UTF-8的支持不够完善。尼玛ie还真难伺候,无论是GBK编码还是UTF-8编码,chrome和firefox都能正确解析,ie自家兄弟居然出这样的问题。

没找到好的办法,只得专门为ie6做一下…

//指向torrent文件,提供下载
//$torrent_file_url = "torrent/tyvod1/科幻片/雷神托尔.torrent"
$redirect_url = "http://vod.cqjtu.edu.cn/".$torrent_file_url;
Header("HTTP/1.1 303 See Other");
if(strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 6.0')===false){//非ie6Header("Location: ".iconv("gbk","utf-8",$redirect_url));
}else{//ie6Header("Location: ".$redirect_url);
}
exit ();

不知道是否有哪位仁兄曾经遇到过这个问题,或者有更好的解决方案。

顺带谈一下宝丽通,不知道有没有谁用过它。这东西怎么说呢,有好也有不好。好的地方就是用起来p2p效果还是不错,不好的地方就是使用不方便,官方给的资料太少,只提供了基本的示例。还有那个.hash文件,直接生成torrent不就得了嘛。最坑爹的就是tracker居然在设置为它自己的tracker,而且没法更改。这要是内网用户用这个根本就没用。不过把官方的安装程序解包之后还是可以修改tracker的。本来就是内网p2p,自己搭建个tracker比用它提供的外网tracker要安全,稳定得多。

如果哪位有更好的免费的局域网p2p解决方案,烦请告诉小弟一声)。

php header 跳转 ie问题相关推荐

  1. php+header+跳转输出,php利用header跳转怎么失效了?

    PHP的header跳转之前不能有任何内容输出,因为PHP开始执行的时候就已经向浏览器送出HTTP头信息,之后就不再允许更改了:且"header("location:xx" ...

  2. php header 无法跳转,PHP利用header跳转失效解决方法

    今天header("Location: $url"),以往跳转总是可以的,今天却不动,只是输出结果.以往自己要确认检查,$url的值获取的是否正确,所以在前面加了echo $url ...

  3. php页面跳转可以用header,php如何使用header()跳转页面?

    php使用header()跳转页面的方法:1.使用"header('Location:url页面地址');"立即跳转页面:2.使用"header('Refresh:tim ...

  4. php HTTP头信息 跳转,php如何实现header跳转

    php实现header跳转的方法以及注意事项: header()函数是PHP中进行页面跳转的一种十分简单的方法.header()函数的主要功能是将HTTP协议标头(header)输出到浏览器. hea ...

  5. thinkPHP5.0中使用header跳转没作用

    我在controller中的方法中这样写: header("Location:".$url); 但是一直没动静,不会跳转,最后还是官方文档解决了 https://www.kancl ...

  6. php不能header跳转页面,PHP问题:php header方法跳转页面问题

    php header方法跳转页面:1.立即跳转,代码为[header('Location:other.php')]:2.提示跳转,代码为[header('Refresh:3,Url=other.php ...

  7. 小猪CMS中的header跳转

    Header('Location:' . $this->siteUrl . U('MicroBroker/home', array('token' => $this->token, ...

  8. php是实现点击改变状态,PHP利用header函数实现各种状态的跳转

    header实现301永久重定向 Header("HTTP/1.1 301 Moved Permanently"); Header("Location: http://w ...

  9. 由被WebInspect***引发的php header()使用问题

    最新做的一个项目,被测试组猛烈***,暴露了不少问题.其中一个问题印象深刻! 测试使用了WebInspect这个扫描工具,扫描了整个网站,包括后台.结果我们的数据库里被灌入大量的垃圾数据,并修改了原有 ...

最新文章

  1. Excel中将一个表格的数据关联到另一个表格
  2. Lync Server 2010的部署系列(四) outlook无法加入联机会议
  3. AVL,B,B+,红黑
  4. php+insert+into+注入,PHP+MySQL之Insert Into数据插入用法分析
  5. 使用ActionTrail Python SDK
  6. 汇编语言笔记(四):内中断
  7. 改善代码可读性的5种方法
  8. apple quicktime怎么在ppt中用_PPT情感专题大赏No. 007:一份这就是街舞第三季主题PPT(上集)...
  9. CentOS 6.2安装配置LAMP服务器(Apache+PHP5+MySQL)
  10. MATLAB实现智能优化算法
  11. vue+elementUI 打印pdf文件
  12. 电机FOC电流环参数整定
  13. 2014年第五届蓝桥杯C++B组第四题:史丰收速算
  14. 前端如何修改网页的标题栏图标和名称
  15. Android 清理后台进程
  16. element-UI设置背景色和边框色
  17. 杭州公积金修改手机号信息
  18. ad被锁定的账户_大量AD域帐号自动被锁定
  19. ACL会议介绍 - Call for Main Conference Papers
  20. 如何通过看电影学英语来源

热门文章

  1. Thrift协议的服务模型
  2. ImportError : No module named graphics
  3. linux基础学习2
  4. 分布式 和 集群的区别
  5. 实例解说 fdisk 使用方法
  6. aspx页面中文汉字显示为乱码
  7. linux 时间相关的一些总结
  8. Zabbix添加nginx监控项
  9. 快速排序算法的优化思路总结
  10. iOS开发-UITableView常用方法