Pattern matching...

Perl & Ruby

2 svar · 388 visningar · startad av Muzzafarath

Medlem sedan apr. 20002 487 inlägg
Trådstart#1

Okej, så här är det. I $ENV{'HTTP_USER_AGENT'} ligger ju vilken browser som surfaren använder. Med den följer en massa information som jag inte behöver (versions-nummer, OS, osv). Det jag vill göra det är att göra ett Perl script som känner igen vilken browser som används.

För att göra detta behöver jag något sätt att leta upp t.ex "Mozilla" eller "MSIE" i $ENV{'HTTP_USER_AGENT'}. Problemet är att jag inte vet hur man använder pattern matching i if-satser. Nån som fattar vad jag babblar om ;)?

if($ENV{'HTTP_USER_AGENT'} innehåller "Mozilla")
{
$browser = "Netscape";
}

elsif($ENV{'HTTP_USER_AGENT'} innehåller "MSIE")
{
$browser = "Internet Explorer";
}

elsif($ENV{'HTTP_USER_AGENT'} innehåller "Opera")
{
$browser = "Opera";
}

/. Muzzafarath

[Redigerat av Muzzafarath den 19 jun 2000]

Medlem sedan juni 20004 308 inlägg
#2
if($ENV{'HTTP_USER_AGENT'} =~ /mozilla/i)

i för case-Insensitive. Egentligen är det uttrycket m// som används, men eftersom det är så vanligt accepterar perl även //.

Medlem sedan apr. 20002 487 inlägg
#3

Tack så mycket Jojoxx.

/. Muzzafarath

693 ms totalt · 4 externa anrop · v20260731065814-full.d34c6d5a
194 ms — deklarationer (db)
147 ms — hämta statistik (db)
349 ms — hämta tråd, inlägg och bilagor (db)
125 ms — ändringar (db)