Rumah > pembangunan bahagian belakang > tutorial php > 利用PHP判断是手机移动端还是PC端访问的函数示例_php技巧

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

韦小宝
Lepaskan: 2023-03-17 22:44:01
asal
2052 orang telah melayarinya

在平常工作开发中,我们通常需要开发出PC端和移动端两个不同的系统,从而根据访问端的不同进入到不同的操作界面中。下面这篇文章主要给大家介绍了关于利用PHP判断是手机移动端还是PC端访问的PHP函数的相关资料,不了解PHP这方面知识或需要的朋友可以参考下。

前言

最近在开发项目的时候,分别开发了PC端和手机端,需要实现,用手机访问PC端WWW域名的时候,自动判断跳转到移动端,用电脑访问M域名手机网站的时候,自动跳转到PC端网站,于是有了下面这个判断函数:

示例代码:


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

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

/**

 * 移动端判断

 */

function isMobile()

{

 // 如果有HTTP_X_WAP_PROFILE则一定是移动设备

 if (isset ($_SERVER['HTTP_X_WAP_PROFILE']))

 {

 return true;

 }

 // 如果via信息含有wap则一定是移动设备

 if (isset ($_SERVER['HTTP_VIA']))

 {

 // 找不到为flase,否则为true

 return stristr($_SERVER['HTTP_VIA'], "wap") ? true : false;

 }

 // 脑残法,判断手机发送的客户端标志,兼容性有待提高

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

 {

 $clientkeywords = array ('nokia',

  'sony',

  'ericsson',

  'mot',

  'samsung',

  'htc',

  'sgh',

  'lg',

  'sharp',

  'sie-',

  'philips',

  'panasonic',

  'alcatel',

  'lenovo',

  'iphone',

  'ipod',

  'blackberry',

  'meizu',

  'android',

  'netfront',

  'symbian',

  'ucweb',

  'windowsce',

  'palm',

  'operamini',

  'operamobi',

  'openwave',

  'nexusone',

  'cldc',

  'midp',

  'wap',

  'mobile'

  );

 // 从HTTP_USER_AGENT中查找手机浏览器的关键字

 if (preg_match("/(" . implode('|', $clientkeywords) . ")/i", strtolower($_SERVER['HTTP_USER_AGENT'])))

 {

  return true;

 }

 }

 // 协议法,因为有可能不准确,放到最后判断

 if (isset ($_SERVER['HTTP_ACCEPT']))

 {

 // 如果只支持wml并且不支持html那一定是移动设备

 // 如果支持wml和html但是wml在html之前则是移动设备

 if ((strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) !== false) && (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;) === false || (strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;vnd.wap.wml&#39;) < strpos($_SERVER[&#39;HTTP_ACCEPT&#39;], &#39;text/html&#39;))))

 {

  return true;

 }

 }

 return false;

}

Salin selepas log masuk


PHP isset 函数作用

isset函数是检测变量是否设置。

格式:bool isset ( mixed var [, mixed var [, ...]] )

返回值:

  • 若变量不存在则返回 FALSE

  • 若变量存在且其值为NULL,也返回 FALSE

  • 若变量存在且值不为NULL,则返回 TURE

  • 同时检查多个变量时,每个单项都符合上一条要求时才返回 TRUE,否则结果为 FALSE

  • 如果已经使用 unset() 释放了一个变量之后,它将不再是 isset() 。若使用 isset() 测试一个被设置成 NULL 的变量,将返回 FALSE。同时要注意的是一个 NULL 字节("\0")并不等同于 PHP 的 NULL 常数。

警告: isset() 只能用于变量,因为传递任何其它参数都将造成解析错误。若想检测常量是否已设置,可使用 defined() 函数。


1

2

3

4

5

6

7

8

9

<?php

$a = array (&#39;test&#39; => 1, &#39;hello&#39; => NULL);

var_dump( isset ($a[&#39;test&#39;) ); // TRUE

var_dump( isset ($a[&#39;foo&#39;) ); // FALSE

var_dump( isset ($a[&#39;hello&#39;) ); // FALSE

// &#39;hello&#39; 等于 NULL,所以被认为是未赋值的。

// 如果想检测 NULL 键值,可以试试下边的方法。

var_dump( array_key_exists(&#39;hello&#39;, $a) ); // TRUE

?>

Salin selepas log masuk


总结

以上就是本文的所有内容了,希望会给大家带来帮助!!

相关推荐:

PHP判断是否为手机客户端的方法

php判断文件是否存在file_exists()函数使用详解

php判断ip黑名单程序代码实例详解

Atas ialah kandungan terperinci 利用PHP判断是手机移动端还是PC端访问的函数示例_php技巧. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan