iモードID取得を試しておく

shimookaさんのトコでも上がってましたが、ドコモのiモードIDが取得できるようになったので、とりあえず試しておこうと思います。

PEAR::Net_UserAgent_Mobileを使う場合を考えると、こんな感じですかね〜。

<?php
require_once 'Net/UserAgent/Mobile.php';
$agent = &Net_UserAgent_Mobile::singleton();
$serialNumber = '';
switch( true ) {
    case ($agent->isDoCoMo()):   // DoCoMoの場合
        if ( isset($_SERVER['HTTP_X_DCMGUID']) ) {
            $serialNumber = $_SERVER['HTTP_X_DCMGUID'];
        } elseif ( method_exists($agent,'getSerialNumber') ) {
            $serialNumber = $agent->getSerialNumber();
        }
        break;
    case ($agent->isVodafone()): // Vodafoneの場合
        if( method_exists($agent,'getSerialNumber') ) {
             $serialNumber = $agent->getSerialNumber();
        }
        break;
    case ($agent->isEZweb()):    // auの場合
        if( isset($_SERVER['HTTP_X_UP_SUBNO']) ) {
            $serialNumber = $_SERVER['HTTP_X_UP_SUBNO'];
        }
        break;
    default:
        break;
}
?>

一応、後方互換を考えて、formタグにutnを使った場合の処理も残してあります。
この場合、

<form action="index.php?guid=ON" method="POST" utn>

とかしたらどうなるんだろう…と思ってやってみたら、"IDを送ってもいいですか?"っていう画面が出てきたけど、X-DCMGUIDヘッダも送られてくるので、7桁のiモードIDの方が取得されました。…まぁ、当たり前か…。(^^;ゞ

しっかし、もう散々他で叩かれてますが、httpsでIDが取れないのはいかがなものかと…。