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

php获取客户浏览器与操作系统类型

<?phpfunctionbrowse_infor(){$browser="";$browserver="";$browsers=array("lynx","mosaic","aol","opera&
  1. function browse_infor()  
  2. {  
  3. $browser="";$browserver=""
  4.  
  5. // 
  6.  
  7. $browsers =array("lynx","mosaic","aol","opera","java","macweb","webexplorer","omniweb");  
  8. $agent = $globals["http_user_agent"];  
  9. for ($i=0; $i<=7; $i++) //phpfensi.com 
  10. {  
  11. if (strpos($agent,$browsers[$i]))  
  12. {  
  13. $browser = $browsers[$i];  
  14. $browserver ="";  
  15. }  
  16. }  
  17. if (ereg("mozilla",$agent) && !ereg("msie",$agent)) //phpfensi.com 
  18. {  
  19. $temp =explode("("$agent); $part=$temp[0];  
  20. $temp =explode("/"$part); $browserver=$temp[1]; 
  21.  
  22. //开源 
  23.  
  24. $temp =explode(" ",$browserver); $browserver=$temp[0];  
  25. $browserver =preg_replace("/([d.]+)/","1",$browserver);  
  26. $browserver = " $browserver"//  
  27. $browser = "netscape navigator";  
  28. }  
  29. if (ereg("mozilla",$agent) && ereg("opera",$agent))  
  30. {  
  31. $temp =explode("("$agent); $part=$temp[1]; 
  32.  
  33. //phpfensi.com
  34.  
  35. $temp =explode(")"$part); $browserver=$temp[1];  
  36. $temp =explode(" ",$browserver);$browserver=$temp[2]; 
  37.  
  38. //phpfensi.com
  39.  
  40. $browserver =preg_replace("/([d.]+)/","1",$browserver);  
  41. $browserver = " $browserver";  
  42. $browser = "opera";  
  43. }  
  44. if (ereg("mozilla",$agent) && ereg("msie",$agent)) 
  45.  
  46. //phpfensi.com 
  47.  
  48. {  
  49. $temp = explode("("$agent); $part=$temp[1];  
  50. $temp = explode(";",$part); $part=$temp[1]; //  
  51. $temp = explode(" ",$part);$browserver=$temp[2];  
  52. $browserver =preg_replace("/([d.]+)/","1",$browserver);  
  53. $browserver = " $browserver"//  
  54. $browser = "internet explorer";  
  55. }  
  56. if ($browser!="")  
  57. {  
  58. $browseinfo = "$browser$browserver";  
  59. }  
  60. else  
  61. {  
  62. $browseinfo = "unknown";  
  63. }  
  64. return $browseinfo;  
  65. }  
  66. //调用方法$browser=browseinfo() ;直接返回结果  
  67. ?> 
  68.  
  69. ==== 
  70.  
  71.  
  72. 获取访问者操作系统  
  73. function osinfo() {  
  74. $os="";  
  75. $agent = $globals["http_user_agent"];  
  76. if (eregi(&#39;win&#39;,$agent) && strpos($agent&#39;95&#39;)) { //  
  77. $os="windows 95";  
  78. }  
  79. elseif (eregi(&#39;win 9x&#39;,$agent) && strpos($agent&#39;4.90&#39;)) {  
  80. $os="windows me";  
  81. }  
  82. elseif (eregi(&#39;win&#39;,$agent) && ereg(&#39;98&#39;,$agent)) { 
  83.  
  84. //开源 
  85.  
  86. $os="windows 98";  
  87. }  
  88. elseif (eregi(&#39;win&#39;,$agent) && eregi(&#39;nt 5.0&#39;,$agent)) {  
  89. $os="windows 2000";  
  90. }  
  91. elseif (eregi(&#39;win&#39;,$agent) && eregi(&#39;nt&#39;,$agent)) { 
  92.  
  93. //开源 
  94.  
  95. $os="windows nt";  
  96. }  
  97. elseif (eregi(&#39;win&#39;,$agent) && eregi(&#39;nt 5.1&#39;,$agent)) {  
  98. $os="windows xp";  
  99. }  
  100. elseif (eregi(&#39;win&#39;,$agent) && ereg(&#39;32&#39;,$agent)) { 
  101.  
  102. //开源 
  103.  
  104. $os="windows 32";  
  105. }  
  106. elseif (eregi(&#39;linux&#39;,$agent)) {  
  107. $os="linux";  
  108. }  
  109. elseif (eregi(&#39;unix&#39;,$agent)) {  
  110. $os="unix"//php一聚教程  
  111. }  
  112. elseif (eregi(&#39;sun&#39;,$agent) && eregi(&#39;os&#39;,$agent)) {  
  113. $os="sunos";  
  114. }  
  115. elseif (eregi(&#39;ibm&#39;,$agent) && eregi(&#39;os&#39;,$agent)) { //  
  116. $os="ibm os/2";  
  117. }  
  118. elseif (eregi(&#39;mac&#39;,$agent) && eregi(&#39;pc&#39;,$agent)) {  
  119. $os="macintosh";  
  120. }  
  121. elseif (eregi(&#39;powerpc&#39;,$agent)) { //  
  122. $os="powerpc";  
  123. }  
  124. elseif (eregi(&#39;aix&#39;,$agent)) {  
  125. $os="aix";  
  126. }  
  127. elseif (eregi(&#39;hpux&#39;,$agent)) {  
  128. $os="hpux"
  129.  
  130. //phpfensi.com 
  131.  
  132. }  
  133. elseif (eregi(&#39;netbsd&#39;,$agent)) {  
  134. $os="netbsd";  
  135. }  
  136. elseif (eregi(&#39;bsd&#39;,$agent)) {  
  137. $os="bsd";  
  138. }  
  139. elseif (ereg(&#39;osf1&#39;,$agent)) { 
  140.  
  141. //phpfensi.com 
  142.  
  143. $os="osf1";  
  144. }  
  145. elseif (ereg(&#39;irix&#39;,$agent)) {  
  146. $os="irix";  
  147. }  
  148. elseif (eregi(&#39;freebsd&#39;,$agent)) {  
  149. $os="freebsd"
  150.  
  151. // 
  152.  
  153. }  
  154. if ($os==&#39;&#39;$os = "unknown";  
  155. return $os;  
  156. }  
  157. //调用方法$os=os_infor() ;  
  158. ?> 

推荐阅读
  • 在使用 `dirname(__FILE__)` 时,是否需要将反斜杠转换为斜杠是一个常见的问题。本文探讨了这一问题,并提供了解决方案。通过使用 `str_replace` 函数,可以确保路径在不同操作系统中的一致性。此外,我们还介绍了其他一些最佳实践,以帮助开发者避免因路径分隔符不一致而引发的问题。 ... [详细]
  • PHP与MySQL的Web应用开发技术深入解析
    PHP与MySQL的Web应用开发技术深入解析 ... [详细]
  • 源代码是构建网站的基础,涵盖了网站程序的所有代码、文件和目录结构。掌握源代码意味着完全控制网站的所有权。在传统自助建站平台中,由于采用SAAS模式,源代码通常不对外开放,用户实际上每年支付的费用仅是为了使用这些平台提供的服务,而无法获得真正的代码所有权。相比之下,米拓源代码提供了全面的技术细节和实现方法,使开发者能够深入了解并自主定制网站功能,确保了更高的灵活性和安全性。 ... [详细]
  • 如何在Edge浏览器中实现无痕浏览以避免留下访问记录
    在使用Edge浏览器时,许多用户希望在浏览网页时避免留下访问记录。为了满足这一需求,Edge浏览器提供了无痕浏览模式。通过启用该模式,用户可以确保浏览历史、表单数据和临时互联网文件不会被保存。本文将详细介绍如何在Edge浏览器中开启并使用无痕浏览模式,帮助用户更好地保护隐私。 ... [详细]
  • 捕获并处理用户输入数字时的异常,提供详细的错误提示与指导
    在用户输入数字时,程序能够有效捕获并处理各种异常情况,如非法字符或格式错误,并提供详尽的错误提示和操作指导,确保用户能够准确输入有效的数字数据。通过这种方式,不仅提高了程序的健壮性和用户体验,还减少了因输入错误导致的系统故障。具体实现中,使用了Java的异常处理机制,结合Scanner类进行输入读取和验证,确保了输入的合法性和准确性。 ... [详细]
  • Python 实战:异步爬虫(协程技术)与分布式爬虫(多进程应用)深入解析
    本文将深入探讨 Python 异步爬虫和分布式爬虫的技术细节,重点介绍协程技术和多进程应用在爬虫开发中的实际应用。通过对比多进程和协程的工作原理,帮助读者理解两者在性能和资源利用上的差异,从而在实际项目中做出更合适的选择。文章还将结合具体案例,展示如何高效地实现异步和分布式爬虫,以提升数据抓取的效率和稳定性。 ... [详细]
  • EF 查询性能低下,如何优化执行效率?
    在处理 Entity Framework (EF) 查询性能问题时,发现全表查询时间反而更短。这可能是因为 EF 具有内置缓存机制。首次执行 `GetAll` 方法时,数据被缓存,因此后续相同查询的执行速度会显著提升。为了准确评估查询性能,建议在测试时清空缓存或调换查询顺序,以避免缓存对结果的影响。此外,可以通过启用查询跟踪和分析工具来进一步优化查询性能。 ... [详细]
  • 如何在TT语音中启动游戏:详细操作指南与步骤解析
    许多用户都在使用TT语音进行交流,但可能并不清楚如何在该平台上启动游戏。本文将详细介绍在TT语音中开始游戏的具体步骤。首先,在安卓设备上打开TT语音应用,进入主界面后点击“开黑”选项,然后在大厅中选择一个合适的房间。 ... [详细]
  • 本文详细介绍了 PHP 中 `sprintf` 函数的使用方法,并通过具体示例进行说明。例如,使用 `%%` 作为参数时,`%%` 会被替换为 `%`。通过 `echo sprintf($str)` 可以验证这一行为,返回的结果是“测试一下 % 这个参数,会被替换成什么”。此外,文章还探讨了 `sprintf` 函数在格式化字符串中的多种应用场景,包括数字格式化、日期时间处理等,帮助读者全面掌握该函数的使用技巧。 ... [详细]
  • 理解和应用HTTP请求中的转发与重定向机制
    在HTTP请求处理过程中,客户端发送请求(通常简称为req),服务器进行相应处理后返回响应(通常简称为res)。理解和应用客户端的转发与重定向机制是前端开发的重要内容。这两种机制在Web开发中具有关键作用,能够有效管理和优化用户请求的处理流程。转发机制允许服务器内部将请求传递给另一个资源,而重定向则指示客户端向新的URL发起新的请求,从而实现页面跳转或资源更新。掌握这些技术有助于提升应用的性能和用户体验。 ... [详细]
  • 本文详细探讨了Laravel框架中路由和控制器的操作实例,旨在为开发者提供深入的理解和实用的参考。通过具体的示例,读者可以更好地掌握如何在Laravel中配置和使用路由及控制器。此外,文章还提供了丰富的PHP编程技巧和最佳实践,帮助读者提升开发效率和代码质量。 ... [详细]
  • PHP编程中的命名规则与最佳实践 ... [详细]
  • VC维在机器学习中的应用与解析
    VC维在机器学习中的应用与解析VC维是指在机器学习中,一个假设空间能够正确分类的最大样本数量。具体而言,如果一个假设空间能够将N个样本以所有可能的 \(2^N\) 种方式完全分开,则称该假设空间具有N的VC维。VC维是衡量模型复杂度的重要指标,对于理解模型的泛化能力和过拟合风险具有重要意义。本文详细探讨了VC维的定义、计算方法及其在机器学习中的应用,并通过实例分析展示了其在模型选择和评估中的关键作用。 ... [详细]
  • PHP中函数名、常量名和变量名大小写转换及规范详解
    在PHP编程中,初学者常常会遇到关于函数名、常量名和变量名大小写的问题。本文详细解析了PHP中这些名称的大小写敏感性及其命名规范,帮助开发者更好地理解和使用PHP。具体而言,文章探讨了PHP中的常量名是否区分大小写,自定义函数名的大小写敏感性,以及类名的大小写规则。此外,还提供了实用的代码示例和最佳实践,以确保代码的可读性和一致性。 ... [详细]
  • C++入门必备:首个博客知识点汇总
    本文总结了C++初学者需要掌握的关键知识点,特别强调了成员类型的区分。其中,protected成员与private成员在本类中的作用相同,但protected成员允许派生类的成员函数访问,而private成员则不允许。此外,文章还介绍了其他重要的C++基础概念,如类的构造函数、析构函数以及继承机制,为初学者提供了一个全面的学习指南。 ... [详细]
author-avatar
记录生活点滴1988_234
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有