1. 程式人生 > 其它 >android 讀取俄文csv亂碼_php利用生成器yield讀取體積比較大的csv檔案

android 讀取俄文csv亂碼_php利用生成器yield讀取體積比較大的csv檔案

技術標籤:android 讀取俄文csv亂碼

c56b1c1e2533adedfcf732da07c30aa0.png
/** 如果對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); } }