如何从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/>"; 
      } 

请有人帮助我。

+2

你能提供一个例子输入文件,所以我们可以看到这个问题? – 2011-05-04 12:03:16

这将做到这一点:

$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上的免责声明。
+0

感谢这工作完美..非常感谢您的快速响应... – user731144 2011-05-04 14:11:17

+0

@ 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; 
+0

非常感谢你的答案..这也正在完成我想做的事情...... – user731144 2011-05-04 14:29:33