1

我正在尝试根据访问者的 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!";
}

?>
4

2 回答 2

4

考虑到其他评论,您不应该自己这样做。这些用户代理远不是一个详尽的列表。但是,如果您想自己进行实验,我建议您尝试以下方法。

此外,如果"iPhone"未找到,则条件自动为假,并且不会评估其他语句。

我喜欢做这样的事情:

$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
}
于 2012-06-15T13:21:08.857 回答
0

对于这种情况,请尝试使用 stristr 更改 strpos..

$iphone = stristr("$_SERVER[HTTP_USER_AGENT]","iphone");

它对我有用,使用与您相同的代码..

于 2012-12-25T17:26:43.380 回答