Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.
Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin. Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

PHP da clientning devicelarini ma'lumotlarini olish

+6 ovoz
199 marta ko‘rilgan
so‘radi 05 iyul, 17 Sardor Dushamov (1,683 bal)
Savol:

PHP da API yozilgan, zapros mobile qurilmalardan va windows qurilmalaridan keladi. Shu zaproslar orqali clientning qanday qurilma, OS sistemasi, versiyalari haqida ma'lumot qanday olsam bo'ladi.

Menga kerakli bo'lgan ma'lumotlar;

-qaysi OS dan zapros kelyapti (android , ios windows)

-versiyasi(misol; android 4.4.4, ios 9.1.2 ...)

2 Javoblar

+2 ovoz
javob berdi 05 iyul, 17 Saidolim (3,566 bal)
tanlangan 05 iyul, 17 Sardor Dushamov
 
Eng yaxshi javob

shuni ishlatib ko`ring, yordam berishi kerak.

<?php

$user_agent     =   $_SERVER['HTTP_USER_AGENT'];

function getOS() { 

    global $user_agent;

    $os_platform    =   "Unknown OS Platform";

    $os_array       =   array(
                            '/windows nt 6.2/i'     =>  'Windows 8',
                            '/windows nt 6.1/i'     =>  'Windows 7',
                            '/windows nt 6.0/i'     =>  'Windows Vista',
                            '/windows nt 5.2/i'     =>  'Windows Server 2003/XP x64',
                            '/windows nt 5.1/i'     =>  'Windows XP',
                            '/windows xp/i'         =>  'Windows XP',
                            '/windows nt 5.0/i'     =>  'Windows 2000',
                            '/windows me/i'         =>  'Windows ME',
                            '/win98/i'              =>  'Windows 98',
                            '/win95/i'              =>  'Windows 95',
                            '/win16/i'              =>  'Windows 3.11',
                            '/macintosh|mac os x/i' =>  'Mac OS X',
                            '/mac_powerpc/i'        =>  'Mac OS 9',
                            '/linux/i'              =>  'Linux',
                            '/ubuntu/i'             =>  'Ubuntu',
                            '/iphone/i'             =>  'iPhone',
                            '/ipod/i'               =>  'iPod',
                            '/ipad/i'               =>  'iPad',
                            '/android/i'            =>  'Android',
                            '/blackberry/i'         =>  'BlackBerry',
                            '/webos/i'              =>  'Mobile'
                        );

    foreach ($os_array as $regex => $value) { 

        if (preg_match($regex, $user_agent)) {
            $os_platform    =   $value;
        }

    }   

    return $os_platform;

}

function getBrowser() {

    global $user_agent;

    $browser        =   "Unknown Browser";

    $browser_array  =   array(
                            '/msie/i'       =>  'Internet Explorer',
                            '/firefox/i'    =>  'Firefox',
                            '/safari/i'     =>  'Safari',
                            '/chrome/i'     =>  'Chrome',
                            '/opera/i'      =>  'Opera',
                            '/netscape/i'   =>  'Netscape',
                            '/maxthon/i'    =>  'Maxthon',
                            '/konqueror/i'  =>  'Konqueror',
                            '/mobile/i'     =>  'Handheld Browser'
                        );

    foreach ($browser_array as $regex => $value) { 

        if (preg_match($regex, $user_agent)) {
            $browser    =   $value;
        }

    }

    return $browser;

}


$user_os        =   getOS();
$user_browser   =   getBrowser();

$device_details =   "<strong>Browser: </strong>".$user_browser."<br /><strong>Operating System: </strong>".$user_os."";

print_r($device_details);

echo("<br /><br /><br />".$_SERVER['HTTP_USER_AGENT']."");

?>
izoh qoldirdi 05 iyul, 17 Sardor Dushamov (1,683 bal)
buni ishlatdim, os ni nomini qaytaryapti, lekin ios yoki androiddan kelayotgan bo'lsa versiyalarini ham olsam degandim
izoh qoldirdi 05 iyul, 17 Sardor Dushamov (1,683 bal)
menimcha versiyasini olish uchun regex qilganim ma'qul shekilli
izoh qoldirdi 05 iyul, 17 Saidolim (3,566 bal)
android ni versiyasi uchun ham regex kerak, ham foydalanuvchi boshqa browserdan kirmagan bo`lish kerak. manimcha. chunki boshqadan kirsa, sizga xato ma'lumot berishi mumkin. + turbo rejumni ishlatsa, unda ham proxy ni ma'lumotlari kelishi mumkin.
izoh qoldirdi 06 iyul, 17 ☆☆tik⊙⊙tak☆☆ (353 bal)
manam pashti shunaqa kod ishlataman lekin manda OS ni versiyalainiyam chqazvoti
izoh qoldirdi 07 iyul, 17 Sardor Dushamov (1,683 bal)
qanday qilib faqat versiyasini ajratib oldingiz? umumiy regex bormi?
+2 ovoz
javob berdi 07 iyul, 17 Baron (862 bal)
UA-Parserdan foydalansa ham bo'ladi (C++, C#, D, Go, Haskell, Java, Perl, PHP, Pig, Python, R, Ruby dasturlash tillari uchun): http://www.uaparser.org/
PHP uchun: https://github.com/ua-parser/uap-php
Demo: http://uaparser.dmolsen.com/

Assalomu alaykum, yordam.uz saytimizga xush kelibsiz.

Bu saytda o`zingizni qiziqtirgan savollarga javob olishingiz va o`z sohangiz bo`yicha savollarga javob berishingiz mumkin.

Bizning Oilamizga a'zo bo`lganingiz uchun chuqur Minnatdorchilik bildiramiz !!!

Telegram kanal YordamUzRss

...