php檢測檔案編碼的方法

來源:互聯網
上載者:User

 關於檔案編碼的檢測,百度一下一大把都是,但是確實沒有能用的、很多人建議 mb_detect_encoding 檢測,可是不知為何我這不成功,什麼都沒輸出、看到有人寫了個增強版,用 BOM 判斷的,我果斷就無視了,這東西完全不靠譜、最終根據PHP手冊裡 mb_detect_encoding 函數下方的例子,自己寫了一個檢測函數,

還包括自動檢測編碼並按指點編碼讀取檔案的函數、源碼獻上。複製代碼 代碼如下:<?php /*** 檢測檔案編碼 * @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 as $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);     foreach ($list as $item) {        $tmp = mb_convert_encoding($str, $item, $item);        if (md5($tmp) == md5($str)) {             return mb_convert_encoding($str, $charset, $item);         }     }    return "";} 
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.