Script, hogy meghatározza a felhasználó böngészőjének php

Nemrégiben egy érdekes projekt volt szükségem, hogy meghatározzuk a böngésző és verzió PHP. A sablon már adaptív (responcive), és szükség volt rá, hogy állítsa meg a különböző böngészők megkötéséről oldalelemek. Az oldalon írtam a kedvenc motor és a WordPress téma lett szedése alatt is. Mint mindig, gondolkodás nélkül kétszer másztam át a feladatot, hogy az interneten. Meglepetésemre, amikor találtam egy kész forgatókönyvet, amely teljes mértékben elfogadja a tíz kiállító google. Tisztelet és uvazhuha fejlesztő és blogger, aki írta a forgatókönyvet, és írt blogjában.

Amit különösen tetszett nekem, ez a tény, hogy a script meg tudják határozni a böngészők a motor, a Gecko, nem csak a nagy böngészők (Firefox, Chrome, IE, Opera, Safari), és még azok is, amelyeket beépítettek a Trident kernel (Maxthon, Avant Browser , MyIE2), és még régebbi verziói Opera, álcázott IE. Ezen túlmenően, a script megtalálja és megjeleníti a verzió a böngésző.

Hogy van a böngésző a PHP?
A PHP egy jó nevű változó $ _SERVER [ 'HTTP_USER_AGENT'].
Én például úgy néz ki, mint ez:

Most IE 6
Mozilla / 4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)
Itt van egy kicsit bonyolultabb, de nem okoz nehézséget.

Opera 10.61
Opera / 9.80 (Windows NT 5.1; U; ru) Presto / 2.6.30 változat / 10,61
Opera készített nekünk podlyanku: a böngésző nevét az elején, és a változat, ez nem furcsa, a végén.

Safari 5.1
Mozilla / 5.0 (Windows; U; Windows NT 6.1; ru-RU) AppleWebKit / 533.17.8 (KHTML, például Gecko) változat / 5.0.1 Safari / 533.17.8
Safari is meglepő: egy perjel megy nem a verziószám. A verziószám egy kicsit korábban.

Chrome 6.0.427.0
Mozilla / 5.0 (Windows; U; Windows NT 5.1; en-US) AppleWebKit / 534,1 (KHTML, például Gecko) Chrome / 6.0.427.0 Safari / 534,1
Króm húzni könnyebb, jó lett volna, hogy ne tévesszük össze a Safari ...

(Miért minden böngészőben (kivéve Opera) nevezték magukat, Mozilla lehet egy egyszerű és szórakoztató formában itt található.)

Már megtanult néhány fajta User-agent sort kínál csak öt böngészők.
De 10-ből 9 esetben azt fogja megmenteni a következő reguláris kifejezés:

Egy reguláris kifejezés határozza meg a böngésző

függvény user_browser ($ szer)

preg_match ( „/ (MSIE | Opera | Firefox | Chrome | Version | Opera Mini | Netscape | Konqueror | SeaMonkey | Camino | aknamező | Iceweasel | K-Meleon | Maxthon) (:? \ / |) ([0-9.] +) / „$ ügynök $ browser_info) ..; // szabályos kifejezés, amely lehetővé teszi otpredelit 90% -a böngészők

lista (.. $ böngésző $ változat) = $ browser_info; // kap az adatokat a tömb változó

if (preg_match ( "/ Opera ([0-9.] +) / i". $ ügynök. $ opera)) return 'Opera'. $ Opera [1]; // definíció _ochen_staryh_ változat Opera (legfeljebb 8,50) el lehet távolítani, ha szükséges

if ($ böngésző == 'MSIE)

preg_match ( "/ (Maxthon | Avant Browser | MyIE2) / i" $ ügynök $ ie ..); // ellenőrizzük, hogy ez alapján a fejlesztési IE

if ($ ie) return $ azaz [1]. "Ennek alapján az IE. $ Verzió; // ha igen, vissza erre az üzenetre

visszatérés 'IE'. $ Verzió; // mást csak vissza IE és verziószáma

if ($ böngésző == 'Firefox)

preg_match ( "/(Flock|Navigator|Epiphany)\/([0-9.]+)/" $ ügynök $ ff ..); // ellenőrizzük, hogy ez alapján a fejlesztési Firefox

if ($ ff) visszatérési $ ff [1]. ''. $ Ff [2]; // ha igen, PIN-kód és verzió

if ($ böngésző == 'Opera' $ Verzió == '9.80') return 'Opera'. substr ($ szer - 5). // ha a böngésző úgy definiáljuk, mint a Opera 9.80, hogy a változat az Opera a sor végére

if ($ böngésző == 'verzió') visszatérési 'Safari'. $ Verzió; // határozza Safari

if (. $ böngésző strpos ($ ügynök Gecko '.)) return 'Böngésző alapú Gecko'; // jelenített böngészők ellenőrizni, ha a Gecko, és visszaadja ezt az üzenetet

return $ böngészőt. ''. $ Verzió; // vissza az összes többi böngésző és verzió

példák
A táblázat az eredmény a két funkció - az első oszlopban a böngésző, amely felhívja a függvény a második - válasz funkció kevéssé ismert böngészők, a harmadik - az eredmény a sűrített funkciót.

Az eredmény egy teljes funkció

Kapcsolódó cikkek