我想在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
结果需要:
遇见笔记时会中断。
line1: i love u so much
line2: this is tom
答案 0 :(得分:1)
您从fgets()
获得的行仍包含尾随换行符。所以你要么必须检查修剪线:
if (trim($line) == "NOTE")
或者,如果您确定换行符(\ n或\ r \ n)确切的行:
if ($line == "NOTE\r\n") {
如果你只想检查NOTE的行的开头,还是strstr()或strpos(),如果你想检查行中某处的存在,还有其他选择包括strncmp()。
答案 1 :(得分:1)
从我收集的内容中你可以得到不同的案例,就像马里奥所说的那样,你也有最终结果。你应该这样检查:
if(strtolower(trim($line)) == "note"){
break;
}
答案 2 :(得分: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;