程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 網頁編程 >> PHP編程 >> 關於PHP編程 >> php header跳轉ie問題

php header跳轉ie問題

編輯:關於PHP編程

電影站提供電影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

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved