2013-02-07 2 views
2

PHP를 사용하여 .txt 파일에서 선택한 줄만 표시합니다. txt 파일의 내용은 다음과 같다 : 이전에 작동 코드는 모든 라인을 울리는했다PHP : txt 파일의 몇 줄을 반향 출력

1 111 111 111 111 111 111 111 111 111 111 
2 196 182 227 190 195 196 278 197 323 265 
3 84.1 84.1 84.1 84.2 85.4 84.1 84.2 84.1 84.1 84.1 
4 107 107 107 107 107 107 107 107 107 107 
5 10.0 9.29 9.86 9.90 9.57 9.56 9.52 9.55 10.0 9.62 
6 0.652 0.622 0.676 0.617 0.637 0.617 0.563 0.601 0.586 0.601 
7 132 132 132 132 132 132 481 132 132 132 
8 113 113 113 113 113 113 113 113 113 113 
9 510 571 604 670 647 667 656 257 264 431 
10 245 246 247 246 246 245 247 246 247 247 

.

$fp = fopen("http://xxx/myfile.txt","r"); 
while (!feof($fp)) { 
$page .= fgets($fp, 4096); 
} 
fclose($fp); 
echo $page; 
break; 

동일한 서식을 사용하지만 선택한 줄에만 적용하려고합니다. 예를 들어, 3, 5, 8, 10 줄만 말하십시오.

두 번째 단계는 줄이 처음 것과 다른 순서로 에코 될 수 있습니다.

누군가가 간단한 방법을 알고 있다면, 그것은 훌륭합니다!
고맙습니다.

답변

4
$lines = file('http://xxx/myfile.txt'); 

print $lines[2]; // line 3 
print $lines[4]; // line 5 
... 

file()

+0

입니다 - 내가 필요 정확히 것 같다. 고맙습니다! – Ocin

1

여기에 그것을 할 수있는 방법의 예를 참조하십시오

function echo_selected_lines_of_file($file, array $lines) 
{ 
    $fContents = file_get_contents($file); // read the file 
    $fLines = explode("\n", $fContents); // split the lines 
    foreach($fLines as $key=>$fLine) // foreach line... 
     if(in_array($key, $lines)) //if its in the $lines array, print it 
      echo $fLine.'<br>'; 
} 

echo_selected_lines_of_file('index.php', array(1,4,7)); 
0

당신은 배열로 각 행을 변환 파일()을 사용할 수 있습니다. 그러나 파일 크기가 클 경우 메모리가 약간 소모됩니다.

$lines_to_print = [1,3,5,8]; 

$lines = file('file.txt'); 
for($i in $line_to_print) { 
    echo $lines[$i]; 
} 

효율적인 솔루션은 지금까지

$i = 0; 
$lines_to_print = [1,3,5,8]; 

$file = fopen("file.txt", "r"); 
while(!feof($file)){ 
    $line = fgets($file); 
    if(in_array(++$i, $lines_to_print)) { 
     echo $line 
    } 
} 
fclose($file);