Php strpos-用户代理部分匹配
我正在尝试根据用户代理检测两款不同的手机 我使用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 {
$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";
}