Php 如何仅显示带有关键字的文件中的精确行?

Php 如何仅显示带有关键字的文件中的精确行?,php,fopen,fread,Php,Fopen,Fread,我正在寻找一种方法,通过文件中的关键字只显示某些字符串。因此,例如,如果有人在文本字段中输入某个playername,那么日志文件中将只显示该播放器执行的命令 日志文件 到目前为止,我已经完成了PHP脚本 它现在只转储整个GM.log文件 $logfile = "/logs/GM.log"; // Directory where the GM.log is stored. $file = fopen($logfile, "r") or die("

我正在寻找一种方法,通过文件中的关键字只显示某些字符串。因此,例如,如果有人在文本字段中输入某个playername,那么日志文件中将只显示该播放器执行的命令

日志文件 到目前为止,我已经完成了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);

我不是要求有人为我编写准确的代码,而是要求提供如何以最佳方式编写代码的提示。

类似的内容应该适合您:

只需通过将文件放入数组即可。然后使用Simple来识别您想要的行

<?php

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

?>

你可以在每一行上设置一个条件,看看它是否包含你的关键字,你可以这样使用:
if(strpos($ine,'player1')!==false){echo$line;}
FYI:你可以在这里参观一下:看看这个网站是如何工作的,以及所有东西都在哪里
<?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)] )