Client Detection (os+browser+device) v2

Door , 20 jaar geleden, 5.915x bekeken

Iedereen kan deze klasse gebruiken ik was er zelf naar op zoek. Na wat zoekwerk op het internet. Heb ik deze klasse in elkaar gezet. Hij is vrij eenvoudig te gebruiken je kan er een browser en os mee opvragen ;) (joh). Mocht iemand nog leuke ideeën hebben die in deze klasse kunnen hoor ik het graag. PS ik heb niet het wiel opnieuw uitgevonden ik heb er gewoon een klasse van gemaakt!

http://download.pascalwoerde.nl/client_detection.rar

Voorbeeld: http://www.watismijnbrowser.nl

Gesponsorde koppelingen

PHP script bestanden

  1. client-detection-osbrowserdevice-v2

 

Er zijn 24 reacties op 'Client detection osbrowserdevice v2'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Aaa Trump
aaa Trump
20 jaar geleden
 
0 +1 -0 -1
Phoe wat een moeite?


20 jaar geleden
 
0 +1 -0 -1
Het kan volgens mij simpeler met get-browser omdat die al een array uitpoept.
Jeffrey H
Jeffrey H
20 jaar geleden
 
0 +1 -0 -1
Aan de ene kant is dit handeger, omdat get_browser() afhangd van een extra file(browsecap.ini), maar aan de andere kant niet, omdat de user-agent kan worden veranderd door de user...

Maar voor de rest wel goed :P

Edit:
En het is ook nog eens heeeel langzaam(get_browser)...
Elwin - Fratsloos
Elwin - Fratsloos
20 jaar geleden
 
0 +1 -0 -1
En een voorbeeld voor de klikkers.

Bij mij wordt trouwens het OS niet herkend, ondanks dat deze in het lijstje staat.
Jens V
Jens V
20 jaar geleden
 
0 +1 -0 -1
Vind het een mooi scriptje, wat handig kan zijn voor de mensen die er achter zoeken. Doe ik voor het moment niet, maar ja:)

Btw, @Robin, wat is dat voor een reactie, jong? 't Is niet dat zo een reactie iets toevoegt eh...


20 jaar geleden
 
0 +1 -0 -1
@Elwin, welk os heb je dan? Bij mij ziet ie keurig winxp.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
   case strpos($sAgent,'Gecko') :
            switch(true)
            {
            case
preg_match('/Firefox\/([0-9]{1}\.[0-9]{1}(\.[0-9])?)/',$sAgent,$aVersion) :
            $sBrowser = 'Mozilla Firefox '.$aVersion[1];
            break;
// <snip>
            default :
            $sBrowser = 'Onbekend';    
            }

?>

Naar mijn id zou je daar eigenlijk Gecko van moeten maken, omdat je weet dat het een Gecko gebaseerde browser is, dus eigenlijk weet je wel iets over die browser.
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
er staat safari 523.1 dit zou je moeten vervangen naar 3
Elwin - Fratsloos
Elwin - Fratsloos
20 jaar geleden
 
0 +1 -0 -1
Ik heb Vista en dan staat er Onbekend.

Mijn UA-string:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
    Mozilla/5.0 (Windows; U; Windows NT 6.0; nl; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11


Op mijn werkt werkt het trouwens wel... Maar goed, dat is XP.


20 jaar geleden
 
0 +1 -0 -1
@Jeej dat vind ik ook wel een goeie Gecko based browser ipv onbekend.

@Hipska in safari versies ben ik niet helemaal thuis maar ga er van uit dat er wel meer versies zijn die vervangen zouden moeten worden, ik heb al wat op internet gezocht alleen het is lastig om deze vervangingen te vinden. Heb jij misschien een lijstje of een hind waar ik deze zou kunnen vinden?

@Elwin Bedankt Elwin ik ga er vanmiddag weer even aan werken mocht ik een betere versie hebben pas ik hem natuurlijk aan.
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
http://developer.apple.com/internet/safari/uamatrix.html

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
<?php

if($safari){
    switch(true){
        case
$build > 500: $version = '3.0'; break;
        case
$build > 400: $version = '2.0'; break;
        case
$build > 300: $version = '1.3'; break;
        case
$build > 101: $version = '1.2'; break;
        case
$build >  99: $version = '1.1'; break;
        default:
$version = ''; break; // dit is versie 1.0 of als het build nummer niet gevonden kon worden
    }
}

?>


hopelijk kan je hier wat mee en verwerk je het in je script
Edit:
Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; nl; rv:1.8.1.9) Gecko/20071025 Camino/1.5.3 (MultiLang)
Dit is Camino 1.5.3 ik krijg onbekend...


20 jaar geleden
 
0 +1 -0 -1
@Hipska bedankt, ga het er zeker in verwerken
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
trouwens, bij mijn versie van safari staat de versie er gewoon bij hoor!

Mozilla/5.0 (Macintosh; U; PPC Mac OS X; nl-nl) AppleWebKit/523.12.2 (KHTML, like Gecko) Version/3.0.4 Safari/523.12.2


20 jaar geleden
 
0 +1 -0 -1
nieuwe versie :) 90% van de browsers en OS heb ik ook zelf getest het is voor mij helaas niet mogelijk om alle browsers te testen. Mocht iemand nog wat tegen komen wat niet werkt graag UA mee posten en wat er niet werkt. Extra ideeen zijn ook altijd welkom.
Elwin - Fratsloos
Elwin - Fratsloos
20 jaar geleden
 
0 +1 -0 -1
Ik heb de nieuwe code op het voorbeeld geplaatst.

Overigens werkt die hier nu wel in Firefox / Vista.
Hipska BE
Hipska BE
20 jaar geleden
 
0 +1 -0 -1
@pascal/elwin: je kan om het melden van fouten te vergemakkelijken bij het voorbeeld ook even de browserstring erbij vermelden.. (Camino toont nog steeds niet zijn eigen naam..)

@pascal: bij safari kan je best die version uit de browserstring halen, zie mijn vorige post...
Troeper die Troep
Troeper die Troep
20 jaar geleden
 
0 +1 -0 -1
Erg mooi scriptje, kleine aanmerking nog:
Ik heb Windows XP 64bit... Deze is in de HTTP_USER_AGENT ook gewoon: Windows; U; Windows NT 5.2; en-GB; rv:1.8.1.11

Wat als resultaat geeft dat ik word gekenmerkt als Windows Server 2003 hebbende.
Jan geen
Jan geen
20 jaar geleden
 
0 +1 -0 -1
Je zou die 2 functies ook static kunnen maken aangezien je toch geen gebruik maakt van instantie variabelen.
J A
J A
20 jaar geleden
 
0 +1 -0 -1
Dit werkt niet 100% iniedergeval .. Met opera zit er naast de adresbalk een knopje waarmee je kan laten zien dat het een andere browser is dan Opera. En als ik die bijv op firefox zet. Komt er hier ook FireFox te staan. Dus het werkt niet helemaal ;)
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Dat lijkt me vrij logisch dat dat gebeurt. Opera doet dan net alsof hij een firefox browser is en zal dus ook die gegevens in de http headers meesturen. Dit script leest die headers uit en denk dus dat het om een firefox browser gaat, precies zoals opera het wil doen laten geloven.

Het script werkt dus precies zoals je verwacht dat het zou werken...
Ericbruggema x
ericbruggema x
20 jaar geleden
 
0 +1 -0 -1
Correct, je kunt inderdaad niet verwachten dat een script kan achter halen dat Firefox zich bv voordoet als Internet Explorer. Maar detecteerd hij de juiste browser zoals aangegeven dan werkt het naar behoren!

Ps mooi scriptje, ik ga hier zeker gebruik van maken!
Mark
mark
18 jaar geleden
 
0 +1 -0 -1
Waar is de database?
PHP Newbie
PHP Newbie
18 jaar geleden
 
0 +1 -0 -1
Je hebt voor dit script geen database nodig mark.


18 jaar geleden
 
0 +1 -0 -1
'Kleine' update doorgevoerd ;)

NB: deze versie is gewoon te vervangen voor de oude
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
RvW Of toch niet
RvW Of toch niet
18 jaar geleden
 
0 +1 -0 -1
super netjes gemaakt :)

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. client-detection-osbrowserdevice-v2

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.