PHP でのユーザー ブラウザ検出に関しては、$_SERVER を使用するかの選択が必要です['HTTP_USER_AGENT'] と get_browser 関数が発生します。各アプローチには長所と短所があります。
$_SERVER['HTTP_USER_AGENT'] は、ブラウザ、オペレーティング システム、およびその他のクライアント固有の詳細に関する情報を含む生のユーザー エージェント文字列を提供します。この方法は広くサポートされており、ブラウザーを検出するための包括的なデータセットを提供します。ただし、ユーザー エージェントは偽装または変更される可能性があり、不正確な結果につながる可能性があることに注意することが重要です。
一方、get_browser はユーザー エージェント文字列を解析し、ブラウザ固有の情報を含む配列。これは、特定のブラウザ属性を識別して抽出するプロセスを容易にするように設計されています。ただし、get_browser はプリコンパイルされたデータセットに依存しているため、すべてのユーザー エージェント、特に新興ブラウザやあまり一般的ではないブラウザにとって、必ずしも最新または正確であるとは限りません。
$_SERVER['HTTP_USER_AGENT'] を使用して関連する CSS リンクを出力するのは簡単そうに見えますが、ベスト プラクティスとは見なされません。ブラウザのユーザー エージェントは大きく異なる可能性があり、予期しない要素が含まれる場合があります。たとえば、提供された更新プログラムに示されているように、最新バージョンの Internet Explorer にはユーザー エージェント文字列に「Mozilla」が含まれている場合があります。
信頼性の高い CSS ターゲティングを確保するには、代わりにメディア クエリまたは CSS 機能検出を使用することをお勧めします。
次のコード スニペットは、$_SERVER['HTTP_USER_AGENT'] を使用したブラウザ検出のためのより包括的で信頼性の高い方法を提供します。
if (stripos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE) {
echo 'Internet Explorer';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Trident') !== FALSE) { // For supporting IE 11
echo 'Internet Explorer';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Firefox') !== FALSE) {
echo 'Mozilla Firefox';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Chrome') !== FALSE) {
echo 'Google Chrome';
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== FALSE) {
echo "Opera Mini";
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Opera') !== FALSE) {
echo "Opera";
} elseif (stripos($_SERVER['HTTP_USER_AGENT'], 'Safari') !== FALSE) {
echo "Safari";
} else {
echo 'Something else';
}
このスニペットは、ユーザー エージェント文字列内の特定のキーワードをチェックして、一般的なブラウザを識別します。 Internet Explorer、Firefox、Chrome、Opera、Safari などの一般的なブラウザをカバーし、Internet Explorer の「Trident」互換モードや Opera Mini の独自のユーザー エージェントなどのニュアンスを扱います。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3