2012-06-18 122 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); 
?>