热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php判断百度ua展示不同页面,PHP如何根据UA展示不同的前端模板

Nick_0017样式里可以用mediascreen这个判断设备屏幕宽度进行不同的样式自定义(import导入不同样式)。js或php里可以用$_SERVER[USER_AGENT

50993197de20be421efc629130bedf42.png

Nick_0017

样式里可以用@media screen这个判断设备屏幕宽度进行不同的样式自定义(@import导入不同样式)。js或php里可以用$_SERVER['USER_AGENT']获取浏览器USERAGENT,用正则匹配判断下面是百度出的一个根据UERAGENT来判断浏览器类型的函数:function my_get_browser(){

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

return '非浏览器访问。';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 9.0')){

return 'Internet Explorer 9.0';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 8.0')){

return 'Internet Explorer 8.0';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 7.0')){

return 'Internet Explorer 7.0';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'MSIE 6.0')){

return 'Internet Explorer 6.0';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Firefox')){

return 'Firefox';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Chrome')){

return 'Chrome';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Safari')){

return 'Safari';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'Opera')){

return 'Opera';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'360SE')){

return '360SE';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'iphone')){

return 'iphone';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'ipad')){

return 'ipad';

}

if(false!==strpos($_SERVER['HTTP_USER_AGENT'],'android')){

return 'android';

}

}

$useragent = my_get_browser();

//判断浏览器是否手机

if($useragent == 'iphone' || $useragent == 'ipad' || $useragent == 'android'){

//导入手机的样式和js文件

}else{

//导入电脑的样式和js文件

}下面是百度出的另一个判断是否移动设备的类:

/**

* Mobile Detect

* @license      http://www.opensource.org/licenses/mit-license.php The MIT License

*/

class Mobile_Detect

{

protected $accept;

protected $userAgent;

protected $isMobile = false;

protected $isAndroid = null;

protected $isAndroidtablet = null;

protected $isIphone = null;

protected $isIpad = null;

protected $isBlackberry = null;

protected $isBlackberrytablet = null;

protected $isOpera = null;

protected $isPalm = null;

protected $isWindows = null;

protected $isWindowsphone = null;

protected $isGeneric = null;

protected $devices = array(

"android" => "android.*mobile",

"androidtablet" => "android(?!.*mobile)",

"blackberry" => "blackberry",

"blackberrytablet" => "rim tablet os",

"iphone" => "(iphone|ipod)",

"ipad" => "(ipad)",

"operamobi" => "opera (mini|mobi)",

"palm" => "(avantgo|blazer|elaine|hiptop|palm|plucker|xiino)",

"windows" => "windows ce; (iemobile|ppc|smartphone)",

"windowsphone" => "windows phone os",

"generic" => "(kindle|mobile|mmp|midp|pocket|psp|symbian|smartphone|treo|up.browser|up.link|vodafone|wap|opera mini)"

);

public function __construct()

{

$this->userAgent = $_SERVER['HTTP_USER_AGENT'];

$this->accept = $_SERVER['HTTP_ACCEPT'];

if (isset($_SERVER['HTTP_X_WAP_PROFILE']) || isset($_SERVER['HTTP_PROFILE'])) {

$this->isMobile = true;

} elseif (strpos($this->accept, 'text/vnd.wap.wml') > 0 || strpos($this->accept, 'application/vnd.wap.xhtml+xml') > 0) {

$this->isMobile = true;

} else {

foreach ($this->devices as $device => $regexp) {

if ($this->isDevice($device)) {

$this->isMobile = true;

}

}

}

}

/**

* Overloads isAndroid() | isAndroidtablet() | isIphone() | isIpad() | isBlackberry() | isBlackberrytablet() | isPalm() | isWindowsphone() | isWindows() | isGeneric() through isDevice()

*

* @param string $name

* @param array $arguments

* @return   bool

*/

public function __call($name, $arguments)

{

$device = substr($name, 2);

if ($name == "is" . ucfirst($device) && array_key_exists(strtolower($device), $this->devices)) {

return $this->isDevice($device);

} else {

trigger_error("Method $name not defined", E_USER_WARNING);

}

}

/**

* Returns true if any type of mobile device detected, including special ones

* @return   bool

*/

public function isMobile()

{

return $this->isMobile;

}

protected function isDevice($device)

{

$var = "is" . ucfirst($device);

$return = $this->$var === null ? (bool) preg_match("/" . $this->devices[strtolower($device)] . "/i", $this->userAgent) : $this->$var;

if ($device != 'generic' && $return == true) {

$this->isGeneric = false;

}

return $return;

}

}

$mb = new Mobile_Detect();

if($mb->isMobile()){

//导入手机的样式和js文件

}else{

//导入电脑的样式和js文件

}



推荐阅读
  • 如何提高PHP编程技能及推荐高级教程
    本文介绍了如何提高PHP编程技能的方法,推荐了一些高级教程。学习任何一种编程语言都需要长期的坚持和不懈的努力,本文提醒读者要有足够的耐心和时间投入。通过实践操作学习,可以更好地理解和掌握PHP语言的特异性,特别是单引号和双引号的用法。同时,本文也指出了只走马观花看整体而不深入学习的学习方式无法真正掌握这门语言,建议读者要从整体来考虑局部,培养大局观。最后,本文提醒读者完成一个像模像样的网站需要付出更多的努力和实践。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了计算机网络的定义和通信流程,包括客户端编译文件、二进制转换、三层路由设备等。同时,还介绍了计算机网络中常用的关键词,如MAC地址和IP地址。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • Python瓦片图下载、合并、绘图、标记的代码示例
    本文提供了Python瓦片图下载、合并、绘图、标记的代码示例,包括下载代码、多线程下载、图像处理等功能。通过参考geoserver,使用PIL、cv2、numpy、gdal、osr等库实现了瓦片图的下载、合并、绘图和标记功能。代码示例详细介绍了各个功能的实现方法,供读者参考使用。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 使用正则表达式爬取36Kr网站首页新闻的操作步骤和代码示例
    本文介绍了使用正则表达式来爬取36Kr网站首页所有新闻的操作步骤和代码示例。通过访问网站、查找关键词、编写代码等步骤,可以获取到网站首页的新闻数据。代码示例使用Python编写,并使用正则表达式来提取所需的数据。详细的操作步骤和代码示例可以参考本文内容。 ... [详细]
  • HTML5网页模板怎么加百度统计?
    本文介绍了如何在HTML5网页模板中加入百度统计,并对模板文件、css样式表、js插件库等内容进行了说明。同时还解答了关于HTML5网页模板的使用方法、表单提交、域名和空间的问题,并介绍了如何使用Visual Studio 2010创建HTML5模板。此外,还提到了使用Jquery编写美好的HTML5前端框架模板的方法,以及制作企业HTML5网站模板和支持HTML5的CMS。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • ECMA262规定typeof操作符的返回值和instanceof的使用方法
    本文介绍了ECMA262规定的typeof操作符对不同类型的变量的返回值,以及instanceof操作符的使用方法。同时还提到了在不同浏览器中对正则表达式应用typeof操作符的返回值的差异。 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
  • 本文整理了315道Python基础题目及答案,帮助读者检验学习成果。文章介绍了学习Python的途径、Python与其他编程语言的对比、解释型和编译型编程语言的简述、Python解释器的种类和特点、位和字节的关系、以及至少5个PEP8规范。对于想要检验自己学习成果的读者,这些题目将是一个不错的选择。请注意,答案在视频中,本文不提供答案。 ... [详细]
  • 本文介绍了iOS开发中检测和解决内存泄漏的方法,包括静态分析、使用instruments检查内存泄漏以及代码测试等。同时还介绍了最能挣钱的行业,包括互联网行业、娱乐行业、教育行业、智能行业和老年服务行业,并提供了选行业的技巧。 ... [详细]
author-avatar
YANGYANG.
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有