我正在尝试根据其UserAgent字符串识别访问者的电话类型。但是,我在代码中找不到错误。
<?php
//create an array to be filled with phone type
$arr = phones();
$iphone = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
$android = strpos($_SERVER['HTTP_USER_AGENT'],"Android");
$palmpre = strpos($_SERVER['HTTP_USER_AGENT'],"webOS");
$berry = strpos($_SERVER['HTTP_USER_AGENT'],"BlackBerry");
$ipod = strpos($_SERVER['HTTP_USER_AGENT'],"iPod");
$nokia = strpos($_SERVER['HTTP_USER_AGENT'],"Nokia");
if ($iphone || $android || $palmpre || $ipod || $berry || $nokia == true)
{
echo "Specially for you as $iphone owner!";
}
?>
答案 0 :(得分:4)
考虑到其他评论,你不应该自己做。这些用户代理远不是详尽的列表。但是如果你想自己试验一下,我建议尝试以下类似的东西。
如果未找到"iPhone"
,则条件自动为false,不会评估其他语句。
我喜欢做类似的事情:
$has_mobile_ua = FALSE;
$user_agents = array('iPhone', 'Android', 'webOS', 'BlackBerry', 'iPod', 'Nokia');
foreach ($user_agents as $user_agent) {
if (strpos($_SERVER['HTTP_USER_AGENT'], $user_agent) !== FALSE) {
$has_mobile_ua = TRUE;
break;
}
}
if ($has_mobile_ua) {
// your code
}
答案 1 :(得分:0)
对于这种情况,请尝试使用stristr更改strpos ..
$iphone = stristr("$_SERVER[HTTP_USER_AGENT]","iphone");
它对我来说很有用,就像你的代码一样......