产品服务AMH 免费服务器主机面板SSL证书 免费SSL证书申请 担保单 免费安全、零费率交易平台编程助手免费智能写代码、翻译AMYSQL 免费MySQL管理工具

AMH 社区首页

 AMH社区 - 开放自由有价值的社区

[综合话题] 分享 - 代替fputcsv的php函数 解决读取csv乱码问题

admin
创始人
31858.94 价值分

admin 发表于 2012-08-07 02:33:48
使用php内置函数读取CSV表格中文可能存在乱码问题,可使用以下函数代替fputcsv。

function fgetcsv_reg(& $handle, $length = null, $d = ',', $e = '"') {
$d = preg_quote($d);
$e = preg_quote($e);
$_line = "";
$eof=false;
while ($eof != true) {
$_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
$itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
if ($itemcnt % 2 == 0)
$eof = true;
}
$_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
$_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
$_csv_data = $_csv_matches[1];
for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
$_csv_data[$_csv_i] = preg_replace('/^' . $e . '(.*)' . $e . '$/s', '$1', $_csv_data[$_csv_i]);
$_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
}
return empty ($_line) ? false : $_csv_data;
}
评价: 这个话题有价值吗?  没有 (0分)   有, 感谢 (0分)
2012-08-07 02:33:48 1

AMH官方号 2011~2021 (10周年)

vsxp
铝牌会员
478.00 价值分

感谢分享。
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2012-08-08 22:40:32 2

wwb831029
铝牌会员
350.00 价值分

成长中,谢谢
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2012-08-13 17:02:56 3

fuyun
铁牌会员
154.00 价值分

感谢分享
评价: 这个回复有价值吗?  没有 (0分)   有, 感谢 (0分)
回复  2013-06-10 09:41:51 4
 1  (总1页)
AMH社区列表
用户服务中心