Как я могу показать только точные строки из файла с ключевым словом?

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

Журнальный файл

Command: .gm fly on [Player: PlayerOne (Guid: 135) (Account: 256) X: 16222.640625 Y: 16253.207031 Z: 12.735716 Map: 720 (Realmlist) Area: 0 (Unknown) Zone: Unknown Selected none: (GUID: 0)]
Command: .gm on [Player: PlayerTwo (Guid: 136) (Account: 257) X: 16252.911133 Y: 16232.371094 Z: 30.036341 Map: 720 (Realmlist) Area: 0 (Unknown) Zone: Unknown Selected none: (GUID: 0)]
Command: .mod sp 5 [Player: PlayerThree (Guid: 137) (Account: 258) X: 16252.911133 Y: 16232.371094 Z: 30.036341 Map: 720 (Realmlist) Area: 0 (Unknown) Zone: Unknown Selected none: (GUID: 0)]

PHP скрипт у меня пока

На данный момент он выводит только весь файл GM.log.

$logfile = "/logs/GM.log"; // Directory where the GM.log is stored.

$file = fopen($logfile, "r") or die("Unable to open file!");

$read = fread($file,filesize($logfile));

echo nl2br($read); //Dump the whole file for now.

fclose($file);

Я не прошу, чтобы кто-то написал точный код для меня, я скорее прошу подсказки о том, как бы я сделал это наилучшим образом.

1

Решение

Нечто подобное должно работать для вас:

Просто поместите ваш файл в массив через file(). Тогда используйте просто preg_grep() определить линии, которые вы хотите.

<?php

$lines = file("logs.txt");
$lines = preg_grep("/Player: PlayerTwo/", $lines);
print_r($lines);

?>

выход:

Array ( [1] => Command: .gm on [Player: PlayerTwo (Guid: 136) (Account: 257) X: 16252.911133 Y: 16232.371094 Z: 30.036341 Map: 720 (Realmlist) Area: 0 (Unknown) Zone: Unknown Selected none: (GUID: 0)] )
1

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

Других решений пока нет …

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