php读取snmptable表格并格式化数组

本文介绍了一种高效处理SNMPTable输出的方法,尤其针对含有空值或带空格的值的情况。通过PHP脚本实现自动解析,将表格数据转换为易于处理的数组格式,为监控系统提供快速的数据获取途径。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

多数snmptable输出是每个字段有值并且内容没有空格,方便字符串分割。但是有些snmp的值为空,或者值中包含空格,这个处理起来就麻烦一些。为给监控提高效率,直接读取snmptable要快一些。

为方便snmptable输出到文件,首行为表头(不同设备导出时处理一下)

<?php
    $fileName = "snmptable.txt";

    //读取snmptable文件(行首为表头)
    $fileArray = array_filter(explode("\n", file_get_contents($fileName)));
    $tableHeader = array_filter(preg_split('/\s+/', $fileArray[0]));

    //把表头格式化成数组
    $newTableHeader = array();
    $tempPosition = 0;
    foreach($tableHeader as $key=>$value){
        $start = $tempPositon;
        $end = strpos($fileArray[0], $value) + strlen($value); 
        $newTableHeader[$value] = array("start"=>$start, "strlen"=>$end-$start);
        $tempPositon = $end + 1;
    }

    //遍历每一行,并格式化成数组
    $snmpTableArray = array();
    foreach($fileArray as $line){
        $temp = array();
        foreach($newTableHeader as $key=>$value){
            $temp[$key] = trim(substr($line,$value["start"], $value["strlen"]));
        }
        $snmpTableArray[] = $temp;
    }

    print_r($snmpTableArray);
    
?>

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值