当前位置:  开发笔记 > 编程语言 > 正文

PHP读取CSV文件的问题

如何解决《PHP读取CSV文件的问题》经验,为你挑选了1个好方法。

我正在尝试从a.csv文件中读取数据,将其作为文本输出到网页上.

这是我第一次这样做,我遇到了一个令人讨厌的小问题.

我的.csv文件(默认情况下由Excel打开)有多行,我将整个内容读作一个长字符串.

像这样:

$contents = file_get_contents("files/data.csv");

在我制作的这个示例文件中,有2行.

Paul Blueberryroad 85 us手电筒,包装2008年11月20日,下午4:39

Hellen Blueberryroad 85 us lens13mm,手电筒,手提袋,ExtraBatteries 2008年11月20日,16:41:32

但PHP读取的字符串是这样的:

Paul; Blueberryroad 85; us;手电筒,Bag; 2008年11月20日,下午4:39Hellen; Blueberryroad 85; us; lens13mm,手电筒,袋子,ExtraBatteries; 2008年11月20日,16:41:32

我正在分裂:

list($name[], $street[], $country[], $accessories[], $orderdate[]) = split(";",$contents);

我想要的是$ name []包含"Paul"和"Hellen"作为其内容.并且其他数组接收各自列的值.

相反,我只得到保罗和$ orderdate []的内容

2008年11月20日下午4:39海伦

所以所有行都连接在一起.有人能告诉我如何实现我的需求吗?

编辑:发现解决方案,只剩下一个令人讨厌的东西:

我现在用这段代码解决了这个问题:

$fo = fopen("files/users.csv", "rb+");
while(!feof($fo)) {
  $contents[] = fgetcsv($fo,0,';');
}
fclose($fo);

出于某种原因,尽管我的CSV文件只有2行,但它返回2个数组和1个布尔值.前两个是我的数据数组,布尔值是0.



1> Eran Galperi..:

最好使用fgetcsv(),它知道CSV文件结构并指定了处理CSV文件的选项.或者,您可以在文件的内容上使用str_getcsv().

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有