".$iommu[$i++]."$line"; } } else { foreach (explode("\n", $groups) as $line) { if (!$line) continue; if ($line[0]=='I') { if ($spacer) echo ""; else $spacer = true; echo "$line:"; $append = true; } else { echo preg_replace("/^\t/",$append?"":"",$line).""; $append = false; } } } break; case 't2': $i = 1; foreach (explode("\n", preg_replace(['/(\d+)[-,](\d+)/','/(\d+)\b/'], ['$1 / $2','cpu $1'], shell_exec("cat /sys/devices/system/cpu/*/topology/thread_siblings_list|sort -nu"))) as $line) { if (!$line) continue; echo "".(strpos($line,'/')!==false?"Pair ".$i++:"Single").":$line"; } break; case 't3': foreach (explode("\n", shell_exec("lsusb|sort")) as $line) { if (!$line) continue; list($bus,$id) = explode(':', $line, 2); echo "$bus:".trim($id).""; } break; case 't4': foreach (explode("\n", shell_exec("lsscsi -s")) as $line) { if (!$line || strpos($line,'/dev/')===false) continue; echo "".preg_replace('/\] +/',']',$line).""; } break; } ?>