如何从php中的文件中获取复制零件
我有一个文件file.txt。该文件包含遍及整个文件的部分和部分。 I 正试图读取最后和第一个关键词之间的部分。如何从php中的文件中获取复制零件
我已经设法得到第一个和最后一个关键词,但我无法读取关键词之间的界限。
这里是我的脚本
$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/>";
}
请有人帮助我。
这将做到这一点:
$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上的免责声明。
感谢这工作完美..非常感谢您的快速响应... – user731144 2011-05-04 14:11:17
@ user731144没问题 - 你介意关闭这个问题吗? (只需点击答案旁边的绿色勾号) - 谢谢! – 2011-05-04 14:17:21
$file=fopen("welcome.txt","r");
while(!feof($file))
{
$open=fgets($file);
print $open;
}
fclose($file);
在这里你去:
$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;
非常感谢你的答案..这也正在完成我想做的事情...... – user731144 2011-05-04 14:29:33
你能提供一个例子输入文件,所以我们可以看到这个问题? – 2011-05-04 12:03:16