首頁 >後端開發 >PHP問題 >php parse_ini_string() 亂碼怎麼辦

php parse_ini_string() 亂碼怎麼辦

藏色散人
藏色散人原創
2022-11-10 09:18:271632瀏覽

php parse_ini_string()亂碼的解決方法:1、輸入檔案路徑;2、在提供的編碼方式數組中,匹配檔案的編碼方式;3、透過「iconv($encoding, 'UTF-8 ', $contents);」方式轉為「UTF-8」編碼即可。

php parse_ini_string() 亂碼怎麼辦

本教學操作環境:windows7系統、PHP8.1版、Dell G3電腦。

php parse_ini_string() 亂碼怎麼辦?

使用parse_ini_file讀取文字文件遇到中文亂碼問題

1、中文亂碼解決方法

$contents = file_get_contents("config.ini");
//输入文件路径
$encoding = mb_detect_encoding($contents, array('UTF-16', 'UTF-8', 'GBK','ASCII', 'SJIS', 'BIG-5'), true);
//在提供的编码方式数组中,匹配文件的编码方式
$rst = iconv($encoding, 'UTF-8', $contents);//转为"UTF-8"编码

2、逐行讀取檔案內容

      $contents = file_get_contents($rstPath);//$rstPath-目标文件路径
        $encoding = mb_detect_encoding($contents, array('UTF-16', 'UTF-8', 'GBK','ASCII', 'SJIS', 'BIG-5'), true);
 
        $file_handle = fopen($rstPath, "r");
        while (!feof($file_handle)) 
        {
            $line = fgets($file_handle);
            if(empty($line)) continue;//当前行内容为空,进入下一循环
            $line = iconv($encoding, 'UTF-8', $line);
 
            //...业务逻辑
        }
        fclose($file_handle);

3、file_get_contents取得檔案內容字串,parse_ini_string格式化字串內容

$inistr = file_get_contents($filepath);
$ini_items = parse_ini_string($inistr, true);
4、設定檔config.ini含有中文
$iniPath = FCPATH . 'config.ini';
$iniContent = file_get_contents($iniPath);//读取配置文件
$encoding = mb_detect_encoding($iniContent, array('UTF-16', 'UTF-8', 'GBK', 'ASCII', 'SJIS', 'BIG-5'), true);//匹配编码方式
$iniContent = iconv($encoding, 'UTF-8', $iniContent);//转换编码方式
$iniContent = parse_ini_string($iniContent, true, INI_SCANNER_RAW);

#建議學習:《### PHP影片教學###》###

以上是php parse_ini_string() 亂碼怎麼辦的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn