HTTP_ACCEPT
- 事の発端
- DTDをXHTML 1.1に変更 : Weblog : SimpleIsm
- 関連
- application/xhtml+xml に対応していない場合は text/html を吐くようにした ( Fuji Diablog )
- XHTML1.1 に正しい MIME Type を - Code-404
事の発端というか,単に夜秋さんの所のfeed購読しててそんなネタ書いてたからなんだけども.
じゃあ $_SERVER['HTTP_ACCEPT'] の中身を見てみよう!ということで,HTTP_ACCEPTを表示させるphpを適当に書いた.(そのページ)
| 各ブラウザのHTTP_ACCEPT(自分で確認できる範囲) | |
|---|---|
| Browser | Value |
| Mozilla Firefox3.0.7 | text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 |
| Opera 9.62 | text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1 |
| Internet Explorer 6.01回目 | image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */* |
| Internet Explorer 6.02回目以降 | */* |
| Internet Explorer 7.0 | image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-ms-application, application/vnd.ms-xpsdocument, application/xaml+xml, application/x-ms-xbap, application/x-shockwave-flash, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */* |
| Lynx | text/html, text/plain, text/css, text/sgml, */*;q=0.01 |
IE6の値が酷い.IE7もSafariもSafariは知らん.うちのWindows2000だと動かないしな!
それはさておき. $_SERVER['HTTP_ACCEPT'] だけを見る限り,splitして配列にぶち込んだ上で一致検索とかしなくてもいいんじゃ,とか思ったり.
どうせならpregじゃなくてereg使いましょうよ,ということで以下.
if(isset($_SERVER['HTTP_ACCEPT'])) {
if(ereg(".*application/xhtml\+xml.*", $_SERVER['HTTP_ACCEPT'])) {
[処理]
}else{
[処理]
}
}else{
echo "カワイソス";
}
こんなんじゃだめなんですかね?phpよく知りませんが.
- 追記:2009-03-18T09:30:00+09:00
- 久々にphp書いたので,まぁ,でるわでるわエラーの嵐.殆どがセミコロンでの行末締め忘れだったり.RubyもPythonも行末セミコロンとか書かなくていいからな!すっかり忘れてたZE!
- 追記:2009-03-23T22:00:00+09:00
- IE7のHTTP_ACCEPTの情報もらいました.Kensyありがとう!