ホームページ  >  記事  >  バックエンド開発  >  ファイルのエンコードを検出する PHP 関数を作成しました_PHP チュートリアル

ファイルのエンコードを検出する PHP 関数を作成しました_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 10:32:03686ブラウズ

ファイルエンコーディングの検出に関しては、Baidu にたくさんありますが、実際には役に立ちません。
多くの人が mb_detect_encoding 検出を提案しましたが、何らかの理由で失敗し、何も出力されませんでした。拡張版では、BOM を使用して判断しましたが、これはまったく信頼できませんでした。
最後に、PHP マニュアルの mb_detect_encoding 関数の自動検出も含まれています。ファイルの関数とソースコードが提供されていますが、それが気に入らない場合はコメントしないでください。
オンラインの方法を試した後にこれを書きましたが、環境の違いが原因かもしれません。
それでうまくいかなくても、私を批判しないでください。私は私のアイデアを共有しているだけです。



コードをコピーしてください

コードは次のとおりです: /**
* ファイルエンコーディングを検出します
* @param string $file ファイルパス
* @return string|null エンコーディング名または null を返します
*/
function detect_encoding ($file) {
$list = array('GBK', 'UTF-8', 'UTF-16LE', 'UTF-16BE', 'ISO-8859-1'); $str = file_get_contents($file );
foreach ($list として $item) {
$tmp = mb_convert_encoding($str, $item, $item)
if (md5($tmp) == md5($str); ) {
return $item;
}
return null;

/**
* エンコーディングを自動的に解析してファイルを読み取ります
* @param string $file ファイルパス
* @param string $charset エンコーディングを読み取ります
* @return string 読み取った内容を返します
*/
function auto_read($file, $charset='UTF-8') {
$list = array( 'GBK'、'UTF-8'、'UTF-16LE'、'UTF-16BE'、'ISO-8859-1');
$str = file_get_contents($file); {
$tmp = mb_convert_encoding( $str, $item, $item);
if (md5($tmp) == md5($str)) {
return mb_convert_encoding($str, $charset, $item);
}
「」を返す
}

;



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

www.bkjia.com
tru​​e

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

ファイルエンコーディングの検出に関しては、Baidu にたくさんありますが、多くの人が mb_detect_encoding 検出を提案しましたが、何らかの理由で成功せず、何も得られませんでした...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。