ホームページ > バックエンド開発 > PHPチュートリアル > PHP でファイルを強制的にダウンロードするコード (IE で中国語のファイル名が文字化けする問題を解決する)_PHP チュートリアル

PHP でファイルを強制的にダウンロードするコード (IE で中国語のファイル名が文字化けする問題を解決する)_PHP チュートリアル

WBOY
リリース: 2016-07-21 15:29:43
オリジナル
884 人が閲覧しました

途中で発生した問題は、送信された中国語のファイル名をヘッダーに直接配置すると、IE で文字化けしてしまうことです。解決策は、次のように、最初にファイル名を URL エンコーディングしてからヘッダーに配置することです。

コードをコピーします コードは次のとおりです:
$file_name = urlencode($_REQUEST['filename'])
header("Pragma: public"); : 0" );
header("キャッシュ制御: 必須再検証、事後チェック = 0、事前チェック = 0");
ヘッダー("コンテンツ タイプ: application/force-download");
header( 'Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Transfer-Encoding: binary");
header('Content-Disposition:attachment; filename='.$ file_name);
echotripslashes($_REQUEST['content']);
?> 1 つは、中国語の URL の URLencode エンコードを入力することです。
解決策 1 (私のページは utf-8 でエンコードされています):



コードをコピーします

コードは次のとおりです:
$filename = "English.txt" $ua = $_SERVER["HTTP_USER_AGENT "] ; $encoded_filename = urlencode($filename);
$encoded_filename = str_replace("+", "%20", $encoded_filename);
header('Content-Type: application/octet-stream');
if (preg_match ("/MSIE/", $ua)) {
header('Content-Disposition:attachment; filename="' . $encoded_filename . '"')
} else if (preg_match("/Firefox/", $ua )) {
header('Content-Disposition:attachment; filename*="utf8''' . $filename . '"')
} else {
header('Content-Disposition:attachment; filename="' . $ filename . '"');
}



解決策 2

次のように、最初にファイル名を Urlencode してヘッダーに挿入します。
コードは次のとおりです:




コードをコピーします

コードは次のとおりです:
$file_name = urlencode($_REQUEST['filename']); header("Pragma: public"); header(" 有効期限: 0"); header("Cache-Control: must-revalidate、post-check=0、pre-check=0");
header("Content-Type: application/force -download");
header ('Content-Type: application/vnd.ms-excel; charset=utf-8');
header("Content-Transfer-Encoding: binary");
header('Content-Disposition : ファイル名='。$file_name);

;



http://www.bkjia.com/PHPjc/323364.html

www.bkjia.com
tru​​e

http://www.bkjia.com/PHPjc/323364.html技術記事途中で発生した問題は、送信された中国語のファイル名をヘッダーに直接配置すると、IE で文字化けしてしまうことです。解決策は、次のように、最初にファイル名を URL エンコーディングしてからヘッダーに配置することです。 コードをコピー...
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート