首页 文章 精选 留言 我的

精选列表

搜索[php],共8829篇文章
优秀的个人博客,低调大师

PHP获取浏览器型号,判断安卓还是IOS访问

很多时候,在很多项目中都是用单入口访问,但是因为现在用移动设备的用户非常多,所以在做项目的时候,就得考虑移动设备的用户体验度,如果是安卓,IOS设备,则提供不同的返回页面,包括不同的浏览器判断,所以,小研究了一下,发现了不同浏览器在$_SERVER['HTTP_USER_AGENT']会有不同的结果判断,根据这个,我们就可以判断用户是持有什么设备访问的。 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 function getBrowser(){ if ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'Maxthon' )) { $browser = 'Maxthon' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE 12.0' )) { $browser = 'IE12.0' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE 11.0' )) { $browser = 'IE11.0' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE 10.0' )) { $browser = 'IE10.0' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE 9.0' )) { $browser = 'IE9.0' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE 8.0' )) { $browser = 'IE8.0' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE 7.0' )) { $browser = 'IE7.0' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'MSIE 6.0' )) { $browser = 'IE6.0' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'NetCaptor' )) { $browser = 'NetCaptor' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'Netscape' )) { $browser = 'Netscape' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'Lynx' )) { $browser = 'Lynx' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'Opera' )) { $browser = 'Opera' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'Chrome' )) { $browser = 'Google' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'Firefox' )) { $browser = 'Firefox' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'Safari' )) { $browser = 'Safari' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'iphone' ) || strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'ipod' )) { $browser = 'iphone' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'ipad' )) { $browser = 'iphone' ; } elseif ( strpos ( $_SERVER [ 'HTTP_USER_AGENT' ], 'android' )) { $browser = 'android' ; } else { $browser = 'other' ; } return $browser ; } 之前有人加我QQ专门问过我这个问题,现在我公布出来,代码不一定要高深,但一定要经典。这段代码,可以无限扩展,而且至少可以开发出使用5-10年的项目了。好的代码都是简单的,实用的,易懂的。 本文转自 3147972 51CTO博客,原文链接:http://blog.51cto.com/a3147972/1334426,如需转载请自行联系原作者

优秀的个人博客,低调大师

《Android和PHP开发最佳实践》一2.5 Android上下文

2.5 Android上下文 大家对上下文(Context)的概念并不陌生,在软件开发领域,它主要用于存储进程或应用运行时的资源和对象的引用,此外,我们在接触其他系统和框架的时候也经常会碰到上下文的概念。当然,对于Android应用来说,上下文是非常重要的,这部分的内容在Android应用的实际开发中也会经常使用到,因此本节将会重点介绍Android上下文的相关知识,为后面实战编程打下一定的基础。在Android应用框架中,根据作用域的不同,可以把上下文分为两种,一种是Activity界面的上下文,即Activity Context;另一种是Android应用的上下文,即Application Context。下面我们分别介绍这两种上下文的概念和使用。 2.5.1 界面上下文(Activity Context) 界面上下文(Activi

优秀的个人博客,低调大师

《Android和PHP开发最佳实践》一2.8 Android图形界面

2.8 Android图形界面 前面介绍了Android应用界面(Android UI)的相关内容,不过对于一些游戏应用来说,这些UI控件往往派不上用场。此外,一些特殊的Android应用也有可能会使用到比较底层的图形类库,因此,本节我们就来学习Android的图形系统。Android系统中的图形大致可以分为2D图形和3D图形两类,2D图形的类库在android.graphics包下,本节将会重点介绍;3D图形的类库在android.opengl包下,由于这部分内容和游戏开发关系比较紧密,这部分内容将被放在本书第13章中介绍,感兴趣的朋友可以提前参考13.1.4节中的内容。 2.8.1 画笔(Paint) 首先,让我们来想象一下,当我们绘画的时候,最重要的两样东西是什么?答案应该没有什么悬念,那就是画笔和画布。实际上,在Android系

优秀的个人博客,低调大师

docker 中 NGINX+PHP+MYSQL+REDIS+Elasticsearch 环境搭建 (windows系统)

windows 下 boot2docker fox.风来了 1.boot2docker 先安装这个: Docker虽然是Linux内核,但是官方还是支持了Windows和OS X。Boot2Docker官方下载地址:https://github.com/boot2docker/windows-installer/releasesBoot2Docker官方安装手顺:http://docs.docker.com/installation/windows/ 启动方法 windows 桌面 打开Boot2Docker Start 这个快捷方式,出现的命令界面中执行 2.启动不成功 #先关闭 boot2docker stop #然后启动 boot2docker start 如果出现以下错误 Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/ca.pem Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/cert.pem Writing /Users/mylxsw/.boot2docker/certs/boot2docker-vm/key.pem export DOCKER_HOST=tcp://192.168.59.103:2376 export DOCKER_CERT_PATH=/Users/mylxsw/.boot2docker/certs/boot2docker-vm export DOCKER_TLS_VERIFY=1解决方法: 设置三个变量 可以手动 到WINDOWS里面设置也可以,用以下命令设置 eval "$(boot2docker shellinit)" #命令查看状态 bash-4.3$ boot2docker status running #命令查看版本 bash-4.3$ boot2docker version Boot2Docker-cli version: v1.8.0 Git commit: 9a26066 bash-4.3$ 3.进入docker boot2docker ssh 4.文件夹项目 windows boot2docker 默认共享 /c/当前用户名 例如(我的本地):/c/Users/lanmps/ 如果在一个分区可以使用 mklink /H "C:\Users\lanmps\git" "C:\git" MKLINK [[/D] | [/H] | [/J]] Link Target /D 创建目录符号链接。默认为文件 符号链接。 /H 创建硬链接,而不是符号链接。 /J 创建目录联接。 Link 指定新的符号链接名称。 Target 指定新链接引用的路径 (相对或绝对)。 5. 设置其他盘文件夹为 项目文件夹 5.1 先关闭boot2docker windows 桌面 打开Boot2Docker Start 这个快捷方式,出现的命令界面中执行 boot2docker stop 5.2 设置共享文件夹 在虚拟机管理界面中, boot2docker-vm 一定要是 关闭状态(图中是我已经设置好的所以是运行的) 设置的共享文件夹名称 c/Users 不能改变,如果改变了一定要改回来 5.3 boot2docker启动 boot2docker start启动成功后,如果有问题, 重复 2 3 两个步骤就可以了 #进入docker boot2docker ssh #进入共享目录 cd /c/Users #查看列表 ll 发现e:\git目录下的全都有了 6.注意 因为boot2docker使用的是 内存 linux,所以只要关机/重启 时候,没有把该 boot2docker-vm 设置为 休眠或者 快照,那么关机/重启 之后,虚拟机内所有数据全部都是不存在的。 x.镜像下载 和 linux 一样 http://blog.csdn.net/fenglailea/article/details/50100311

资源下载

更多资源
Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

优质分享App

优质分享App

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册