分隔文本文件到数组?然后更新mysql PHP

时间:2012-05-01 12:47:08

标签: php delimited

我如何阅读制表符分隔的.txt文件,然后对其进行编码,以便将每列数据(用制表符分隔)放入php变量中。

例如......

505050 somedata moredata

然后,将这些变量写入

$id $somedata $moredata

我读到了fgetcsv并创建了一个数组,虽然它似乎使整行成为一个数组我需要将它分成变量,以便我可以将它写入MySQL数据库中的各个列,

任何人都可以给我任何指示吗?

非常感谢...

3 个答案:

答案 0 :(得分: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]}')
";

在查询中使用数据之前不要忘记转义数据; - )

答案 1 :(得分:0)

explode()会分割一个字符串。试试这个:

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

其中$string是您要拆分的字符串。有关explode()和list()的更多信息,请查看php.net。

答案 2 :(得分:0)

您可以使用explode()

http://php.net/manual/en/function.explode.php