どのように書くのブラウザ固有のコードをPHP

PHPでShortLikeAFoxで2008年7月21日投稿

そのためには、特定のブラウザのみに表示されるコードを書きたいと思って...これを実行する理由にはいくつかあります。 私は個人的にこれを行うために必要な最初の時私は、特定のページ上のMP3エンベッドしていたが発生しました。 For some reason I could not write the code so that the mp3 would play on the browsers I test on (IE, Firefox, and Opera), and validate at the same time. もし私の記憶が正しければ、 Internet Explorerは、問題の原因だった。 IEを使っていた時は、ユーザーを調べるには少しのPHPを使用するようにしていた何かが起きている場合、この問題を解決する場合はMP3以外の有効なコードを埋め込む。

これは、 W3CのバリデータのIEとして認識しないと、このソリューションは、 MP3の再生ページを常に正しく、常に検証し、主導した。 このW3Cのコンプライアンスに到達するための最も倫理的な方法がないかもしれないが、動作します。

別の時間が私のブラウザ固有のコードを書くことが必要なときに適切に私を覚えています。 PNG形式の画像が表示されないのはIE 6に問題があるされています。 私の周りgoogledと問題の解決策を見つけたのが、どちらも全体の層を自分のページに失敗した場所を終えた。 この問題のトラブルシューティングを行うのではなく、私は簡単な解決策を行って表示することを決めた。 GIFをしたときは、ユーザーはIE 6 。 ユーザーがいた場合は、別のブラウザをしていた。私は彼にとっても悪いされたPNG形式の問題を計算した。

どのように行うには:

最初に、コードのほとんどの行を書くことが自分のユーザーのブラウザを理解する必要があります。 ここには、 PHPでどのようにすることです:

  • 'HTTP_USER_AGENT' ]; $ visitorsOS = $ _SERVER [ ' HTTP_USER_AGENT ' ] ;

ここで$ visitorsOSの3つの例があるように見えることができます

  • Mozilla/4.0 (互換; MSIE 6.0 ;のWindows NT 5.1 ; SV1 ; 。 NETのCLRの1.0.3705 ; 。 NETの
  • Opera/9.51 (のWindows NT 5.1 ; ū ; pl )
  • Mozilla/5.0 ( Windowsの; ū ;のWindows NT 5.1 ;アン米;右心室: 1.9 ) Gecko/2008052906 Firefoxの

最初のユーザーがInternet Explorer 6をしている、オペラ9.51 、 Firefoxの2番目、 3番目。

よりも、本当に我々にするために必要な訪問者のコンピュータに関する詳細な情報を知る必要がある今は、その情報をうまく利用してください。 場合は、ユーザーがInternet Explorerのすべてのバージョンを実行しているだけが表示されるコードを記述するとします。 この操作を行うとその場合には:

(’MSIE’,$visitorsOS)){eregi ( ' MSIE ' 、 $ visitorsOS ) ) (

コードは、ユーザーにのみ表示されますIEの場合があります

コードは、その他の場合はすべてが表示されます

私の代わりにereg 、敏感な正規表現に一致する場合に一致eregi 、大文字小文字を区別しない正規表現を使用しています。 もし、この妄想のうち、または行う場合、 Internet Explorerの場合、実際にはそれ自体として識別msieが見つかりました私は覚えていない。 私が使用しているので、どちらの場合eregiでは何も害はないよ。 若干の変更を必要とする唯一のIEの特定のバージョンについては、コードを書くことを望む。 の代わりに...もし私が唯一の希望MSIE 6.0の登場コード( eregi ( ' MSIE ' ... )私( eregi ( ' MSIE 6.0 ' ... )のようなものを使用します。