android 讀取俄文csv亂碼_php利用生成器yield讀取體積比較大的csv檔案
阿新 • • 發佈:2021-01-08
技術標籤:android 讀取俄文csv亂碼
/** 如果對yield生成器不熟悉的話,請閱讀《modern php》 第2章* 如果是excel檔案,請現將其轉換為csv檔案* 注意檔案的編碼**///生成器function getRows($file){ if(!file_exists($file)) { die("檔案不存在"); } $handle = fopen($file, 'r'); if($handle === false) { throw new Exception('open file error'); } while(feof($handle) === false) { //讀取一行資料 yield fgetcsv($handle); } fclose($handle);}//轉換編碼格式,預防中文亂碼function convert_arr($arr){ return array_map(function($v){ return mb_convert_encoding($v,'utf-8','gb2312'); }, $arr);}foreach(getRows("abc.csv") as $k=>$row){ if(is_array($row)) { //轉碼 $row = convert_arr($row); // file_put_contents("a.txt", json_encode($row,JSON_UNESCAPED_UNICODE)."", FILE_APPEND); } }