我正在尝试从 .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;我们;手电筒,包;2008 年 11 月 20 日,下午 4:39Hellen;Blueberryroad 85;我们;lens13mm,手电筒,包,额外电池;2008 年 11 月 20 日,16:41:32
我将其拆分为:
list($name[], $street[], $country[], $accessories[], $orderdate[]) = split(";",$contents);
我想要的是 $name[] 包含“Paul”和“Hellen”作为其内容。其他数组接收它们各自列的值。
相反,我只得到 Paul 并且 $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 个布尔值。前 2 个是我的数据数组,布尔值为 0。