簡體   English   中英

PHP解析CSV僅返回第一行

[英]PHP parsing CSV only returning 1st line

我正在嘗試解析PHP中的CSV文件並使用這些值,但是我的代碼僅從CSV文件的第一行返回數據。

CSV文件如下所示

C,  QXM0039326, ,           X6, 2288314208
C,  QXP0039226, 7021130,    X6,     100013427

php看起來像這樣:

if (($handle = fopen("easy.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",", "\n")) !== FALSE) 
    {
        // do something with the data here
        echo $data[0] . " - ". $data[1] . " - ". $data[2] . "</br>" ;
    }

    fclose($handle);
}

這會產生$ data [0]等的預期結果,但只會產生csv的第一行。 所以我得到這樣的輸出結果:

C - QTM0039326 - 2288314208

這正是我想要的輸出,但是對於CSV中的每一行。

我試圖像這樣遍歷$ data

if (($handle = fopen("easy.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",", "\n")) !== FALSE) 
    {
        // do something with the data here
        foreach ($data as $row){
            echo $row[0] . " - ". $row[1] . " - ". $row[4] . "</br>" ;
    }   
    fclose($handle);
}

}

但是,這給了我一個非常像這樣的結果(繼續):

C - - 
Q - T - 0
- - 
X - 6 - 
2 - 2 - 3

對於CSV的每一行,我該怎么做才能得到所需的結果(即C-QTM0039326-2288314208)?

您已經關閉了循環中的文件句柄,因此在下一次迭代中沒有任何內容。

應該看起來像:

if (($handle = fopen("easy.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",", "\n")) !== FALSE) 
    {
        // do something with the data here
        echo $data[0] . " - ". $data[1] . " - ". $data[2] . "</br>" ;
    }

    fclose($handle);
}

嘗試更改這一行。 換行可能有問題。

while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM