Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
数据应用
ThinkLibrary
提交
cc8ea0da
T
ThinkLibrary
项目概览
数据应用
/
ThinkLibrary
通知
2
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
代码片段
项目成员
Pages
T
ThinkLibrary
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
代码片段
代码片段
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
cc8ea0da
编写于
7月 09, 2020
作者:
李光春
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
- 更新请求门面
上级
12a9c96c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
79 addition
and
0 deletion
+79
-0
src/facade/Requests.php
src/facade/Requests.php
+5
-0
src/helper/Requests.php
src/helper/Requests.php
+74
-0
未找到文件。
src/facade/Requests.php
浏览文件 @
cc8ea0da
...
...
@@ -34,6 +34,11 @@ use think\Facade;
* @method static bool isPut() 判断是否为PUT方式
* @method static bool isDelete() 判断是否为DELETE方式
* @method static bool isAjax() 判断是否为Ajax方式
* @method static bool isMobile() 判断是否为移动端访问
* @method static bool isWeXin() 判断是否微信内置浏览器访问
* @method static bool isAliPay() 判断是否支付宝内置浏览器访问
* @method static bool isQQ() 判断是否QQ内置浏览器访问
* @method static bool isQQBrowser() 判断是否QQ浏览器访问
* @method static string getWebsiteAddress() 获取域名地址
*/
class
Requests
extends
Facade
...
...
src/helper/Requests.php
浏览文件 @
cc8ea0da
...
...
@@ -93,6 +93,80 @@ class Requests
return
request
()
->
isAjax
();
}
/**
* 判断是否为移动端访问
* @return bool
*/
public
function
isMobile
():
bool
{
// 如果有HTTP_X_WAP_PROFILE则一定是移动设备
if
(
isset
(
$_SERVER
[
'HTTP_X_WAP_PROFILE'
]))
return
true
;
//如果via信息含有wap则一定是移动设备,部分服务商会屏蔽该信息
//找不到为flase,否则为true
if
(
isset
(
$_SERVER
[
'HTTP_VIA'
]))
return
stristr
(
request
()
->
server
(
'HTTP_VIA'
),
"wap"
)
?
true
:
false
;
//判断手机发送的客户端标志
if
(
isset
(
$_SERVER
[
'HTTP_USER_AGENT'
]))
{
$clientkeywords
=
[
'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'
,
'alipay'
];
// 从HTTP_USER_AGENT中查找手机浏览器的关键字
if
(
preg_match
(
"/("
.
implode
(
'|'
,
$clientkeywords
)
.
")/i"
,
strtolower
(
request
()
->
server
(
'HTTP_USER_AGENT'
))))
return
true
;
}
//协议法,因为有可能不准确,放到最后判断
if
(
isset
(
$_SERVER
[
'HTTP_ACCEPT'
]))
{
// 如果只支持wml并且不支持html那一定是移动设备
// 如果支持wml和html但是wml在html之前则是移动设备
if
((
strpos
(
request
()
->
server
(
'HTTP_ACCEPT'
),
'vnd.wap.wml'
)
!==
false
)
&&
(
strpos
(
request
()
->
server
(
'HTTP_ACCEPT'
),
'text/html'
)
===
false
||
(
strpos
(
request
()
->
server
(
'HTTP_ACCEPT'
),
'vnd.wap.wml'
)
<
strpos
(
request
()
->
server
(
'HTTP_ACCEPT'
),
'text/html'
))))
return
true
;
}
return
false
;
}
/**
* 判断是否微信内置浏览器访问
* @return bool
*/
public
function
isWeXin
():
bool
{
if
(
strpos
(
request
()
->
server
(
'HTTP_USER_AGENT'
),
'MicroMessenger'
)
!==
false
)
return
true
;
return
false
;
}
/**
* 判断是否支付宝内置浏览器访问
* @return bool
*/
public
function
isAliPay
():
bool
{
if
(
strpos
(
request
()
->
server
(
'HTTP_USER_AGENT'
),
'Alipay'
)
!==
false
)
return
true
;
return
false
;
}
/**
* 判断是否QQ内置浏览器访问
* @return bool
*/
public
function
isQQ
():
bool
{
if
(
strpos
(
request
()
->
server
(
'HTTP_USER_AGENT'
),
'QQ'
)
!==
false
)
if
(
strpos
(
request
()
->
server
(
'HTTP_USER_AGENT'
),
'_SQ_'
)
!==
false
)
return
true
;
return
false
;
}
/**
* 判断是否QQ浏览器访问
* @return bool
*/
public
function
isQQBrowser
():
bool
{
if
(
strpos
(
request
()
->
server
(
'HTTP_USER_AGENT'
),
'QQ'
)
!==
false
)
{
if
(
strpos
(
request
()
->
server
(
'HTTP_USER_AGENT'
),
'_SQ_'
)
!==
false
)
return
false
;
else
return
true
;
}
return
false
;
}
/**
* 获取域名地址
* @return string
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录