Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/238.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php strpos-用户代理部分匹配_Php_String Matching_Strpos - Fatal编程技术网

Php strpos-用户代理部分匹配

Php strpos-用户代理部分匹配,php,string-matching,strpos,Php,String Matching,Strpos,我正在尝试根据用户代理检测两款不同的手机 我使用strpos,但我的代码在两部手机上都输出“其他手机” $ua = $_SERVER['HTTP_USER_AGENT']; $phone1 = "SM-G900F"; $phone2 = "GT-I9505"; if(strpos($phone1,$ua)!==false){ echo "gs 5"; } elseif (strpos($phone2,$ua)!==false){ echo "gs 4"; } else {

我正在尝试根据用户代理检测两款不同的手机

我使用strpos,但我的代码在两部手机上都输出“其他手机”

$ua = $_SERVER['HTTP_USER_AGENT']; 


$phone1 = "SM-G900F";
$phone2 = "GT-I9505";


if(strpos($phone1,$ua)!==false){
 echo "gs 5";
 }

elseif (strpos($phone2,$ua)!==false){
 echo "gs 4";
} else {
  echo "other phone";
}

您的参数是向后的,语法是

strpos($haystack, $needle)
你基本上是说
是字符串'SM-G900F'中包含的'Argle bargle Foo SM-G900F Bar Baz',
,答案显然是“否”

试一试


相反。

试试这个,交换strps函数中的变量,让这个逻辑工作

$ua = $_SERVER['HTTP_USER_AGENT']; 


$phone1 = "SM-G900F";
$phone2 = "GT-I9505";


if(strpos($ua,$phone1)!==false){
 echo "gs 5";
 }

elseif (strpos($ua,$phone2)!==false){
 echo "gs 4";
} else {
  echo "other phone";
}

以下内容的输出是什么:
echo$ua=$\u服务器['HTTP\u用户\代理']?这起作用,但我的else不再起作用-如果我在非phone1和phone2的手机上打开url,它将不再输出“other phone”,因此开始调试:输出您正在测试的UA,查看您正在处理的UA。起作用,但我的else部分不再起作用-在具有不同UA的设备上打开脚本时,“other phone”不会出现。
$ua = $_SERVER['HTTP_USER_AGENT']; 


$phone1 = "SM-G900F";
$phone2 = "GT-I9505";


if(strpos($ua,$phone1)!==false){
 echo "gs 5";
 }

elseif (strpos($ua,$phone2)!==false){
 echo "gs 4";
} else {
  echo "other phone";
}