0

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

例如....

505050 somedata moredata

然后,将这些变量写入

$id $somedata $moredata

我读入 fgetcsv 并制作了一个数组,尽管它似乎使整行成为一个数组,但我需要将其拆分为变量,以便我可以将其写入 MySQL 数据库中的各个列,

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

非常感谢...

4

3 回答 3

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]}')
";

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

于 2012-05-01T12:49:45.737 回答
0

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

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

$string您要拆分的字符串在哪里。有关explode() 和list() 的更多信息,只需在php.net 上查找。

于 2012-05-01T12:50:10.417 回答
0

您可以使用explode()

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

于 2012-05-01T12:50:17.937 回答