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"が見つからない場合、条件は自動的に 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
}
于 2012-06-15T13:21:08.857 に答える
0

この場合、strpos を stristr で変更してみてください。

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

あなたのような同じコードで、それは私にとってはうまくいきます..

于 2012-12-25T17:26:43.380 に答える