小编Mac*_*Man的帖子

拖尾日志文件并将结果写入新文件

我不知道怎么说这个,所以我会打出来然后编辑并回答任何问题.

目前在我的本地网络设备(基于PHP4)上我使用它来定制一个实时系统日志文件:http://commavee.com/2007/04/13/ajax-logfile-tailer-viewer/

这很好用,并且每1秒加载一个执行a的外部页面(logfile.php)tail -n 100 logfile.log .脚本不进行任何缓冲,因此它在屏幕上显示的结果是日志文件中的最后100行.

logfile.php包含:

<? // logtail.php $cmd = "tail -10 /path/to/your/logs/some.log"; exec("$cmd 2>&1", $output);
foreach($output as $outputline) {
 echo ("$outputline\n");
}
?>
Run Code Online (Sandbox Code Playgroud)

这部分运作良好.

我已经调整了logfile.php页面,将$ outputline写入一个新的文本文件,只需使用 fwrite($fp,$outputline."\n");

虽然这有效但我在创建的新文件中存在重复问题.

显然每次运行tail -n 100都会产生结果,下次运行它会产生一些相同的行,因为重复这一点我最终会在新的文本文件中出现多行重复.

我不能直接比较我要写入前一行的行,因为可能有相同的匹配.

有没有什么方法可以比较当前100行的块与前一个块,然后只写不匹配的行..再次可能的问题,块A和B将包含所需的相同行...

是否可以更新logfile.php以记录它在我的日志文件中最后占用的位置,然后只读取那里的下一行并将其写入新文件?

日志文件可能高达500MB,所以我不想每次都读取它.

任何建议或建议欢迎..

谢谢

更新@ 16:30

我有点使用这个:

$file = "/logs/syst.log";
$handle = fopen($file, "r");

if(isset($_SESSION['ftell'])) {   
    clearstatcache();
    fseek($handle, $_SESSION['ftell']); 

    while ($buffer = fgets($handle)) { 
        echo $buffer."<br/>";
        @ob_flush(); @flush();
    }   

    fclose($handle);
    @$_SESSION['ftell'] = ftell($handle);        
} else {
    fseek($handle, -1024, SEEK_END); …
Run Code Online (Sandbox Code Playgroud)

php jquery logging tail

9
推荐指数
1
解决办法
1564
查看次数

开始后取消/停止jquery fadeOut

我有一个非常简单的页面,当用户点击页面上的特定条目时,它会显示状态更新.

这一切都很好.第一次单击id='sts'使用正确的输出更新 ,6秒后消失.

然而,如果用户点击另一个链接时它会逐渐消失,DIV会使用新文本进行更新,但它会根据原始淡出超时时间逐渐消失.

无论如何让DIV更新再次启动淡入淡出计数器?

这就是我目前用来进行div更新的内容.

$('.first').click(function () {
    $("#sts").html('first update 1').show().fadeOut(6000);
});

$('.next').click(function () {
    $("#sts").html('second update 2').show().fadeOut(6000);
});

$('.last').click(function () {
    $("#sts").html('dinal update 3').show().fadeOut(6000);
});
Run Code Online (Sandbox Code Playgroud)

谢谢

time jquery fadeout

7
推荐指数
1
解决办法
326
查看次数

使用数据表加载覆盖

我正在使用数据表,并将数据从数据库收集到阵列中,然后显示在屏幕上。所有这些都很好。

如果数据大约是2000行7列,则只需几秒钟,但是,如果数据是10,000行7列,则可能需要30 -40秒,所以我想添加一个覆盖层,使屏幕变灰并显示“加载请稍候”

我已经尝试过在本网站和在线上找到的各种脚本和代码,但是似乎都没有用。通常,我会得到延迟,然后是覆盖层的闪烁,然后消失了。

有人可以帮忙吗?

这是我正在使用的数据表代码:

更新:这是没有数据库查询的页面。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>TEST</title>
<style type="text/css">
    @import "layout_page.css";
    @import "layout_table.css";
    html { overflow-y: scroll; };
</style>
<link href="layout.css" rel="stylesheet" type="text/css">
<script src="jquery-1.7.2.min.js" type="text/javascript"></script>
<script src="jquery.dataTables.min.js" type="text/javascript"></script>
<script src="jquery.jeditable.js" type="text/javascript"></script>
<script src="jquery.dataTables.editable.js" type="text/javascript"></script>
</head>
<body id="dt_test">
<div id="container"><div id="layout">

<?php

if(!function_exists('json_encode'))
{
    include_once('JSON.php');
    $GLOBALS['JSON_OBJECT'] = new Services_JSON();
    function json_encode($value)
    { return $GLOBALS['JSON_OBJECT']->encode($value); }

    function json_decode($value)
    { return $GLOBALS['JSON_OBJECT']->decode($value); }
}


//
// DB QUERIES
??
    $result = json_encode($data); …
Run Code Online (Sandbox Code Playgroud)

php jquery overlay datatables

5
推荐指数
1
解决办法
1万
查看次数

2个时间戳之间的PHP小时,分钟和秒

PHP 4

$a = 1359994013   (Mon, 04 Feb 2013 16:06:53)
$b = 1359997483   (Mon, 04 Feb 2013 17:04:43)
Run Code Online (Sandbox Code Playgroud)

如何计算这两个时间戳之间的差异,并将结果显示为:

w days, x hours, y mins, z seconds.
Run Code Online (Sandbox Code Playgroud)

例如:0天,0小时,58分钟,10秒

谢谢 :)

php timestamp

1
推荐指数
1
解决办法
4139
查看次数

匹配数组中的值并替换为替代值

如何替换字符串中的值,该值与数组中具有相同值但在其前面带有\的条目相匹配?

$test = "Mike (D)";
$array('(',')','@','-');
Run Code Online (Sandbox Code Playgroud)

As()在数组$ test中应该相等 "Mike \(D\)";

所以基本上用项目相同的项目替换项目前缀为\

php replace

0
推荐指数
1
解决办法
579
查看次数

理解三元声明

我已经准备好了一些旧的代码,并且遇到了这个问题:

$sal = isset($_REQUEST['c_sal']) ? " " : ($_REQUEST['sal'] ? (Valid($_REQUEST['sal']) ? $_REQUEST['sal'] : false) : null);
Run Code Online (Sandbox Code Playgroud)

我正试图弄清楚它的作用.我知道它正在进行某种形式的验证......但是如何将其恢复为简单的if elseif语句?

所以我可以准确理解它在做什么?

php ternary

0
推荐指数
1
解决办法
53
查看次数

标签 统计

php ×5

jquery ×3

datatables ×1

fadeout ×1

logging ×1

overlay ×1

replace ×1

tail ×1

ternary ×1

time ×1

timestamp ×1