$vals[1], 'type' => $vals[2], 'ip' => ((empty($ip[1]) ? '' : $ip[1]))); } return $interfaces; } private function before($thing, $inthat) { return substr($inthat, 0, strpos($inthat, $thing)); } private function array_key_exists_recursive($key, $arr) { if (array_key_exists($key, $arr)) { return true; } foreach ($arr as $currentKey => $value) { if (is_array($value)) { return $this->array_key_exists_recursive($key, $value); } } return false; } private function strpos_array($haystack, $needles) { if (is_array($needles)) { foreach ($needles as $str) { if (is_array($str)) { $pos = $this->strpos_array($haystack, $str); } else { $pos = strpos($haystack, $str); } if ($pos !== FALSE) { return $pos; } } } else { return strpos($haystack, $needles); } return FALSE; } private function findAllFiles($dir, $file_mask = null, $mode = 'full') { $result = null; if (empty($dir) || (!file_exists($dir))) { return $result; } $root = scandir($dir); foreach ($root as $value) { if ($value === '.' || $value === '..') { continue; } if (is_file("$dir/$value")) { $filter = false; if (!empty($file_mask)) { if (is_array($file_mask)) { foreach ($file_mask as $k) { if (strpos(strtolower($value), strtolower($k)) !== false) { $filter = true; } } } else { if (strpos(strtolower($value), strtolower($file_mask)) !== false) { $filter = true; } } } else { $filter = true; } if ($filter) { if ($mode == 'fileonly') { $result[] = "$value"; } else { $result[] = "$dir/$value"; } } else { $result[] = null; } continue; } $sub_fiend = $this->findAllFiles("$dir/$value", $file_mask, $mode); if (!empty($sub_fiend)) { foreach ($sub_fiend as $sub_value) { if (!empty($sub_value)) { $result[] = $sub_value; } } } } return $result; } } ?>