Мне нужно выполнить команду Linux more
в PHP с определенного смещения, отформатировать результат и отобразить результат в браузере.
Мой код для вышеупомянутого:
<html>
<head>
<META HTTP-EQUIV=REFRESH CONTENT=10>
<META HTTP-EQUIV=PRAGMA CONTENT=NO-CACHE>
<title>Runtime Access log</title>
</head>
<body>
<?php
$moreCommand = "more +3693 /var/log/apache2/access_log | grep -v -e '.jpg' -e '.jpeg' -e '.css' -e '.js' -e '.bmp' -e '.ico'| wc -l";
exec($moreCommand, $accessDisplay);
echo "<br/>No of lines are : $accessDisplay[0] <br/>";
?>
</body>
</html>
Вывод в браузере: Нет строк: 3428 (Это неправильно)
При выполнении той же команды с использованием командной строки выдается другой вывод. Мой фрагмент кода для того же:
<?php
$moreCommand = "more +3693 /var/log/apache2/access_log | grep -v -e '.jpg' -e '.jpeg' -e '.css' -e '.js' -e '.bmp' -e '.ico'| wc -l";
exec($moreCommand, $accessDisplay);
echo "No of lines are : $accessDisplay[0] \n";
?>
Вывод в командной строке: Нет строк: 279 (Это правильно)
При выполнении той же команды непосредственно в командной строке выдает вывод как 279.
Я не могу понять, почему вывод той же команды неверен в браузере. Это фактически дает количество слов строк, игнорируя параметр смещения.