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'] を使用した、より包括的で信頼性の高いブラウザ検出方法を提供します。
<code class="php">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'; }</code>
このスニペットは、ユーザー エージェント文字列内の特定のキーワードをチェックして、一般的なブラウザを識別します。 Internet Explorer、Firefox、Chrome、Opera、Safari などの一般的なブラウザをカバーし、Internet Explorer の「Trident」互換モードや Opera Mini の独自のユーザー エージェントなどのニュアンスを扱います。
以上がPHP でユーザー ブラウザを検出するための適切なアプローチを選択するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。