PHPでInternet Explorerのバージョンを判定する

既に多くのプログラマーさんがやっているとは思いますが、PHPでInternet Explorerのバージョンを判定するプログラムを考えてみました。

$ua = $_SERVER['HTTP_USER_AGENT'];
$uaBrowserInfo['browser'] = "";
$uaBrowserInfo['version'] = "";
if (preg_match("/Trident\/(\d{1,}\.(\d{1,})).*rv:(\d{1,}\.(\d{1,}))/", $ua, $regExpResults)) {
$uaBrowserInfo['browser'] = "IE";
$uaBrowserInfo['version'] = (float)$regExpResults[3];
} elseif (preg_match("/MSIE\s(\d{1,}\.\d{1,})/i", $ua, $regExpResults)) {
$uaBrowserInfo['browser'] = substr($regExpResults[0], 2, 2);
$uaBrowserInfo['version'] = (float)$regExpResults[1];
}

ざっくり解説。
まず、uaという変数にUser Agentの値を入れる。
uaBrowserInfoのbrowserとversionを空にする。
正規表現で、先ずはIE11の新しくなったUser Agentかどうかを判定する。
Tridentとrv:があればIEとして、uaBrowserInfoのbrowserにIEと入れ、versionにはregExpResultの4番目の値がrv:の後の値が入っているので、それをfloatに変換して入れる。
次の処理で、従来の「MSIE バージョン番号」が見つかったら、uaBrowserInfoのbrowserにregExpResultsの1番目の値からIEという文字列抜き出して入れる。
バージョンはregExpResultの2番目の値をfloatに変換して入れる。
色々なパターンを試してみたので、おそらくこれで問題はないかと思います。

【2014/8/1 14:37追記】
ちなみに、互換モードは考慮していません。

WebKeepersのVPS(Linux)を新プランに変更

WebKeepersのVPS(Linux)を2013年2月6日からの新プランに変更すべく、急遽作業開始。
OSはCentOS6.3(64bit)に、Pleskは11になったんだ〜。
後でyumのインストールをと思って、まずダメ元で「yum list」を実行。
動いた!
どうやらyum使えるらしい\(^o^)/
後はひたすら移行作業。
[2013年3月20日9時53分追記]
あ、ローカルサーバーもこれを機にアップさせないと(^^;;

ウェブサイト改ざん

先程、Chromeでeu-create.netを開いたところ
「警告: 不正なソフトウェアが存在する可能性があります」
という表示が…😰
調べてみると、「index.htm」が2012年7月7日に、「index.html」が2012年7月14日にそれぞれ更新されていました。
ちなみに2010年のリニューアル以降、同ファイルは修正やアップはしていないので、何らかの脆弱性を突かれて改ざんされたらしい。
ざっと確認してみたけど、この2ファイルだけみたいだ。
一応、埋め込まれたスクリプト部分を削除してアップしなおした。
FTPのアカウントもパスワードを変更しておいた。
週末、じっくり見ないといけないなぁ。😱

【2012年7月25日12時27分追記】
同サーバーに格納している他のドメインもチェックしたところ、「index.htm」または「index.html」のファイルは全て同様の仕掛けが埋め込まれていました。😫

【2012年8月3日23時10分追記】
主にPleskの脆弱性をついたインジェクションみたいです。
概要としては以下の参考サイトを参照
http://www.bbfriend.net/staff/2012/07/31/plesk-%E3%83%9E%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BE%E3%82%8C%E3%81%9F%EF%BC%81%EF%BC%9F%E3%80%80km0ae9gr6m%E3%80%80qhk6sa/
もう少し深く入り込むと
http://jvnrss.ise.chuo-u.ac.jp/csn/index.cgi?p=%A5%A4%A5%F3%A5%B8%A5%A7%A5%AF%A5%B7%A5%E7%A5%F3+-+%2F*km0ae9gr6m*%2F+%A1%C1+%2F*qhk6sa6g1c*%2F

足が痛い

今日、お昼頃起きると、何故か右足の足首から甲の辺りが痛い(>_<)
4時頃にトイレに行った時は、いつも通り普通だったのに、何故?
外傷無し、腫れ等も無し。
とりあえず、第一三共ヘルスケアのパテックス フェルビナク メントールローションで様子見。

Android携帯から投稿

ルーター設定に手こずる

今日は、最近若干調子の悪かった自宅のルーター再設定をしてみた。
午前10時頃から始めたのだが、ネットに接続できるようになったのは午後5時頃。
au one netで接続するルーター(ルーター1)が何をやっても繋がらない。
結論は意外と単純で、ログインパスワードが違っていた。
以前、ログインパスワードを変更したときのテキストファイルが見つかったので、それを入力したら接続できた。
しかし、次はコレガの無線LANルーター(ルーター2)から、このルーターに接続できず。
原因は、ルーター1からルーター2に接続するときに、スイッチングハブを介して接続していたが、どうやらそのハブが限界を迎えていたらしい。
ケーブルを直結したら接続できるようになった。
あぁ、疲れた。

IE10が発表&技術者向けに公開

IE10が発表&技術者向けに公開されたみたい。
対応OSはWindows7。
日本は震災の影響でIE9が4月26日公開なのに。
【2011年4月13日21時9分】
IE9の日本公開日が4月24日になっていたので訂正。

格納サーバーの緊急メンテナンスがあります

WebKeepersにて契約中のVPSサーバーが電源の緊急メンテナンスをするそうです。
以下、メールの一文を引用

■概要
データセンター内変圧器交換によるメンテナンス
■日時
1回目: 2011年4月12日(火) 午前1時30分~午前4時の間 (日本時間)
2回目: 2011年4月13日(水) 午前1時30分~午前4時の間 (日本時間)

以下のドメインが一時的に閲覧等出来なくなると思います。
・eu-serve1.net
・eu-create.net
・euli-haruna.com
・euro-strada.bz
・euro-strada.info
以上、よろしくお願いします。

サーバー復旧しました

サーバーが復旧しました。
詳細は現在Webサーバー会社にて調査中です。
【2010年12月13日21時52分追記】
原因はサーバー機器の不具合だったそうです。

サーバーダウンについて

現在、WebKeepersにて契約中のVPSサーバーがダウンしており、以下のドメインにてアクセスできなくなっております。
・eu-serve1.net
・eu-create.net
・euli-haruna.com
・euro-strada.com
・euro-strada.bz
・euro-strada.info
現在、サポートに問い合わせ中です。

xoopsモバイル版が…

eu-create.netのxoopsモバイル版は、xmobileモジュールを使用していますが、先ほど確認したら表示はされるが基本的に見られない状態になっています。
移行時は正常に見られていたのに何でだろう?

【2010年11月23日15時25分追記】
自宅サーバーを見てみたら同じ症状になっていました。
って事は、移行したときから正常表示では無かったのか?

【2010年11月29日21時20分更新】
復旧しました。
原因はものすごく単純で、フォルダのアクセス権限を移行時に変更していなかったことが原因でした。
現在は、アクセス権限は変更済みですので、大丈夫だと思います。