【发布时间】:2016-02-03 08:15:40
【问题描述】:
我有一个来自远程的 csv,csv 中的列有重音字符,我的目标是将此 csv 转换为关联数组,如下所示:
/*------------------------------------
* CONVERT CSV FILE TO ARRAY
* @params $filename
* return array
------------------------------------*/
function csv_to_array($filename = '', $delimiter=';')
{
if(!file_exists($filename) || !is_readable($filename))
return FALSE;
$header = NULL;
$data = array();
if (($handle = fopen($filename, 'r')) !== FALSE)
{
while (($row = fgetcsv($handle, 1000, $delimiter)) !== FALSE)
{
$d = array_map("utf8_encode", $row);
if(!$header)
$header = $d;
else if( count($header) == count($row) )
$data[] = array_combine($header, $row);
}
fclose($handle);
}
return $data;
}
输出是:
if( file_exists('fic.csv')) $csv_to_array = csv_to_array('fic.csv');
/*------------------------------------
* PRINT OUT CSV
------------------------------------*/
foreach($csv_to_array as $key => $value ){
$country = $value['country'];
echo $country;
}
它输出带有非编码字符的国家名称: 曼谷 - P�kin - San Jos�
将那些非编码字符插入数据库时会产生错误,我该如何处理插入?请给个主意?
谢谢。
【问题讨论】: