小编Ste*_*eve的帖子

如何按字母中的数字对字符串列表进行排序?

毫无疑问,这对你来说很简单......

我有一个类似的文件名列表;

fw_d.log.1.gz  
through  
fw_d.log.300.gz  
Run Code Online (Sandbox Code Playgroud)

当我使用下面的代码块时,它几乎按我想要的方式排序,但不完全.

#!/usr/bin/perl -w
my $basedir = "/var/log";
my @verdir = qw(fw_d);
my $fulldir;
my $configs;
my $combidir;

foreach $combidir (@verdir) {
    $fulldir = "$basedir/$combidir";
    opendir (DIR, $fulldir);
    my @files = grep { $_ ne '.' && $_ ne '..' && $_ ne 'CVS' readdir DIR;
    closedir (DIR);
    @files1 = sort {$a cmp $b}(@files);
    foreach my $configs (@files1) {
        print "Checking $configs\n";
        system("less $basedir/$combidir/$configs | grep \'.* Group = , Username = .* autheauthenticated.\' >> output.log" …
Run Code Online (Sandbox Code Playgroud)

sorting perl numbers natural-sort

14
推荐指数
3
解决办法
7346
查看次数

停止数据库读取阻止web ui呈现

我正在构建一个PHP Web服务.

在编写太多代码之前,我可以看到一个问题迫在眉睫,并希望得到一些如何对抗它的输入.

我有14个站点,每个站点都包含一个mysql数据库的实例,该数据库由另一个自定义perl脚本更新.

为了将这些数据合并到一个Web前端,我试图编写一个执行以下操作的php网页.

在首页上,Web服务器连接到所有14个数据库服务器并提取其所需的信息,然后在页面上呈现它.目前,这完美无缺,因为所有数据都保存在我的本地机器上,但在生产中,这些数据将分布在14个独立的数据库中.

所以我的问题是,从UI绘画中抽象数据库读取的最佳方法是什么.理想情况下,我希望有完整的网页渲染,加载栏指示用户何时可以期望显示数据.

这是通过AJAX可以实现的,或者我应该朝另一个方向看.

提前致谢.

php mysql ajax web-services web

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

更优雅的访问散列数组的方法

首先,如果我在即将发布的帖子中得到任何错误的术语,那么这对我来说仍然是新的.

一些背景,我有一个脚本,检查我们的存档网络配置为一组特定的设置.因此,该脚本会运行许多检查,并将结果添加到该检查的数组中.

例如,确保配置syslog的检查被添加到名为@internalsyslogerror的数组中

运行所有检查后,所有检查的数组都会添加到哈希中,密钥为设备名称.

请注意所有代码都使用严格,使用警告

使用以下命令;

$results{$configs} = [@internalsyslogerror, @bordersyslogerror, 
@borderntperror, @borderntperror, @internalntperror, 
@bordertacacserror, @internaltacacserror, @enablepasswordchecks,
@internalsnmpkeyserror, @timezoneerror, @configregistererror, 
@bannererror, @bootregistererror, @domainnameerror];
Run Code Online (Sandbox Code Playgroud)

我所拥有的问题是提取此信息的最优雅方式,我希望减少为了向脚本添加新检查而必须进行的更改量.目前我将不得不将附加数组添加到上面的代码,然后将解除引用部分添加到处理它的子.

这是我目前所做的去引用和输出数组,然后我通过电子邮件发送.

foreach my $k (keys %results) {
    push @results, "<b>$k</b><br>";
    if (defined $results{$k}[0] ){
    push @results, "$results{$k}[0]";
    }
    if (defined $results{$k}[1] ){
    push @results, "$results{$k}[1]";
    }
    if (defined $results{$k}[2] ){
    push @results, "$results{$k}[2]";
    }
    if (defined $results{$k}[3] ){  
    push @results, "$results{$k}[3]";
    }
    if (defined $results{$k}[4] ){
    push @results, "$results{$k}[4]";
    }
    if (defined $results{$k}[5] ){
    push @results, "$results{$k}[5]"; …
Run Code Online (Sandbox Code Playgroud)

arrays perl hash perl-data-structures

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

PHP多维数组的麻烦

我目前正在尝试从mysql数据库中提取数据,然后使用设备名称作为键将其放入多维数组中.

我遇到的问题是,每次迭代结果时,代码即时使用会杀死最后一项并替换它.

这是代码;

##sql connection##
$result = mysql_query(SELECT Device.DeviceID, Device.DeviceName, History.HistoryRec, History.HistoryDetectedDate from Device JOIN History ON Device.DeviceID=History.DeviceID WHERE History.Active_LastRound = 1 AND History.DetectedDate <= $hrs);
if (!$result){
die('invaild query:' . mysql_error());

while($row = mysql_fetch_array($result))
{
$last24hoursarray[$row['DeviceName']] = array($row['HistoryRec']);
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我的结果集有多个具有相同设备名称的记录,我不知道如何将它们放入一个数组,以便它们不会覆盖最后一项

比如我想要的

switch1 => issue1
switch1 => issue2
switch1 => issue3
switch2 => issue1
etc
Run Code Online (Sandbox Code Playgroud)

但我得到的是;

switch1 => issue3
switch2 => issue1
Run Code Online (Sandbox Code Playgroud)

提前致谢.这是我写的第一篇PHP,所以请温柔:D

php multidimensional-array

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