2012-02-23 2 views
2

以下のようなファイルからファイルポインタの行位置を取得する必要があります。fopenで開いたファイルの現在の行を取得するには?

string1\n 
string2\n 
string3\n 

このfuncを使用してファイルを読み取っています。

function get() { 
    $fp = fopen('example.txt', 'r'); 
    if (!$fp) { 
     echo 'Error' . PHP_EOL; 
    } 
    while(!feof($fp)) { 
     $string = trim(fgets($fp)); 
     if(!$string) { 
       continue; 
     } else { 
      /* 
      * Here I want to get a line number in this file 
      */ 
      echo $string . PHP_EOL; 
     } 
    } 
} 
+2

どのように各fgetsのラインカウンタを追加しますか? –

+0

ファイルはfseek()を使用して読み込まれます – NiLL

+0

私は混乱しています。ファイルや 'fseek()'を読むために 'fgets()'を使っていますか? 'fseek()'を使用している場合は、実際に使用しているコードを反映するために質問を編集できますか? –

答えて

2

単純な解決策は、カウンタを使用することです。

function get() { 

    // Line number counter 
    $lncount = 0; 

    $fp = fopen('example.txt', 'r'); 
    if (!$fp) { 
     echo 'Error' . PHP_EOL; 
    } 
    while(!feof($fp)) { 
     $string = trim(fgets($fp)); 

     // Increment line counter 
     $lncount++; 

     if(!$string) { 
     continue; 
     } else { 

     // Show line 
     echo "Current line: " . $lncount; 

     echo $string . PHP_EOL; 
     } 
    } 
} 
関連する問題