PHP自动识别当前使用移动终端

虽然现在利用jquery可以准确地判断出当前使用的是那种客户端,但是有时候根据功能和需求,我们可能需要用php来判断当前程序运行的环境,jquery在这里就不说了,这里直接讲讲php是怎么实现的,希望对大家有所帮助。

我们首先来判断当前运行环境是pc(电脑端)还是sp(手机,ipad端)

class self_test { 

 const PC = 'pc'; 

 const SP = 'sp'; 

 private $_splist = array('iPhone','Android','iPod','iPad','Tizen');//设置经常使用的sp终端,暂时常用的sp端就这几种,如果有的话大家也可以增加 

 private $terminal; 

 public function __construct(){
  $this->setTerminal();//通过setTerminal()方法获取到$terminal变量的值
 } 

 /*
  * function setTerminal()
  * 获取终端信息
  * @return string
  */ 

 private function setTerminal(){
  $isSp = false;
  foreach($this->_splist as $spname){
   if (strstr($_SERVER['HTTP_USER_AGENT'], $spname)) {
    $isSp = true;
    break;
   }
  }
  return $this->terminal = ($isSp) ? self::SP : self::PC;
 } 

 /*
  * function PC_SP()
  * 输出终端信息
  * @return string
  */
 public function PC_SP(){
  return $this->terminal;
 }
} 

$str = new self_test();
echo $str->PC_SP();//输出目前客户使用的是PC还是SP

2.准确判断当前的运行环境并输出客户端环境

class self_test {
 const PC = 'pc';
 const SP = 'sp';
 private $_splist = array('iPhone','Android','iPod','iPad','Tizen');//设置经常使用的sp终端,暂时常用的sp端就这几种,如果有的话大家也可以增加
 private $environment;
 public function __construct(){
  $this->setEnvironment();//通过setEnvironment()方法获取到$terminal变量的值
 } 

 /*
  * function environment()
  * 输出终端信息
  * @return string
  */
 public function environment(){
  return $this->environment;
 } 

 /*
  * function setEnvironment()
  * 获取终端信息
  * @return string
  */
 private function setEnvironment(){
  $isSp = self::PC;//如果是PC端,就不需要判断是安卓还是apple了,所以只输出pc就可以
  foreach($this->_splist as $spname){
   if (strstr($_SERVER['HTTP_USER_AGENT'], $spname)) {
    $isSp = $spname;
    break;
   }
  }
  return $this->environment = $isSp;
 }
}
$str = new self_test();
echo $str->environment();//输出目前客户使用的终端

以上代码都是自己运行成功之后贴出来分享的内容,所以大家可以在自己的环境下调试。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • PHP让网站移动访问更加友好方法

    PHP都是在服务器上处理的,所以当代码到达用户时,它只是HTML. 基本上,用户从你的服务器请求你网站的一个页面,然后你的服务器运行所有的PHP并向用户发送PHP的结果. 设备实际上从未看到或必须使用实际的PHP代码.这使得使用PHP完成的网站比在用户端处理的其他语言(如Flash)具有优势. 将用户重定向到您的网站的移动版本已经变得很流行.这可以用htaccess文件来做,也可以用PHP来做.一种方法是使用strpos()查找某些设备的名称. 下面是一个例子: <?php $android =

  • 利用PHP判断是手机移动端还是PC端访问的函数示例

    前言 最近在开发项目的时候,分别开发了PC端和手机端,需要实现,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端网站,于是有了下面这个判断函数: 示例代码: /** * 移动端判断 */ function isMobile() { // 如果有HTTP_X_WAP_PROFILE则一定是移动设备 if (isset ($_SERVER['HTTP_X_WAP_PROFILE'])) { return true; } // 如果via信息含有

  • php函数实现判断是否移动端访问

    忘记在哪里获取的函数了,刚才不了心在一个包里面找到,临时保存起来 复制代码 代码如下: /**  * 是否移动端访问访问  *  * @return bool  */ function isMobile() {     // 如果有HTTP_X_WAP_PROFILE则一定是移动设备     if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))     {         return true;     }     // 如果via信息含有wap则一定是移动设

  • php实现复制移动文件的方法

    本文实例讲述了php实现复制移动文件的方法.分享给大家供大家参考.具体如下: 仿写elFinder的,抽出关键的成员方法做的一个简单示例 实现功能是: 实现多文件复制或移动操作 注:为了方便测试,对一些判断做了简单处理.并且会在程序文件所在目录下 新生成一个test文件夹作为目的文件夹.如果实际使用需要修改.       copy.php文件如下: <?php /** * 复制/移动操作简单示例 : >PHP5 * */ /** * 判断文件是否存在 * */ function _isFin

  • PHP自动识别当前使用移动终端

    虽然现在利用jquery可以准确地判断出当前使用的是那种客户端,但是有时候根据功能和需求,我们可能需要用php来判断当前程序运行的环境,jquery在这里就不说了,这里直接讲讲php是怎么实现的,希望对大家有所帮助. 我们首先来判断当前运行环境是pc(电脑端)还是sp(手机,ipad端) class self_test { const PC = 'pc'; const SP = 'sp'; private $_splist = array('iPhone','Android','iPod','i

  • php中文乱码怎么办如何让浏览器自动识别utf-8

    刚开始学习php的朋友可能经常遇到问题,就是调试的时候经常显示乱码 每次打开浏览器都要改下编码,很麻烦, 有没有方法让浏览器自动识别utf-8呢? 解决的方法很简单 就是在php里加一句header 例: header("Content-type: text/html; charset=utf-8"); echo '我是初学者'; 不错需要注意的一点是 header("Content-type: text/html; charset=utf-8"); 这一句前不能向

  • linux shell脚本学习录制与回放终端会话

    复制代码 代码如下: amosli@amosli-pc:~/learn$ script -t 2> timing.log -a output.session#开始录制Script started, file is output.sessionamosli@amosli-pc:~/learn$ hello1No command 'hello1' found, did you mean: Command 'hello' from package 'hello-debhelper' (main) Co

  • SQLite 入门教程一 基本控制台(终端)命令

    一.基本简介 SQLite 是一个自持的(self-contained).无服务器的.零配置的.事务型的关系型数据库引擎.因为他很小,所以也可以作为嵌入式数据库内建在你的应用程序中.SQLite 被应用在 Solaris 10操作系统.Mac OS 操作系统.iPhone 和 Skype 中.QT4 .Python . PHP 都默认支持 SQLite ,Firefox Amarok 等流行的应用程序在内部也使用了 SQLite. SQLite   数据库引擎实现了主要的 SQL-92 标准,引

  • 远程启动终端服务的windows脚本ROTS.vbs

    ******************************************************************************* ROTS v1.05 Remote Open Terminal services Script, by zzzEVAzzz Welcome to visite www.isgrey.com Usage: cscript c:\scriptpath\ROTS.vbs targetIP username password [port] [/r

  • 自动识别HTML的标记 替换连接

    复制代码 代码如下: <% Function SenFe_UbbCode(sContent)     Dim TempReg     Set TempReg = New RegExp     With TempReg         .IgnoreCase = True         .Global = True         '自动识别网址         If InStr(Lcase(sContent),"http://")>0 Then             .

  • Java 模拟银行自助终端系统

    一. 本系统模拟银行用户使用ATM机开户.查询.存款.取款功能,要求使用java语言编程实现. 说明: 1. 对于数据输入异常,可使用java异常处理机制进行处理. 2. 评分将以功能实现与代码规范性相结合的方式进行考核. 3. 如果对项目需求有疑问,可以随时以QQ留言方式联系我进行咨询. 4. 国庆放假期间,每天都有老师在公司值班,10月4日是我在公司值班,10月7日正常上班,欢迎大家到公司来做项目. 二. 项目功能要求: 项目开始运行显示主菜单为: 银行自助终端系统 ************

  • Java 字符终端上获取输入三种的方式分享

    在Java 字符终端上获取输入有三种方式: 1.java.lang.System.in (目前JDK版本均支持)2.java.util.Scanner (JDK版本>=1.5)3.java.io.Console(JDK版本>=1.6),特色:能不回显密码字符 参考:这里记录Java中从控制台读入信息的几种方式(1)JDK 1.4(JDK 1.5和JDK 1.6也都兼容这种方法) 复制代码 代码如下: public class TestConsole1 {      public static

  • 在Mac OS的终端中运行Swift应用的方法

    在读完苹果开发者文档( Apple Developer Docs)后,我发现: "Xcode的调试器包括一个Swift语言的交互版本,叫做REPL(Read-Eval-Print-Loop)...可以通过Xcode的控制台或终端来访问" 不幸的是,它并没有告诉你怎样从终端访问.好在这也不是什么难事. 输入如下命令即可(无论你用哪个beta,换掉app的名字) 复制代码 代码如下: alias swift="/Applications/Xcode6-Beta2.app/Cont

  • PHP实现自动识别Restful API的返回内容类型

    如题,PHP如何自动识别第三方Restful API的内容,自动渲染成 json.xml.html.serialize.csv.php等数据? 其实这也不难,因为Rest API也是基于http协议的,只要我们按照协议走,就能做到自动化识别 API 的内容,方法如下: 1.API服务端要返回明确的 http Content-Type头信息,如: Content-Type: application/json; charset=utf-8 Content-Type: application/xml;

随机推荐