首页 > php教程 > php手册 > 正文

php header跳转ie问题

php中文网
发布: 2016-06-13 10:50:25
原创
1716人浏览过

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

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

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

[php]
//指向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编码。

[php] 
//指向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做一下…    
[php] 
//指向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){//非ie6 
    Header("Location: ".iconv("gbk","utf-8",$redirect_url)); 
}else{//ie6 
    Header("Location: ".$redirect_url); 

exit (); 
作者:jdluojing

PHP速学教程(入门到精通)
PHP速学教程(入门到精通)

PHP怎么学习?PHP怎么入门?PHP在哪学?PHP怎么学才快?不用担心,这里为大家提供了PHP速学教程(入门到精通),有需要的小伙伴保存下载就能学习啦!

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号