为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 php 在 html 表中显示日志文件数据?

如何使用 php 在 html 表中显示日志文件数据?

PHP
守着星空守着你 2022-01-24 13:13:50
我想使用 php 以 html 表格形式显示我的日志文件数据。我的日志文件数据看起来像2019-08-01 07:45:13 112.196.23.170 Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0 42112452 并且用户点击了这封电子邮件:mike@jvpsus.com India IN Punjab我想在表格行中显示2019-08-01 07:45:13然后是第二行的112.196.23.170然后显示整个Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0然后 id 42112452第 4 行然后第六行和用户点击了这封电子邮件:mike@jvpsus.com最后第七排印度旁遮普邦每当我试图获取数组中的数据时,在 foreach 数组分解为键和值之后。我试图用空间爆炸 (' ', $string)。但是整个句子字符与空间进入单独的数组索引。当我尝试 foreach 时,它给了我这个输出我想要的输出如下这是我的代码$logFile = 'testlog.log';$lines = file($logFile); // Get each line of the file and store it as an array// echo "<pre>";// print_r($lines);foreach($lines as $line){    // list($date, $time, $ip, $domain,$no,$mail,$cnt, $cod, $state) = explode(' ', $line);    $output = preg_replace('!\s+!', ' ', $line);     echo "<pre>";    print_r (explode(" ",$output));}?>```
查看完整描述

2 回答

?
当年话下

TA贡献1890条经验 获得超9个赞

提醒您:尝试以 csv 格式登录可能更容易解析日志行。但如果不可能,那么:

  • 更改您的正则表达式。并将其移出foreach循环。

  • 如果你想让它成为一个表格,请使用<table><tr>,<td>标签。

  • 如果将其更改为 AJAX API 会更好:

    • 通过 JSON 返回拆分数据。

    • 并在前端渲染。

尝试完成以下代码。

$logFile = 'testlog.log';

$lines = file($logFile); // Get each line of the file and store it as an array


// The regular expression to break lines

$rgx = '/(\d+-\d+-\d+) (\d+:\d+:\d+) (\d+\.\d+\.\d+\.\d+) (.*? \(.*\)) (.*? .*?) (\d*) (.* email: .*@.*?) (.*$)/';


echo "<table>\n";

foreach($lines as $line) {

    echo "<tr>\n";

    $output = preg_split($rgx, $line);

    ...

    echo "<td>$output[0]</td>\n"

    ...

    echo "</tr>\n";

}

echo "</table>\n";


查看完整回答
反对 回复 2022-01-24
?
ibeautiful

TA贡献1993条经验 获得超5个赞

制表符作为特殊符号可能有效


查看完整回答
反对 回复 2022-01-24
  • 2 回答
  • 0 关注
  • 159 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号