PHP用preg_match替换eregi()

时间:2016-02-18 15:50:56

标签: php

我在使用preg_match替换eregi()时遇到了一些问题。 我有这个代码,我把操作系统归还给我:

// Create list of operating systems with operating system name as array key
        $oses = array (
                'iPhone' => '(iPhone)',
                'Windows 3.11' => 'Win16',
                'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)', // Use regular expressions as value to identify operating system
                'Windows 98' => '(Windows 98)|(Win98)',
                'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
                'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
                'Windows 2003' => '(Windows NT 5.2)',
                'Windows Vista' => '(Windows NT 6.0)|(Windows Vista)',
                'Windows 7' => '(Windows NT 6.1)|(Windows 7)',
                'Windows 8' => '(Windows NT 6.2)|(Windows 8)',
                'Windows NT 4.0' => '(Windows NT 4.0)|(WinNT4.0)|(WinNT)|(Windows NT)',
                'Windows ME' => 'Windows ME',
                'Open BSD'=>'OpenBSD',
                'Sun OS'=>'SunOS',
                'Linux'=>'(Linux)|(X11)',
                'Safari' => '(Safari)',
                'Macintosh'=>'(Mac_PowerPC)|(Macintosh)',
                'QNX'=>'QNX',
                'BeOS'=>'BeOS',
                'OS/2'=>'OS/2',
                'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp/cat)|(msnbot)|(ia_archiver)'
        );

        foreach($oses as $os=>$pattern){ // Loop through $oses array
            // Use regular expressions to check operating system type
            if(preg_match($pattern, $userAgent)) { // Check if a value in $oses array matches current user agent.
                return $os; // Operating system was matched so return $oses key
            }
        }

我替换了eregi()但是给了我警告:

Warning: preg_match(): Delimiter must not be alphanumeric or backslash in
Warning: preg_match(): Unknown modifier '|' in

有人可以帮我解决一下吗?

0 个答案:

没有答案