function required_loader($unamestr = '') { $un = empty($unamestr) ? uname() : $unamestr; $php_major_version = substr(PHP_VERSION, 0, 3); $os_name = substr($un, 0, strpos($un, ' ')); $os_code = empty($os_name) ? '' : strtolower(substr($os_name, 0, 3)); $wordsize = calc_word_size($os_code); $arch = required_loader_arch($un, $os_code, $wordsize); if (!is_string($arch)) { return $arch; } $os_variants = supported_os_variants($os_code, $arch); if (!is_array($os_variants)) { return $os_variants; } $os_ver = ''; if (preg_match('/([0-9.]+)/', uname('r'), $match)) { $os_ver = $match[1]; } $os_ver_parts = preg_split('@\\.@', $os_ver); $loader_sfix = $os_code == 'win' ? 'dll' : 'so'; $file = "ioncube_loader_{$os_code}_{$php_major_version}.{$loader_sfix}"; if ($os_code == 'win') { $os_name = 'Windows'; $file_ts = $file; $os_name_qual = 'Windows'; } else { $os_names = array_keys($os_variants); if (count($os_variants) > 1) { $parts = explode(" ", $os_names[0]); $os_name = $parts[0]; $os_name_qual = $os_name . ' ' . $os_ver_parts[0] . '.' . $os_ver_parts[1]; } else { $os_name = $os_names[0]; $os_name_qual = $os_name; } $file_ts = "ioncube_loader_{$os_code}_{$php_major_version}_ts.{$loader_sfix}"; } return array('uname' => $un, 'arch' => $arch, 'oscode' => $os_code, 'osname' => $os_name, 'osnamequal' => $os_name_qual, 'osvariants' => $os_variants, 'osver' => $os_ver, 'osver2' => $os_ver_parts, 'file' => $file, 'file_ts' => $file_ts, 'wordsize' => $wordsize); }
function required_loader() { $un = php_uname(); $php_major_version = substr(PHP_VERSION, 0, 3); $os_name = substr($un, 0, strpos($un, ' ')); $os_code = empty($os_name) ? '' : strtolower(substr($os_name, 0, 3)); $wordsize = -1 ^ 4294967295.0 ? 64 : 32; if ($os_code == 'win') { $arch = $wordsize == 32 ? 'x86' : 'x86-64'; if ($wordsize != 32) { return ERROR_WINDOWS_64_BIT; } } elseif (!empty($os_code)) { $arch = null; $arch_patterns = array('i.?86' => 'x86', 'x86[-_]64' => 'x86-64', 'x86' => 'x86', 'amd64' => 'x86-64', 'ppc64' => 'ppc64', 'ppc' => 'ppc', 'sparc' => 'sparc'); foreach ($arch_patterns as $token => $a) { if (preg_match("/{$token}/i", $un)) { $arch = $a; break; } } } $os_variants = supported_os_variants($os_code, $arch); if (!is_array($os_variants)) { return $os_variants; } $os_ver = ''; if (preg_match('/([0-9.]+)/', php_uname('r'), $match)) { $os_ver = $match[1]; } $loader_sfix = $os_code == 'win' ? 'dll' : 'so'; $file = "ioncube_loader_{$os_code}_{$php_major_version}.{$loader_sfix}"; if ($os_code == 'win') { $os_name = 'Windows'; $file_ts = $file; } else { $os_names = array_keys($os_variants); $parts = explode(" ", $os_names[0]); $os_name = $parts[0]; $file_ts = "ioncube_loader_{$os_code}_{$php_major_version}_ts.{$loader_sfix}"; } return array('arch' => $arch, 'oscode' => $os_code, 'osname' => $os_name, 'osvariants' => $os_variants, 'osver' => $os_ver, 'osver2' => preg_split('@\\.@', $os_ver), 'file' => $file, 'file_ts' => $file_ts, 'wordsize' => $wordsize); }
function required_loader() { $un = php_uname(); $php_major_version = substr(PHP_VERSION,0,3); $os_name = substr($un,0,strpos($un,' ')); $os_code = empty($os_name)?'':strtolower(substr($os_name,0,3)); $wordsize = ((-1^0xffffffff) ? 64 : 32); $arch = required_loader_arch($un,$os_code,$wordsize); if (!is_string($arch)) { return $arch; } $os_variants = supported_os_variants($os_code,$arch); if (!is_array($os_variants)) { return $os_variants; } $os_ver = ''; if (preg_match('/([0-9.]+)/',php_uname('r'),$match)) { $os_ver = $match[1]; } $loader_sfix = (($os_code == 'win') ? 'dll' : 'so'); $file = "ioncube_loader_${os_code}_${php_major_version}.${loader_sfix}"; if ($os_code == 'win') { $os_name = 'Windows'; $file_ts = $file; } else { $os_names = array_keys($os_variants); $parts = explode(" ",$os_names[0]); $os_name = $parts[0]; $file_ts = "ioncube_loader_${os_code}_${php_major_version}_ts.${loader_sfix}"; } return array( 'arch' => $arch, 'oscode' => $os_code, 'osname' => $os_name, 'osvariants' => $os_variants, 'osver' => $os_ver, 'osver2' => preg_split('@\.@',$os_ver), 'file' => $file, 'file_ts' => $file_ts, 'wordsize' => $wordsize ); }