2016-01-08 2 views
0

Все, что я хочу, - это открыть файл rsyslog с помощью fopen() взять первые 3 строки, установить переменную с последней из этих трех строк. Затем возьмите остальные 3 строки e.t.c.Я хочу взять файл syslog 3 на 3 строки

$path_file = variable_get('$path'); 
$file = fopen($path_file, 'r'); 
for($i=0;$i<3;$i++) { 
    $line = fgets($file); 
    $line = variable_set($line); 
} 
fclose($file); 
+0

Я отправил некоторые действительно неправильный код! –

+1

в чем проблема. вы получаете какую-либо ошибку? или что ? уточните у вас вопрос. – smoqadam

+0

Я хочу взять первые 3 строки, а затем закрыть файл. Затем, когда функция снова запустится, перейдите к следующему 3 и закройте файл. e.t.c –

ответ

0

Используйте file() вместо (читает все в виде массива)

Попробуйте это:

$file = file('$path'); 

for($x = 0; $x < count($file); $x = $x + 3) 
{ 
    if(isset($file[$x]) && isset($file[$x +1]) && isset($file[$x + 2]) 
    { 
     //do something with the values. 
    } 
} 


function readFileStartingAtLineNumber($x) 
{ 
    $file = file('$path'); 

    if(isset($file[$x]) && isset($file[$x +1]) && isset($file[$x + 2]) 
    { 
     //do something with the values. 
    } 
} 
+0

Я хочу взять первые 3 строки, а затем закрыть файл. Затем, когда функция снова запустится, перейдите к следующему 3 и закройте файл. e.t.c –

+0

Ahh, я думал, что вы хотите, чтобы он разделил значения в категориях 3. Затем просто делайте $ file [0], $ file [1] и $ file [2], если вы уверены, что строки не пусты. – Nyranith

+0

и как я буду читать 4-й, 5-й, 6-й строки во второй раз, когда функция выполняется? –

0
function getLog($path, $numberOfLines, $lastIndex) { 
    $file = fopen($path, 'r'); 
    if (!$file) { 
     print 'error opening file'; 
    } 
    else { 
     $data = ''; 
     $i  = -1; 
     while(($line = fgets($file)) !== FALSE) { 
      if(++$i < $lastIndex)  continue; 
      if($numberOfLines-- == 0) break; 
      $data .= $line; 
     } 
     fclose($file); 
     if ($data === '') { 
      print 'EOF reached without getting data'; 
     } 
    } 
    return $i; 
} 
+0

как lastindex, что я должен установить? данные? –

+0

последний insdex, полученный и возвращенный getLog() –

+0

fclose() ожидает, что параметр 1 будет ресурсом, заданный массив fgets() ожидает, что параметр 1 будет ресурсом, заданный массив –

Смежные вопросы