php headerジャンプie問題

2235 ワード

映画ステーションは、宝丽通プレーヤーを使用するため、同时に1つの映画のhashファイルをアップロードする.このhashファイルを用いて,最初のリクエスト時に対応するbtシードを動的に生成して保存(パスを指定)し,ダウンロードを提供する.ユーザーがbtシードのダウンロードをクリックすると、まず対応するディレクトリの下で対応するbtシードファイルが存在するかどうかを検出し、存在する場合は直接ダウンロードを提供し、そうでない場合は先に生成し、ダウンロードする.
Btシードのダウンロードは、ファイル内でヘッダジャンプを直接使用します.phpファイル自体はgbk符号化です.
その後、chromeやfirefox、ie 6では正常に動作するが、ie 8ではファイルが見つからない場合があることが分かった.これは私を憂鬱にさせて、ie 6はすべてできて、結局ie 8はまだ問題があります.
//  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 ();

比較テストの結果、パスに中国語があればie 8はダウンロードできないことが分かった.phpファイル自体がGBK符号化であるため,ジャンプする前にgbk符号化文字列をutf 8符号化に変換する.
//  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もie 8もie 9も大丈夫ですが、ie 6ではダウンロードできません.中国語の文字化けし.資料を調べたところ、ie 6のUTF-8へのサポートが不十分だったためだという.ニマieは本当に面倒で、GBKコードでもUTF-8コードでもchromeとfirefoxは正確に解析することができて、ieの自分の兄弟は意外にもこのような問題を出しました.いい方法が見つからなかったので、ie 6のためにやらなければなりません.
//  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 ();

誰がこの問題に直面したことがあるのか、あるいはもっと良い解決策があるのか分からない.
ちなみに宝麗通について話しますが、誰が使ったことがあるか分かりません.これは何と言いますか.いいこともあれば悪いこともあります.良いところはp 2 pの効果がいいのか、悪いところは使い勝手が悪いのか、公式に与えられた資料が少なすぎて、基本的な例しか提供されていません.あとあの.hashファイル、直接torrentを生成すればいいんじゃないですか.一番お父さんはtrackerが自分のtrackerに設定されていて、変更できません.これはイントラネットユーザーがこれを使うとまったく役に立たない.しかし、公式のインストールプログラムを解包した後もtrackerを修正することができます.本来はイントラネットp 2 pであり、自分でtrackerを構築することは、それを提供するアウターネットtrackerよりも安全で、ずっと安定している.どなたかもっと無料のLAN p 2 pソリューションがあれば、弟に教えてください).