Windows WMI库最简单的读取方式.

2019-09-04 18:17:58 浏览数 (1)

代码语言:javascript复制
   function VARIANT_ArrAy($process){
              $row = array();
              foreach($process->Properties_ AS $key => $val){
                  if(is_object($val->value)){
                      $tval = array();
                      if(count($val->value)>0){
                          foreach($val->value AS $k => $v){
                              $tval[$k] = $v;
                          }
                          $kval =implode(',', $tval);
                      }else{
                          $kval = null;
                      }
                      $kname = $val->name;
                  }else{
                      $kname = $val->name;
                      $kval = $val->value; 
                  }
                  $row[$kname] = $kval;
              }
              return $row;
 }

首先我们先声明一个VARIANT类型转Array数组的函数. 这函数已经做了完全的兼容.

代码语言:javascript复制
$wmi = new COM('winmgmts://');
$queryList = $wmi->ExecQuery("SELECT * FROM Win32_OperatingSystem");
foreach($queryList as $key => $process){ // $process 默认就是VARIANT(泛型)
   $arr = VARIANT_ArrAy($process);
   print_r($arr); // 详细值.
   exit();
}

简单地查询示例.

你可以用var_dump函数打印一下, 可以很清楚看到类型. 但不能看到更多的具体.

假如你需要自行研究, 搞懂一切.

那你可以寻找"com_print_typeinfo" 函数的相关信息.

END

0 人点赞