2012-06-18 66 views
0

我想读取一个CSV文件(用逗号分隔),但不幸的是,它没有响应,因为它应该。我不敢肯定我在做什么错在这里,但我会贴出来的代码的内容和CSV文件都:CSV文件读取失败(PHP)

$row = 0; 
if($handle = fopen("SampleQuizData.csv","r") !== FALSE) 
{ 
    // WORKS UNTIL HERE, SO FILE IS BEING READ 
    while(!feof(handle)) 
    { 
     $line = fgetcsv($handle, 1024, ",") ; 
     echo $line[2]; // DOES NOT WORK 
    }  
} 

下面是CSV文件:(这个邮件,名称已被更改在这里,以保护用户的身份)

parijat,something,[email protected] 
matthew,durp, [email protected] 
steve,vai,[email protected] 
rajni,kanth,[email protected] 
+1

你能回声$线[0]?你得到的错误是什么? – andrewsi

+4

请在提出问题前启用'error_reporting',并注意它会告诉你在'feof(handle)'中缺少'$'(应该是'feof($ handle)''_always_在开发时启用_all_错误,或至少在问这里之前:P – Wrikken

+0

我纠正了它,这是一样的事情..计算机被卡住试图解析CSV文件 – user1020069

回答

1

试试这个:

<?php 

$row = 0; 

if (($handle = fopen("SampleQuizData.csv", "r")) !== FALSE) 
{ 
    while(!feof($handle)) 
    { 
     $line = fgetcsv($handle, 1024, ",") ; 
     echo "$line[2]"; 
    }  
} 

?> 
+0

这对我有效。您可以将'$ line [2]'更改为'$ line [1]'等 –

+0

也适用于我...将执行代码差异并找出出了什么问题..谢谢@Fred! – user1020069

+0

@ user1020069你很受欢迎。代码差异在第二行缺少额外的括号。可能会更多,但这是我能记得的。干杯〜 –

2

它缺乏一个 '$' 到手柄可变

while(!feof($handle)){ 

,而不是:

while(!feof(handle)){ 
+0

是真的,但显然这并没有解决问题 – user1020069

0

值得一提的是,但是当我几周前正在处理CSV导出时,我有一些奇怪的结局不一致。所以我把它放在我的php文件的顶部,它的工作非常出色。

<?php 
    ini_set("auto_detect_line_endings", true); 
?>