我有一个文件file.txt。此文件包含在整个文件中重复出现的部分和部分。一世 我试图阅读最后一个和第一个关键词之间的部分。
我设法获得了第一个和最后一个关键词,但我无法阅读关键词之间的界限。
这是我的剧本
$file=file('file.txt');
$begin = 'first_line';
$end='last_line';
foreach ($file as $lineNumber => $line) {
$lineNumber++;
if (strpos($line,$begin))
{
echo $lineNumber.$line."<br/>";
}
elseif (strpos($line,$end))
{
echo $value."<br/>";
}
echo $lineNumber. $line."<br/>";
}
请有人帮助我。
答案 0 :(得分:1)
你走了:
$lines=file('data.txt');
$begin = 'first_line';
$end='last_line';
$switch = false;
$content = "";
foreach ($lines as $line_num => $line) {
if(strpos($line, $begin) !== false) {$switch = true;continue;}
if(strpos($line, $end) !== false) $switch = false;
if(!$switch) continue;
$content .= "Line #<b>{$line_num}</b> : " . htmlspecialchars($line) . "<br />\n";
}
echo $content;
答案 1 :(得分:0)
$file=fopen("welcome.txt","r");
while(!feof($file))
{
$open=fgets($file);
print $open;
}
fclose($file);
答案 2 :(得分:0)
这样做:
$file = file('file.txt');
$begin = 'first_line';
$end = 'last_line';
$isInside = false;
foreach ($file as $lineNumber => $line)
{
$lineNumber++;
if (!(strpos($line,$begin)===false))
$isInside = true;
if ($isInside)
echo $lineNumber." : ".$line."<br/>";
if (!(strpos($line,$end)===false))
$isInside = false;
}
有些观点:
strpos
时遇到了一个主要错误,并假设它匹配时返回true。如果字符串在开头匹配,它也可以返回0
,因此使用===
来捕获它。请参阅strpos page上的免责声明。