Przerobienie ereg() na preg_match()

0

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;
}

0

Nie widzę tu w ogóle użycia wyrażeń regularnych. Zwykłe strpos załatwi sprawę.

1 użytkowników online, w tym zalogowanych: 0, gości: 1