2012-05-01 51 views
0

我該如何閱讀製表符分隔的.txt文件,然後對其進行編碼,以便將每列數據(用製表符分隔)放入一個php變量中。分隔txt文件到數組?然後更新MySQL PHP

例如....

505050 somedata moredata

,然後寫這些變量

$id $somedata $moredata

我讀入fgetcsv並形成陣列,儘管它似乎使整個行數組我需要將其分成變量,以便我可以將它寫入到MySQL數據庫中的各個列,

任何人都可以給我任何指針?

感謝這麼多...

回答

5

fgetcsv()list()組合將是這個分成命名變量的最有效的方法:

list($id, $somedata, $moredata) = fgetcsv($fp, 0, "\t"); 

不過,你不需要讓他們成爲命名變量以便插入它們在MySQL中,你可以使用由fgetcsv()返回的原始數組:

$row = fgetcsv($fp, 0, "\t"); 

$query = " 
    INSERT INTO `tablename` 
    (`id`, `somedata`, `moredata`) 
    VALUES 
    ('{$row[0]}', '{$row[1]}', '{$row[2]}') 
"; 

在查詢中使用它之前,請不要忘記將數據轉義出來;-)

+0

啊,我失敗了我的答案。從來不知道fgetcsv。 +1爲你:) – Sietse

+0

非常感謝,我會考慮使用爆炸! – fyllepo

+0

感謝戴夫,完美的解釋 – fyllepo

0

explode()將分割一個字符串。試試這個:

list($id, $somedata, $moredata) = explode("\t", $string);

哪裏$string是要拆分的字符串。有關explode()和list()的更多信息,請查看php.net。

+0

非常感謝您的快速解答!我會考慮使用爆炸功能! – fyllepo

相關問題