2011-02-05 11 views
0

テキストファイルを1行ずつ読み込もうとしています。 最初の単語が「挿入」でない場合はスキップし、「最初の単語を挿入する」場合はそれを印刷する条件を追加しました。ここでPHPは各ファイルの最初の行を読み取ります。 *出力が前の行を上書きする*

は、コードは次のとおりです。

$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); 

私が「挿入」で始まる、両方のファイルに2つのラインを持っています。何らかの理由で、最初のインサートを2番目のインサートで上書きしているようです。 挿入で始まる行をすべて印刷することができます。

何か助けや助言をいただければ幸いです。

ありがとうございます。正規表現ここでは過剰性能である、striposが十分である:あなたがif()にラインを読んで、それが一致した場合は、1行

PSを読むためにPHPを尋ねた条件は、あなたのコードで

答えて

1
$line = fgets($file); 

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

その行がいくつかの部分文字列で始まるかどうかを調べる。

+0

良いキャッチ。私はこのようにいつも間違いを犯していました。 – Soumya

+0

これはそれでした!どうもありがとうございました :) –

関連する問題