Подсчитать, сколько раз строка повторяется в файле?

Я пытаюсь сделать сценарий. Важно то, что он всегда пишет в текстовом документе, поэтому я хочу посчитать, сколько раз он написал в этом документе, что-то вроде вычисления строк в БД.

Это возможно?

$myFile = "log.txt";
$OS = "It is running: ";
$ID = "System ID: ";
$Skip = "<br />";
$link = '<a href="';
$link2 = '/status.txt"> Click here to view if it is online</a>';
$fh = fopen($myFile, 'a') or die("can't open file");
$menu_text = $_POST['field1'];
$menu_text2 = $_POST['field2'];

if (empty($menu_text2)) {
echo "No Data Has Been Posted";
fclose($fh);
}
else {
$stringData = $OS . $menu_text . $Skip . $ID . $menu_text2 . $link . $menu_text2 . $link2 . $Skip;
fwrite($fh, $stringData);
fclose($fh);
print_r($menu_text2);
mkdir($menu_text2, 0777);
}

0

Решение

$file = fopen($myFile, "r");
$count = 0;
while($row = fgets($file)) {
if(strstr($row, "<br />") !== false)
$count ++;
}
echo $count;
0

Другие решения

Я вижу, ты пишешь <br /> в конце каждой строки. Если у вас нет другой переменной в $stringData = ... буду иметь <br /> в них вы можете открыть файл и посчитать, сколько раз <br /> происходит.

Если бы вы могли <br /> (и вы могли бы как menu_text а также menu_text2 пользовательский ввод), затем вы должны также добавить новую строку, а затем сосчитать строки в файле. Обратите внимание, что вам нужно будет прочитать весь файл, чтобы получить счетчик, который для больших файлов может не подойти.

Другая вещь, которую вы можете сделать, это просто сохранить счет в другом файле.

1

По вопросам рекламы [email protected]