protected function pciconf()
    {
        $arrResults = array();
        $intS = 0;
        if (CommonFunctions::executeProgram("pciconf", "-lv", $strBuf, PSI_DEBUG)) {
            $arrTemp = array();
            $arrBlocks = preg_split("/\n\S/", $strBuf, -1, PREG_SPLIT_NO_EMPTY);
            foreach ($arrBlocks as $strBlock) {
                $arrLines = preg_split("/\n/", $strBlock, -1, PREG_SPLIT_NO_EMPTY);
                $vend = null;
                foreach ($arrLines as $strLine) {
                    if (preg_match("/\sclass=0x([a-fA-F0-9]{4})[a-fA-F0-9]{2}\s.*\schip=0x([a-fA-F0-9]{4})([a-fA-F0-9]{4})\s/", $strLine, $arrParts)) {
                        $arrTemp[$intS] = 'Class '.$arrParts[1].': Device '.$arrParts[3].':'.$arrParts[2];
                        $vend = '';
                    } elseif (preg_match("/(.*) = '(.*)'/", $strLine, $arrParts)) {
                        if (trim($arrParts[1]) == "vendor") {
                            $vend = trim($arrParts[2]);
                        } elseif (trim($arrParts[1]) == "device") {
                            if (($vend !== null) && ($vend !== '')) {
                                $arrTemp[$intS] = $vend." - ".trim($arrParts[2]);
                            } else {
                                $arrTemp[$intS] = trim($arrParts[2]);
                                $vend = '';
                            }
                        }
                    }
                }
                if ($vend !== null) {
                    $intS++;
                }
            }
            foreach ($arrTemp as $name) {
                $dev = new HWDevice();
                $dev->setName($name);
                $arrResults[] = $dev;
            }
        }

        return $arrResults;
    }
protected function pciconf()
    {
        $arrResults = array();
        $intS = 0;
        if (CommonFunctions::executeProgram("pciconf", "-lv", $strBuf, PSI_DEBUG)) {
            $arrTemp = array();
            $arrBlocks = preg_split("/\n\S/", $strBuf, -1, PREG_SPLIT_NO_EMPTY);
            foreach ($arrBlocks as $strBlock) {
                $arrLines = preg_split("/\n/", $strBlock, -1, PREG_SPLIT_NO_EMPTY);
                $vend = null;
                foreach ($arrLines as $strLine) {
                    if (preg_match("/\sclass=0x([a-fA-F0-9]{4})[a-fA-F0-9]{2}\s.*\schip=0x([a-fA-F0-9]{4})([a-fA-F0-9]{4})\s/", $strLine, $arrParts)) {
                        $arrTemp[$intS] = 'Class '.$arrParts[1].': Device '.$arrParts[3].':'.$arrParts[2];
                        $vend = '';
                    } elseif (preg_match("/(.*) = '(.*)'/", $strLine, $arrParts)) {
                        if (trim($arrParts[1]) == "vendor") {
                            $vend = trim($arrParts[2]);
                        } elseif (trim($arrParts[1]) == "device") {
                            if (($vend !== null) && ($vend !== '')) {
                                $arrTemp[$intS] = $vend." - ".trim($arrParts[2]);
                            } else {
                                $arrTemp[$intS] = trim($arrParts[2]);
                                $vend = '';
                            }
                        }
                    }
                }
                if ($vend !== null) {
                    $intS++;
                }
            }
            foreach ($arrTemp as $name) {
                $dev = new HWDevice();
                $dev->setName($name);
                $arrResults[] = $dev;
            }
        }

        return $arrResults;
    }
protected function pciconf ( ) { $ arrResults = array ( ) ; $ intS = 0 ; if ( CommonFunctions :: executeProgram ( "pciconf" , "-lv" , $ strBuf , PSI_DEBUG ) ) { $ arrTemp = array ( ) ; $ arrBlocks = preg_split ( "/\n\S/" , $ strBuf , - 1 , PREG_SPLIT_NO_EMPTY ) ; foreach ( $ arrBlocks as $ strBlock ) { $ arrLines = preg_split ( "/\n/" , $ strBlock , - 1 , PREG_SPLIT_NO_EMPTY ) ; $ vend = null ; foreach ( $ arrLines as $ strLine ) { if ( preg_match ( "/\sclass=0x([a-fA-F0-9]{4})[a-fA-F0-9]{2}\s.*\schip=0x([a-fA-F0-9]{4})([a-fA-F0-9]{4})\s/" , $ strLine , $ arrParts ) ) { $ arrTemp [ $ intS ] = 'Class ' . $ arrParts [ 1 ] . ': Device ' . $ arrParts [ 3 ] . ':' . $ arrParts [ 2 ] ; $ vend = '' ; } elseif ( preg_match ( "/(.*) = '(.*)'/" , $ strLine , $ arrParts ) ) { if ( trim ( $ arrParts [ 1 ] ) == "vendor" ) { $ vend = trim ( $ arrParts [ 2 ] ) ; } elseif ( trim ( $ arrParts [ 1 ] ) == "device" ) { if ( ( $ vend !== null ) && ( $ vend !== '' ) ) { $ arrTemp [ $ intS ] = $ vend . " - " . trim ( $ arrParts [ 2 ] ) ; } else { $ arrTemp [ $ intS ] = trim ( $ arrParts [ 2 ] ) ; $ vend = '' ; } } } } if ( $ vend !== null ) { $ intS ++ ; } } foreach ( $ arrTemp as $ name ) { $ dev = new HWDevice ( ) ; $ dev -> setName ( $ name ) ; $ arrResults [ ] = $ dev ; } } return $ arrResults ; }
parsing the output of pciconf command

@return Array
parsing the output of pciconf command