我正在使用一个看起来像这样的 php 函数来检查我网站的用户是否在移动设备上:
function isMobileCheckByAgent()
{
return !!preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Googlebot-Mobile)/',$_SERVER['HTTP_USER_AGENT']);
}
现在我有两台设备,华硕 Nexus 7 和 Galaxy Tab(平板电脑),我想为我的桌面网站而不是移动设备提供服务,因为它们更大的屏幕可以处理它。
因此,查看这些设备从 HTTP_USER_AGENT 返回的内容,我决定查找字符串:
Nexus 7 和 Windows NT 6.1
所以我写道:
function isMobileCheckByAgent()
{
if(!!preg_match('/(Nexus 7|Windows NT 6.1)/',$_SERVER['HTTP_USER_AGENT']) == true)
{
return (false);
}
elseif(!!preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Googlebot-Mobile)/',$_SERVER['HTTP_USER_AGENT']) == true)
{
return (true);
}
else
{
return(false);
}
}
但不可否认,我的 php 技能缺乏并且在这里失败了。我想切换到桌面站点的设备仍在移动站点提供服务。有谁知道我哪里出错了,或者我可以如何改进这个功能来返回我想要的东西?"preg_match('/(Nexus 7|Windows NT 6.1)/'" 中是否允许使用空格?双重否定“!!”是怎么回事?我只是自己做,因为最初编写此函数的人正在做。