排除特定的平板设备我使用的是PHP函数看起来像这样检查用户到我的网站是否是在移动设备上:PHP从移动网站
function isMobileCheckByAgent()
{
return !!preg_match('/(iPod|iPhone|Android|BlackBerry|SymbianOS|SCH-M\d+|Googlebot-Mobile)/',$_SERVER['HTTP_USER_AGENT']);
}
现在我有两个设备,华硕Nexus 7和银河标签(平板电脑),我想为我的桌面网站,而不是移动,因为他们的大屏幕可以处理它。
所以看什么这些设备从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)/'”中允许有空格吗?双重否定“!!”是什么?我只是自己做这件事,因为最初编写这个函数的人在做它。
preg_match将返回0,1或false(出错)。双重否定只会将整数转换为布尔值。所以任何非零值为真,零为假。 – Octopus
不要这样做。这是一个维护噩梦。如果你坚持要提供不同的页面,请使用一个可以帮助你的页面。 –