ホームページ バックエンド開発 PHPの問題 PHP IEでダウンロードしたファイル名が文字化けしている場合の対処方法

PHP IEでダウンロードしたファイル名が文字化けしている場合の対処方法

Oct 23, 2020 am 09:10 AM
php

php IEダウンロードファイル名文字化けの解決策: 1. ヘッダーメソッドを通じてコード文字化けを解決します; 2. 「関数remote_filesize($uri,$user='',$pw='') {.. . }」など文字化けを解決する方法を紹介します。

PHP IEでダウンロードしたファイル名が文字化けしている場合の対処方法

推奨: 「PHP ビデオ チュートリアル

php ファイルのダウンロード IE ファイル名が文字化けする質問

Chromeブラウザを使用していますが、問題は見つかりませんでした。今日IE6を使ったのですが、ファイルをダウンロードする際にファイル名が文字化けし、IEでThunder経由でダウンロードする際にもファイル名が文字化けしていました。オンラインで調べたところ、IE でエンコードするには urlencode を使用する必要があるとのことで、

header('Content-Disposition:attachment; filename='.rawurlencode($file_name); を試してみましたが、結果は依然として文字化けしていましたPHP ファイル自体は gbk/gb2312 でエンコードされているため、最初に $file_name を utf-8 エンコードに変換し、次に urlencode

header('Content-Disposition:attachment; filename='.rawurlencode( iconv("GBK" ,"UTF-8",$file_name))); この方法でIEでダウンロードする場合は問題ありませんが、urlencodeのみutf-8のエンコードをエスケープできますか?

もありますリモート ファイルのサイズの取得の問題、PHP の filesize 関数はローカル ファイルのみを処理できます。リモート ファイルの処理は失敗して警告が発行され、Windows プラットフォームで渡されるパラメータは gbk/gb2312 エンコーディングである必要があります。UTF の使用-8 エンコーディングではシステムにアクセスできません。リソース。

インターネット上のリモート ファイルのサイズを取得する 4 つの方法を見つけました。共有してくれた先輩に感謝します。記録してください:

方法 1: header

<?php get_headers($url,true); //返回结果 Array ( [0] => HTTP/1.1 200 OK [Date] => Sat, 29 May 2004 12:28:14 GMT [Server] => Apache/1.3.27 (Unix) (Red-Hat/Linux) [Last-Modified] => Wed, 08 Jan 2003 23:11:55 GMT [ETag] => "3f80f-1b6-3e1cb03b" [Accept-Ranges] => bytes [Content-Length] => 438 [Connection] => close [Content-Type] => text/html ) ?>
ログイン後にコピー

ここでは、Content-Length によってサイズが直接取得されます。

方法 2:curl

function remote_filesize($uri,$user='',$pw='') { // start output buffering ob_start(); // initialize curl with given uri $ch = curl_init($uri); // make sure we get the header curl_setopt($ch, CURLOPT_HEADER, 1); // make it a http HEAD request curl_setopt($ch, CURLOPT_NOBODY, 1); // if auth is needed, do it here if (!emptyempty($user) && !emptyempty($pw)) { $headers = array('Authorization: Basic ' . base64_encode($user.':'.$pw)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); } $okay = curl_exec($ch); curl_close($ch); // get the output buffer $head = ob_get_contents(); // clean the output buffer and return to previous // buffer settings ob_end_clean(); echo '<br>head-->'.$head.'<----end <br>'; // gets you the numeric value from the Content-Length // field in the http header $regex = '/Content-Length:\s([0-9].+?)\s/'; $count = preg_match($regex, $head, $matches); // if there was a Content-Length field, its value // will now be in $matches[1] if (isset($matches[1])) { $size = $matches[1]; } else { $size = 'unknown'; } //$last=round($size/(1024*1024),3); //return $last.' MB'; return $size; } 方法三:fsock
function getFileSize($url) { $url = parse_url($url); if($fp = @fsockopen($url['host'],emptyempty($url['port'])?80:$url['port'],$error)) { fputs($fp,"GET ".(emptyempty($url['path'])?'/':$url['path'])." HTTP/1.1\r\n"); fputs($fp,"Host:$url[host]\r\n\r\n"); while(!feof($fp)) { $tmp = fgets($fp); if(trim($tmp) == '') { break; } elseif(preg_match('/Content-Length:(.*)/si',$tmp,$arr)) { return trim($arr[1]); } } return null; } else { return null; } } 方法四:file_get_contents
$fCont = file_get_contents("http://www.cnmiss.cn/"); echo strlen($fCont)/1024;
ログイン後にコピー

以上がPHP IEでダウンロードしたファイル名が文字化けしている場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド

CakePHP の日付と時刻 CakePHP の日付と時刻 Sep 10, 2024 pm 05:27 PM

CakePHP の日付と時刻

CakePHP プロジェクトの構成 CakePHP プロジェクトの構成 Sep 10, 2024 pm 05:25 PM

CakePHP プロジェクトの構成

CakePHP ファイルのアップロード CakePHP ファイルのアップロード Sep 10, 2024 pm 05:27 PM

CakePHP ファイルのアップロード

CakePHP ルーティング CakePHP ルーティング Sep 10, 2024 pm 05:25 PM

CakePHP ルーティング

CakePHP について話し合う CakePHP について話し合う Sep 10, 2024 pm 05:28 PM

CakePHP について話し合う

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法

CakePHP クイックガイド CakePHP クイックガイド Sep 10, 2024 pm 05:27 PM

CakePHP クイックガイド

See all articles