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 = array();
$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');
$ua = strtolower(agent());
$name = 'Not Detected';
$version = '';
if($ua != '')
{
foreach($os as $k=>$v)
{
$k = strtolower($k);
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;
}