天天看點

關于PHP解析導入CSV檔案的問題

事情的經過是這個樣子的

像往常一樣,來到公司打開電腦,準備工作,這時來了一條微信消息,說導入的功能報錯了,于是乎,我開始判斷程式是不是哪裡出問題了。拿着傳給我的csv檔案開始測驗。

== 一步步測試,先查詢是否導入時是否擷取csv檔案中的資料,結果列印出來的界面是這個樣子的==

關于PHP解析導入CSV檔案的問題

這是什麼情況呢?

然後就開始百度搜查,驗證,

1.為什麼會出現亂碼呢?

2.是什麼原因導緻的呢?

3.跟csv裡的工作表個數有關系嗎?

關于PHP解析導入CSV檔案的問題

各種網上查詢,最終跟我寫的都是差不多一樣的啊

public function actionCsv()
    {

        $fileName = "test.csv";
        $handle = fopen($fileName, 'r');
        $result = self::input_csv($handle); //解析csv
        var_dump($result);
    }

    private function input_csv($handle)
    {
        $out = array ();
        $n = 0;
        while ($data = fgetcsv($handle))
        {
            $num = count($data);
            for ($i = 0; $i < $num; $i++)
            {
                $out[$n][$i] = iconv('gbk','utf-8',$data[$i]);
            }
            $n++;
        }
        return $out;
    }
           

各種嘗試,各種修改,都無效,感覺人生崩潰了,我該怎麼辦???

關于PHP解析導入CSV檔案的問題
關于PHP解析導入CSV檔案的問題

最後突然頓悟了,會不會是給我的csv檔案是有問題的呢,于是自己建立了一個test.csv裡面的内容如下:

姓名 年齡 性别
張三 18
李四 20
王五 22

然後繼續運作代碼解析csv内容,解析内容如下:

關于PHP解析導入CSV檔案的問題

至此,我才恍然大悟,原來不是我的程式出現了問題,而是給我的csv檔案的問題。

看來我的解題思路還是不夠全面啊,這也算是給我敲了個響鐘,遇到問題不能鑽牛角尖,一條路走不通,就換條路走,說不定就守得雲開見月明了。