2011-08-31 106 views
1

我有这个PHP:为什么这个PHP fgetcsv()仅显示csv的某些部分?

$handle = fopen($_FILES["csvfile"]["tmp_name"], "r"); 

while (($data = fgetcsv($handle, 5000, ",", '"')) !== FALSE) { 
    echo "<pre>"; 
    print_r($data); 
    echo "<pre>"; 
} 

<form method="post"> 
<input type="file" name="csvfile"> 
<input type="submit> 

的CSV是由HTML <input type="file">提供。现在它正在打印只有第一个值和逗号或每行的数组,而不是打印出每行的十一个数组的数组。我知道它做正确的事情,但不知何故搞乱了我的代码,无法弄清楚我做了什么。

这里是CSV的例子:

"lorem","ipsum","dolor","sit","amet","consectetuer","adipiscing","elit","sed ","diam","nonummy", 
+0

-1修复您的标题。 –

+1

老兄,在哪里输入? – ajreal

+0

你确定你指定了分隔符吗?发布输入数据的样本也 – Quamis

回答

1

在你贴我得到一个不错的格式化的结果相同的代码

file_put_contents('tmp.tmp', 
'"lorem","ipsum","dolor","sit","amet","consectetuer","adipiscing","elit","sed ","diam","nonummy", 
"1lorem","1ipsum","1dolor","1sit","amet","consectetuer","adipiscing","elit","sed ","diam","nonummy", 
'); 

$handle = fopen("tmp.tmp", "r"); 

while (($data = fgetcsv($handle, 5000, ",", '"')) !== FALSE) { 
    echo "<pre>"; 
    print_r($data); 
    echo "<pre>"; 
} 

我得到:

阵列 ( [ 0] => lorem [1] => ipsum [2] => dolor [3] =>坐下 [4] =>阿梅特 [5] => consectetuer [6] => adipiscing [7] => ELIT [8] => sed的 [9] =>直径 [10] => nonummy [11] => )

你很可能在别的地方做错了什么,而不是注意到它。

+0

啊......现在我明白我在做什么 - 显然我使用的文件的一个版本没有这样格式化。奇怪的。谢谢。 – chromedude

相关问题