PHP读取每个文件的第一行。 *输出覆盖前一行*

时间:2011-02-05 01:55:51

标签: php sql

我正在尝试逐行阅读文本文件。 我添加了一个条件,如果第一个单词不是“insert”,则跳过它,但如果“insert是第一个单词”,则将其打印出来。

以下是代码:

$matching = "^insert";

$file = fopen("test.sql.text", "r") or exit("Unable to open file!");
while(!feof($file))
  {

        if(eregi($matching, fgets($file)) ){
        echo fgets($file)."<br />";
        } else
        echo "invalid beginning value <br />";

  }
fclose($file);

我在文件中有两行以“insert”开头。出于某种原因,似乎用第二个插入过度写入第一个插入。 我希望能够打印出任何以插入开头的行。

非常感谢任何帮助或建议!

谢谢。

1 个答案:

答案 0 :(得分:1)

$line = fgets($file);

if(stripos($line, 'insert') === 0){
    echo $line . '<br />';
} else {
    echo 'invalid beginning value <br />';
}

在您的代码中,您已阅读if()中的一行,如果符合条件,则您要求php阅读另一行

ps:正则表达式在这里是一个过度工程,stripos足以检查该行是否以某个子字符串开头。