天天看點

Windows WMI庫最簡單的讀取方式.

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數組的函數. 這函數已經做了完全的相容.

$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