2011-12-18 9 views
1

PHPで一致条件の後に壊れたり終了したりするテキストファイルを読んでみたい。PHP条件が一致したときにブレークするまでテキストファイルを読む

PHPコード:

$file = fopen("testFile.txt", "r") or exit("Unable to open file!"); 
//Output a line of the file until the end is reached 
while(!feof($file)) 
{ 

    $line = fgets($file, 1024); 
    if($line=="NOTE"){ 
     break; 
    } 
    echo $line ."<br>"; 

} 
fclose($file); 

line1: i love u so much 
line2: this is tom 
Line3: note 
Line: this is jam 

結果の必要性:

満たすノートがブレークになりますとき。あなたがfgets()から取得

line1: i love u so much 
line2: this is tom 
+0

どのような出力を得ていますか?あなたはどんなアウトプットを期待していますか?ファイルはどのように見えますか? – MeLight

+0

例 LINE1:私はuのそんなに LINE2を愛する:素敵なノートがブレークになりますとき :これはジャム 結果が必要である: ラインの点に注意してください。これはトム LINE3です。 line1:私はそんなに大好きです line2:これはtomです。 –

+0

line 3 'note'または' NOTE'ですか? –

答えて

1

、マリオのようにあなたもendlinesを持っていると述べました。あなたは次のようにチェックする必要があります:

if(strtolower(trim($line)) == "note"){ 
    break; 
} 
1

ラインはまだ末尾の改行が含まれます。だから、トリミングされた行に対してチェックする必要があり、次のいずれか

if (trim($line) == "NOTE") 

それとも、改行変異体の確実な場合(\ nまたは\ r \ nの)正確なライン:

if ($line == "NOTE\r\n") { 

さらに選択肢が含まNOTEの行の先頭だけをチェックする場合はstrncmp()、行のどこかに存在を確認する場合はstrstr()またはstrpos()を使用します。

+0

でも大文字と小文字の区別が必要です –

+0

ありがとうございます。 –

+0

編集後、もう何の質問があるのか​​分かりません。しかし、strtolower()、strncasecmp()、stristr()またはstripos()が次の代替案となります。 – mario

0

私はfile_get_contentsをお勧めします。私はあなたが異なるケースを持つことができ集める何から

$sFile = file_get_contents("testFile.txt") or die("Unable to open file!"); 
$sFile = preg_replace(array("/\r\n/", "/\r/", "/\n/"), "<br />", $sFile); //array because of some fixes 
$sFile = preg_replace("/<br \/>(\s+)?Note(\s+)?(<br \/>.+|$)/i", "<br />", $sFile); 
echo $sFile; 
関連する問題