我正在尝试逐行阅读文本文件。 我添加了一个条件,如果第一个单词不是“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”开头。出于某种原因,似乎用第二个插入过度写入第一个插入。 我希望能够打印出任何以插入开头的行。
非常感谢任何帮助或建议!
谢谢。
答案 0 :(得分:1)
$line = fgets($file);
if(stripos($line, 'insert') === 0){
echo $line . '<br />';
} else {
echo 'invalid beginning value <br />';
}
在您的代码中,您已阅读if()
中的一行,如果符合条件,则您要求php阅读另一行
ps:正则表达式在这里是一个过度工程,stripos
足以检查该行是否以某个子字符串开头。