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

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

ので、特定のブラウザのみに表示されるコードを記述したい...が、このことをやりたい理由のための数々です。 私は個人的にこれを行うために必要な最初の時私は、特定のページに埋め込むmp3しようとしていたが発生しました。 そうだとは、 mp3 』 ( IE 、 Firefox 、およびオペラ)に私はテストでは、ブラウザ上で再生すると検証が同時にコードを書くことができなかったいくつかの理由のため。 もし私の記憶が正しければ、 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 ; Ü ; 1043 )
  • 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 ' ... )のようなものを使用します。