witam, nie znam sie na php a potrzebuję pomocy, strona którą mam ma w swoim kodzie taką funkcję (poniżej) - wyświetlającą jaki system i wersja. Obecnie serwer ma nową wersję php i wyświetlają sie błędy, ze eregi jest przestarzałe. Potrzebuję przerobienia z zamiast eregi na preg_match. czy ktoś może mi pomóc?
function os($what = '')
{
$os['amiga'] = array('name' => 'amiga', 'version' => ''); $os['Commodore 64'] = array('name' => 'Commodore', 'version' => '64'); $os['Commodore 128'] = array('name' => 'Commodore', 'version' => '128'); $os['dreamcast'] = array('name' => 'sega dreamcast', 'version' => ''); $os['googlebot'] = array('name' => 'googlebot', 'version' => ''); $os['freebsd'] = array('name' => 'freebsd', 'version' => ''); $os['freebsd amd64'] = array('name' => 'freebsd', 'version' => 'amd64'); $os['freebsd a64'] = array('name' => 'freebsd', 'version' => 'amd64'); $os['freebsd i686'] = array('name' => 'freebsd', 'version' => 'i686'); $os['freebsd i586'] = array('name' => 'freebsd', 'version' => 'i586'); $os['freebsd i486'] = array('name' => 'freebsd', 'version' => 'i486'); $os['freebsd i386'] = array('name' => 'freebsd', 'version' => 'i386'); $os['freebsd 5'] = array('name' => 'freebsd', 'version' => '5.x'); $os['freebsd 6'] = array('name' => 'freebsd', 'version' => '6.x'); $os['freebsd 7'] = array('name' => 'freebsd', 'version' => '7.x'); $os['hp-ux'] = array('name' => 'hp-ux', 'version' => ''); $os['hpux'] = array('name' => 'hp-ux', 'version' => ''); $os['htmlparser'] = array('name' => 'htmlparser', 'version' => ''); $os['irix'] = array('name' => 'irix', 'version' => ''); $os['liberate'] = array('name' => 'liberate', 'version' => ''); $os['lindows'] = array('name' => 'lindows os', 'version' => ''); $os['linux'] = array('name' => 'linux', 'version' => ''); $os['linux i686'] = array('name' => 'linux', 'version' => 'i686'); $os['linux i586'] = array('name' => 'linux', 'version' => 'i586'); $os['linux i486'] = array('name' => 'linux', 'version' => 'i486'); $os['linux i386'] = array('name' => 'linux', 'version' => 'i386'); $os['linux ppc'] = array('name' => 'linux', 'version' => 'ppc'); $os['mac'] = array('name' => 'macintosh', 'version' => ''); $os['Mac OS X'] = array('name' => 'macintosh', 'version' => 'OS X'); $os['Mac OS X 10_4'] = array('name' => 'macintosh', 'version' => 'OS X 10.4.x (Tiger)'); $os['Mac OS X 10_5'] = array('name' => 'macintosh', 'version' => 'OS X 10.5.x (Leopard)'); $os['Mac OS X 10_5_2'] = array('name' => 'macintosh', 'version' => 'OS X 10.5.2 (Leopard)'); $os['Mac OS X 10_5_3'] = array('name' => 'macintosh', 'version' => 'OS X 10.5.3 (Leopard)'); $os['Mac 10'] = array('name' => 'macintosh', 'version' => 'OS X'); $os['PowerPC'] = array('name' => 'macintosh', 'version' => 'PPC'); $os['PPC'] = array('name' => 'macintosh', 'version' => 'PPC'); $os['68000'] = array('name' => 'macintosh', 'version' => '68K'); $os['68k'] = array('name' => 'macintosh', 'version' => '68K'); $os['netbsd'] = array('name' => 'netbsd', 'version' => ''); $os['netbsd amd64'] = array('name' => 'netbsd', 'version' => 'amd64'); $os['netbsd a64'] = array('name' => 'netbsd', 'version' => 'amd64'); $os['netbsd i686'] = array('name' => 'netbsd', 'version' => 'i686'); $os['netbsd i586'] = array('name' => 'netbsd', 'version' => 'i586'); $os['netbsd i486'] = array('name' => 'netbsd', 'version' => 'i486'); $os['netbsd i386'] = array('name' => 'netbsd', 'version' => 'i386'); $os['netcraft'] = array('name' => 'netcraft', 'version' => ''); $os['os/2'] = array('name' => 'os/2', 'version' => ''); $os['os2'] = array('name' => 'os/2', 'version' => ''); $os['Warp 4'] = array('name' => 'os/2', 'version' => 'Warp 4'); $os['Warp 4.5'] = array('name' => 'os/2', 'version' => 'Warp 4.5'); $os['osf1'] = array('name' => 'osf1', 'version' => ''); $os['openbsd'] = array('name' => 'openbsd', 'version' => ''); $os['openbsd amd64'] = array('name' => 'openbsd', 'version' => 'amd64'); $os['openbsd a64'] = array('name' => 'openbsd', 'version' => 'amd64'); $os['openbsd i686'] = array('name' => 'openbsd', 'version' => 'i686'); $os['openbsd i586'] = array('name' => 'openbsd', 'version' => 'i586'); $os['openbsd i486'] = array('name' => 'openbsd', 'version' => 'i486'); $os['openbsd i386'] = array('name' => 'openbsd', 'version' => 'i386'); $os['palm'] = array('name' => 'palm', 'version' => ''); $os['pcbsd 7'] = array('name' => 'pcbsd', 'version' => '7'); $os['powertv'] = array('name' => 'powertv', 'version' => ''); $os['prodigy'] = array('name' => 'prodigy', 'version' => ''); $os['qnx'] = array('name' => 'qnx', 'version' => ''); $os['photon'] = array('name' => 'qnx', 'version' => 'photon'); $os['sie-cx35'] = array('name' => 'Siemens CX35', 'version' => ''); $os['symbian'] = array('name' => 'symbian', 'version' => ''); $os['symbian/6.1'] = array('name' => 'symbian', 'version' => '6.1'); $os['sunos'] = array('name' => 'sunos', 'version' => ''); $os['surveybot'] = array('name' => 'Whois Source', 'version' => ''); $os['unix'] = array('name' => 'unix', 'version' => ''); $os['yahoo'] = array('name' => 'yahoo', 'version' => ''); $os['yahoo! slurp'] = array('name' => 'yahoo slurp', 'version' => ''); $os['web tv'] = array('name' => 'web tv', 'version' => ''); $os['webtv'] = array('name' => 'web tv', 'version' => ''); $os['win'] = array('name' => 'windows', 'version' => ''); $os['windows nt'] = array('name' => 'windows', 'version' => 'nt'); $os['winnt'] = array('name' => 'windows', 'version' => 'nt'); $os['win3.11'] = array('name' => 'windows', 'version' => '3.11'); $os['win3.1'] = array('name' => 'windows', 'version' => '3.1'); $os['windows 95'] = array('name' => 'windows', 'version' => '95'); $os['win95'] = array('name' => 'windows', 'version' => '95'); $os['windows 98'] = array('name' => 'windows', 'version' => '98'); $os['win98'] = array('name' => 'windows', 'version' => '98'); $os['windows me'] = array('name' => 'windows', 'version' => 'me'); $os['win 9x 4.90'] = array('name' => 'windows', 'version' => 'me'); $os['windows nt 5.0'] = array('name' => 'windows', 'version' => '2000'); $os['winnt5.0'] = array('name' => 'windows', 'version' => '2000'); $os['windows 2000'] = array('name' => 'windows', 'version' => '2000'); $os['win2000'] = array('name' => 'windows', 'version' => '2000'); $os['windows nt 5.1'] = array('name' => 'windows', 'version' => 'xp'); $os['winnt5.1'] = array('name' => 'windows', 'version' => 'xp'); $os['windows xp'] = array('name' => 'windows', 'version' => 'xp'); $os['winxp'] = array('name' => 'windows', 'version' => 'xp'); $os['windows nt 5.2'] = array('name' => 'windows', 'version' => '.net 2003'); $os['winnt5.2'] = array('name' => 'windows', 'version' => '.net 2003'); $os['windows nt 6'] = array('name' => 'windows', 'version' => 'Codename: Vista'); $os['winnt6'] = array('name' => 'windows', 'version' => 'Codename: Vista'); $os['windows nt 6.0'] = array('name' => 'windows', 'version' => 'Codename: Vista'); $os['winnt6.0'] = array('name' => 'windows', 'version' => 'Codename: Vista'); $os['windows nt 6.1'] = array('name' => 'windows', 'version' => '7'); $os['winnt6.1'] = array('name' => 'windows', 'version' => '7'); $os['windows ce'] = array('name' => 'windows', 'version' => 'ce');
$name = 'Not Detected';
$version = '';
if($ua != '')
{
foreach($os as $k=>$v)
{
if(eregi($k, $ua) !== false) // zamiast eregi - preg_match {
$name = $v['name'];
$version = $v['version'];
}
}
}
switch($what)
{
case 'all':
$return['os'] = $name.' v.'.$version;
$return['name'] = $name;
$return['version'] = $version;
break;
case 'name':
$return = $name;
break;
case 'version':
$return = $version;
break;
default:
$return = $name.' '.$version;
break;
}
return $return;
}