PHP 读取CSV文件 的问题

风声3 2009-07-12 08:52:32
现在有两个问题,下面分别用两种方法读取CSV文件,但是有两个问题,先看代码:

function CsvReadLines($path, $separator, $encoding)
{
$goods_list = array();
// $data = file($path);
// foreach ($data as $line)
// {
// $line = ecs_iconv($encoding, EC_CHARSET, $line);
//// $line = iconv($encoding, EC_CHARSET, $line);
// $goods_list[] = explode($separator, $line);
// }
$handle=fopen($path,"r");
while($data=fgetcsv($handle, 0, $separator))
{
$goods_list[] = $data;
}
return $goods_list;
}

问题是:
1、编码问题,当文件编码为"UTF-8",$encoding = "UNICODE", $EC_CHARSET="UTF-8"总得到$goods_list乱码(其它编码没有测试)

2、$goods_list[0][0] 问题,当文件编码为"UTF-8",$encoding = "UTF-8", $EC_CHARSET="UTF-8",无须编码转换
但得到$goods_list[0][0]打印出来(echo)为"商品名称",但表达式:$goods_list[0][0]=="商品名称" 返回false
其它表达式:$goods_list[0][1] == "商品类别" 可以返回 true

这两个问题困扰我几天了,以前没做过PHP,网络上搜索了很多资料,还是没解决问题,谁可以帮帮我!
...全文
248 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
n688com 2009-07-16
  • 打赏
  • 举报
回复
trim($goods_list[0][0])=="商品名称"
n688com 2009-07-16
  • 打赏
  • 举报
回复
试试trim一下 csv取来的内容经常会带空格的
ruanchao 2009-07-16
  • 打赏
  • 举报
回复
编码统一设置为UTF-8, 无论中文还是英文部分。
lj14992560 2009-07-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mimixikou 的回复:]
setlocale(LC_ALL, 'en_US.UTF-8');

加在前面试试
[/Quote]

linux 要加这个
mimixikou 2009-07-15
  • 打赏
  • 举报
回复
setlocale(LC_ALL, 'en_US.UTF-8');

加在前面试试

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧