PHP程序员学习笔记|如何学习PHP

个人总结的PHP学习方法


php获得客户端浏览器的名称及版本

2017-6-28 0phpcom 经典文章


看到ecshop中有这么一个函数get_user_browser(),获取浏览器的名称和版本。虽然获取的信息只是简单的一些信息,但是还是很实用。其原理主要是通过$_SERVER['HTTP_USER_AGENT']获得浏览器信息,再用正则进行比对得出浏览器的信息。


以下是各浏览器运行的效果:


php获得客户端浏览器的名称及版本


php获得客户端浏览器的名称及版本


php获得客户端浏览器的名称及版本


源码如下:


<?php

function get_user_browser()

{

if (empty($_SERVER['HTTP_USER_AGENT']))

{

return '';

}

$agent       = $_SERVER['HTTP_USER_AGENT'];

$browser     = '';

$browser_ver = '';

if (preg_match('/MSIE\s([^\s|;]+)/i', $agent, $regs))

{

$browser     = 'Internet Explorer';

$browser_ver = $regs[1];

}

elseif (preg_match('/FireFox\/([^\s]+)/i', $agent, $regs))

{

$browser     = 'FireFox';

$browser_ver = $regs[1];

}

elseif (preg_match('/Maxthon/i', $agent, $regs))

{

$browser     = '(Internet Explorer ' .$browser_ver. ') Maxthon';

$browser_ver = '';

}

elseif (preg_match('/Opera[\s|\/]([^\s]+)/i', $agent, $regs))

{

$browser     = 'Opera';

$browser_ver = $regs[1];

}

elseif (preg_match('/OmniWeb\/(v*)([^\s|;]+)/i', $agent, $regs))

{

$browser     = 'OmniWeb';

$browser_ver = $regs[2];

}

elseif (preg_match('/Netscape([\d]*)\/([^\s]+)/i', $agent, $regs))

{

$browser     = 'Netscape';

$browser_ver = $regs[2];

}

elseif (preg_match('/safari\/([^\s]+)/i', $agent, $regs))

{

$browser     = 'Safari';

$browser_ver = $regs[1];

}

elseif (preg_match('/NetCaptor\s([^\s|;]+)/i', $agent, $regs))

{

$browser     = '(Internet Explorer ' .$browser_ver. ') NetCaptor';

$browser_ver = $regs[1];

}

elseif (preg_match('/Lynx\/([^\s]+)/i', $agent, $regs))

{

$browser     = 'Lynx';

$browser_ver = $regs[1];

}

if (!empty($browser))

{

return addslashes($browser . ' ' . $browser_ver);

}

else

{

return 'Unknow browser';

}

}


echo get_user_browser();


?>

« 百度编辑器ueditor给上传的图片添加水印 | php无极限分类栏目»
发表评论:









订阅Rss