1. 云栖社区>
  2. PHP教程>
  3. 正文

php header 跳转 ie有关问题

作者:用户 来源:互联网 时间:2017-12-01 17:09:14

php问题header

php header 跳转 ie有关问题 - 摘要: 本文讲的是php header 跳转 ie有关问题,php header 跳转 ie问题电影站提供电影bt下载,由于使用宝丽通播放器,上传电影的时候会同时上传一个电影的hash文件。利用这个hash文件,第一次请求时动态的生成对应的bt种子保存(指定路径)并提供下载。当用户点击下载bt种子的

php header 跳转 ie问题

电影站提供电影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 ,以便于您获取更多的相关知识。