php parse_ini_string()亂碼的解決辦法:1、輸入文件路徑;2、在提供的編碼方式數(shù)組中,匹配文件的編碼方式;3、通過“iconv($encoding, 'UTF-8', $contents);”方式轉(zhuǎn)為“UTF-8”編碼即可。
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); //在提供的編碼方式數(shù)組中,匹配文件的編碼方式 $rst = iconv($encoding, 'UTF-8', $contents);//轉(zhuǎn)為"UTF-8"編碼
2、逐行讀取文件內(nèi)容
$contents = file_get_contents($rstPath);//$rstPath-目標(biāo)文件路徑 $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;//當(dāng)前行內(nèi)容為空,進(jìn)入下一循環(huán) $line = iconv($encoding, 'UTF-8', $line); //...業(yè)務(wù)邏輯 } fclose($file_handle);
3、file_get_contents獲取文件內(nèi)容字符串,parse_ini_string格式化字符串內(nèi)容
$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);//轉(zhuǎn)換編碼方式 $iniContent = parse_ini_string($iniContent, true, INI_SCANNER_RAW);