15

我有一个文本文件,它的行数可以不同,但​​每行总是有 24 个选项卡经过深思熟虑的条目。

其中 4 个条目是日期,但它们不是正常的 YYYY-MM-DD 格式示例:“2013-03-11T20:35:33+00:00”所以我使用 substr 就可以了。然而,目前我将文件中的所有数据传递到一个表,然后将每个日期都做 substr 并更新字段,然后将所有这个表传递给另一个表,但日期字段类型为“DATE”,因为他们可以' t 由于“2013-03-11T20:35:33+00:00”。

我要说的是,我想将每一行读入一个数组,将 substr 应用于始终位于同一位置的日期,然后将数组传递到表中,因此列的数据类型从一开始就可以是 DATE。

我似乎无法弄清楚如何为文件中的每一行循环。我可以得到第一行(因为我需要删除它),我已经读到获得特定的行是不可能或很难的,但我只需要它来循环遍历它们。

我目前有

while ($DateRow = mysql_fetch_array($DateQuery, MYSQL_ASSOC))

which 为表中的每一行循环,但我不知道如何或是否可以对文件行执行此操作。

非常感谢。

4

2 回答 2

31

您正在使用数据库函数来循环遍历数据库表 - 这很好。要将文件内容放入数组,请使用 file()。例子:

$filename = 'info.txt';
$contents = file($filename);

foreach($contents as $line) {
    echo $line . "\n";
}
于 2013-10-21T20:21:00.847 回答
3

所有的substr()东西都可以变得更容易strtotime()和/或date()我敢肯定:

$lines = file('/path/to/file.txt');
foreach($lines as $row) {
    //whatever here
}
于 2013-10-21T20:22:06.023 回答