Jump to content
php.lv forumi
Sign in to follow this  
gkazhus

preg_match

Recommended Posts

Kaa lai pareizi pieraksta preg_match nosacijumus:

 

šobrid sanjemu error Warning

: preg_match() [

function.preg-match

]: Delimiter must not be alphanumeric or backslash

 

$OSList = array
(
   	// Match user agent string with operating systems
   	'Windows 3.11' => 'Win16',
   	'Windows 95' => '(Windows 95)|(Win95)|(Windows_95)',
   	'Windows 98' => '(Windows 98)|(Win98)',
   	'Windows 2000' => '(Windows NT 5.0)|(Windows 2000)',
   	'Windows XP' => '(Windows NT 5.1)|(Windows XP)',
   	'Windows Server 2003' => '(Windows NT 5.2)',
   	'Windows Vista' => '(Windows NT 6.0)',
   	'Windows 7' => '(Windows NT 6.1)|(Windows NT 7.0)',
   	'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)',
   	'Mac OS' => '(Mac_PowerPC)|(Macintosh)',
   	'QNX' => 'QNX',
   	'BeOS' => 'BeOS',
   	'OS/2' => 'OS/2',
 'Mac OS' => 'Mac OS',
   	'Search Bot'=>'(nuhk)|(Googlebot)|(Yammybot)|(Openbot)|(Slurp)|(MSNBot)|(Ask Jeeves/Teoma)|(ia_archiver)'
);

// Loop through the array of user agents and matching operating systems
foreach($OSList as $CurrOS=>$Match) {
   	// Find a match
   	if (preg_match($Match, $agent)) {
           	break;
   	} else {
  $CurrOS = "Unknown OS";
 }

Share this post


Link to post
Share on other sites

Nosacījumos ir jāeskeipo rezervētie simboli. To var ērti izdarīt ar preg_quote vai arī paskaties kuri tie ir un sabaksti manuāli backslašus priekšā kur vajag.

 

Edit: piemirsu ka nosacījumiem ir jābūt arī ieliktiem iekš / /

Edited by 404

Share this post


Link to post
Share on other sites

Šajā gadījumā var iztikt bez regexsa.

 

if ($value === $os) # 100% match

if (strpos($value, $os) !== false) # Any position match

if (strtolower($value) === strtolower($os)) # Case-insensitive match

if (strpos(strtolower($value), strtolower($os)) !== false) # Case-insensitive + any position match

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
Sign in to follow this  

×
×
  • Create New...