Php 我如何跟踪一个有日期的日志文件?

Php 我如何跟踪一个有日期的日志文件?,php,Php,我想在我的网站的管理员页面上实时跟踪一个有日期的日志文件,但我遇到了一些问题。只有在$filename变量中手动输入日期,我才能让它工作 下面是我在这里找到的代码,但我想知道如何获取日期文件(例如:2016_04_26.ilog) 需要解决的两个问题: $filedir$filename 这不是有效的php变量 这里有一个撇号在攻击代码 $filedir$filename') 把撇号去掉 修复这两个问题,并让我知道您的问题是否已解决。我认为您的初始$filename可能是错误的-我看到了太多的引

我想在我的网站的管理员页面上实时跟踪一个有日期的日志文件,但我遇到了一些问题。只有在$filename变量中手动输入日期,我才能让它工作

下面是我在这里找到的代码,但我想知道如何获取日期文件(例如:2016_04_26.ilog)


需要解决的两个问题:

  • $filedir$filename
  • 这不是有效的php变量

  • 这里有一个撇号在攻击代码

    $filedir$filename')

  • 把撇号去掉


    修复这两个问题,并让我知道您的问题是否已解决。

    我认为您的初始
    $filename
    可能是错误的-我看到了太多的引号。假设文件名看起来像
    2016\u 04\u 27.ilog
    ,那么您应该使用:

    $filename=date('Y\m\u d')。伊洛格'

    此外,为了进一步排除故障,您可以尝试将执行命令放入变量并输出:

    $stringToExecute = ('tail -n250 ' . $filedir$filename);
    echo $stringToExecute;
    $output = shell_exec(stringToExecute);
    
    最后,如果要回显日志文件,您可能只想跳过
    str_replace
    ,将结果包装在
    中。这将告诉浏览器保持新行不变

    echo "<pre>$output</pre>";
    
    <?php
    $filename = date('Y_m_d').'.ilog'; // misplaced quotes
    $filedir = '/full/path/to/gamelogs/'; // relative path instead of full path
    $output = shell_exec("tail -n250  {$filedir}{$filename}"); //exec removed
    echo str_replace(PHP_EOL, '<br />', $output); // line OK
    ?>
    
    echo“$output”;
    
    如果您有几个错误,请尝试以下操作:

    
    
    现在显示“tail-n50/gamedir/2016\u 04\u 26.ilog”作为输出,但我想实际跟踪进入日志文件的条目。我该怎么做那样的事呢?啊。因此,您的问题在()之前已经得到了一定程度的回答,最好的解决方案是:-然后您可能希望使用AJAX命令定期轮询服务器以获取最新的文件内容。另外,值得注意的是,传统上我们会使用WebSocket解决此类“实时”问题,但是PHP对websockets的支持非常有限。尝试一下这个和其他方法仍然没有效果,只会给我一个空白页面。但是如果我输入日期,我会让它与原始文件一起工作,但是文件会自动保存并为每一天生成一个新的日志。我想,如何自动查看扩展名为.ilog的最新文件将是我的第二个选择,它只显示最后50行左右的文本。你找到答案了吗?没有,我尝试了你的解决方案,但只能输出日志目录和文件名,如:“/gamelogs/2016\u 04\u 26.ilog”。但我希望它选择当前的日志文件名(例如:YYYY\u MM\u DD.ilog)并将其回显,原因是每次角色在游戏中执行操作时,文件都会不断写入。我以前让它工作过,但它不会自动选择当前日期(如果可能的话,从目录中选择并显示最新的.ilog文件的提要也会起作用,因为该目录只存储.ilog文件。我花了大约2个小时与您所有的人一起工作,但没有运气,我仍在尝试在键入此代码时找出它。
    echo "<pre>$output</pre>";
    
    <?php
    $filename = date('Y_m_d').'.ilog'; // misplaced quotes
    $filedir = '/full/path/to/gamelogs/'; // relative path instead of full path
    $output = shell_exec("tail -n250  {$filedir}{$filename}"); //exec removed
    echo str_replace(PHP_EOL, '<br />', $output); // line OK
    ?>