ホームページ  >  記事  >  バックエンド開発  >  php_PHP チュートリアルでファイルのエンコーディングを検出する方法

php_PHP チュートリアルでファイルのエンコーディングを検出する方法

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

ファイルエンコーディングの検出に関しては、Baidu にたくさんありますが、実際には便利なものはありません mb_detect_encoding 検出を提案しましたが、何らかの理由で失敗し、何も出力されませんでした。拡張版、BOM を使用して判断しましたが、これはまったく信頼できません。最終的に、PHP マニュアルの mb_detect_encoding 関数の例に基づいて、自分で検出関数を作成しました。

エンコードを自動検出し、指定したエンコードに従ってファイルを読み取る機能とソースコードも含まれています。

コードをコピーします。コードは次のとおりです:

/**

* ファイルのエンコーディングを検出します

* @param string $file ファイルパス

* @return string|null はエンコーディング名または null を返します

*/

関数 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)) {

$item;

} }

}

null を返す;

}

/**

* エンコーディングを自動的に解析してファイルを読み取ります

* @param string $file ファイルパス

* @param string $charset 読み取りエンコーディング

* @return 文字列は読み取ったコンテンツを返します

*/

関数 auto_read($file, $charset='UTF-8') {

$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 mb_convert_encoding($str, $charset, $item);

} }

}

"" を返す;

}

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