• 締切済み

Netscape系Mozillaだけ処理をしたい

いつも、お世話になります。(長文にてすみません) $_SERVER['HTTP_USER_AGENT']にて、下記の主なブラウザーを調べました。 +----------------------------------------------------- Safari Mozilla/5.0 (Macintosh; U; PPC Mac OS X; ja-jp) AppleWebKit/125.4 (KHTML, like Gecko) Safari/125.9 OmniWeb Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-US) AppleWebKit/85 (KHTML, like Gecko) OmniWeb/v558.46 Camino Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7) Gecko/20040623 Camino/0.8int Firefox Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.7) Gecko/20040803 Firefox/0.9.3 Mozilla Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8a3) Gecko/20040817 Netscape Mozilla/5.0 (Windows; U; Windows NT 5.1; ja-JP; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) Internet Explorer Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR 1.1.4322) Opera Opera/7.53 (Windows NT 5.1; U) [ja] +----------------------------------------------------- 質問は、件名の通り、Netscape系のMozillaの時のみに、ある処理をさせたいのです。 if(strstr($_SERVER['HTTP_USER_AGENT'], "Gecko/")){ echo 処理する内容; } 取りあえず、こんな文が思いつくのですが、心配です。良い方法を教えて下さい。 よろしく、お願いします。

みんなの回答

  • tripod_r
  • ベストアンサー率38% (5/13)
回答No.1

質問の内容が少し分かりにくいのですがNetscapeブラウザの場合のみ別処理をさせるということですね!? その場合$_SERVER['HTTP_USER_AGENT']を頑張って調べたようですのでこれを使用します。 ここでの要点はNetscapeだけ[Netscape]という文字列が存在します。 >if(strstr($_SERVER['HTTP_USER_AGENT'], "Gecko/")){ だと[Gecko/]が複数に含まれていますので区別が出来ません。 上記を踏まえたうえで下記プログラムを実行してみてください。 <? if(ereg("Netscape",$_SERVER['HTTP_USER_AGENT'])){ print "Netscape"; } else{ print "not Netscape"; } ?>

waterclock
質問者

お礼

どうもお礼が遅れまして申し訳ありません。 ありがとうございました。 (最近、ここからのメールが何故か届かないんですーー;) そんなもので、質問事項に関しては、現時点では下記のコードで 処理させております。 (Netscape系全てのブラウザを対象にしておりました。) (Netscape 6/7, Mozilla, Firefox, Camino etc...) +---------------------------- $user_agent= explode( "/", $_SERVER['HTTP_USER_AGENT']); if(preg_match("/Gecko/", $user_agent[1])){ echo "処理文"; } +---------------------------- 取りあえず、正常に動作してるようです。 ご心配をおかけしました。

関連するQ&A