モバイル端末や PC 端末にデータ インターフェイスを提供するサービス データ ポートとして PHP を使用する場合、インターフェイスのアクセス元を記録することが求められる場合があります。
例: 注文を生成するとき、データ分析を行い、運営やプロモーションにデータ サポートを提供するために、注文を記録する必要がある場合があります。
今はモバイル端末が多すぎるので、非常に多くの判断をしなければなりません。これらのモバイル端末の判断を見てみましょう:
function order_source() { $useragent = strtolower($_SERVER["HTTP_USER_AGENT"]); // iphone $is_iphone = strripos($useragent,'iphone'); if($is_iphone){ return 'iphone'; } // android $is_android = strripos($useragent,'android'); if($is_android){ return 'android'; } // 微信 $is_weixin = strripos($useragent,'micromessenger'); if($is_weixin){ return 'weixin'; } // ipad $is_ipad = strripos($useragent,'ipad'); if($is_ipad){ return 'ipad'; } // ipod $is_ipod = strripos($useragent,'ipod'); if($is_ipod){ return 'ipod'; } // pc电脑 $is_pc = strripos($useragent,'windows nt'); if($is_pc){ return 'pc'; } return 'other'; }
ここでは紹介しませんが、ブラウザの区別など、必要に応じて特殊な処理を行うこともできます。
$_SERVER["HTTP_USER_AGENT"] をエコーして見てみると、理解できるでしょう。
WeChat ブラウザに属しているかどうかを判断する場合、IOS と ANDROID の両方に共通する方法は、HTTP_USER_AGENT に次のものが含まれているかどうかを判断することです。micromessenger
$res = strripos($str,$findstr) このメソッドは、$str 文字列内の $findstr の最後の出現と一致します。一致するものが見つからない場合は、false が返されます。
つまり、一致する文字列が最初の位置にある場合は 0 が返され、if($res){...} は正しく返されません。
より正しい書き方は if($res === 0 || $res > 0){...} , (3 つの等号は値が等しいだけでなくデータが等しいことも意味します)タイプ)、
もちろん、どのキーワードがそもそも出てこないのかは分かっているので、上記の書き方で大丈夫です。