Jadファイルをダウンロードする際にカウンタを設置して見ます。ちょっと工夫して、どの携帯からダウンロードされているか分かるようにしてみます。シーケンス的には以下の様になります。

Jadファイルをダウンロードする際の必要要件としては、HTTPレスポンスヘッダーの中にContent-Typeの追加とContent-Lengthの追加があります。どちらもPHPで生成する必要がありますが、サーバが既に対応している場合はHeader()関数で出力する必要もないので以下のコードから削除すべきです。
ダウンロードを実行しつつカウンタを仕込むPHPスクリプトを以下の様に記述してみました。
<?php
$mailaddr = '<ここに通知用のメールアドレスを入れます>';
$fileName = 'counter.txt'; // カウンタ保存用ファイル
$jadfile = 'hoge.jad';
$jadfilesize = @filesize($jadfile);
// 以下はサーバによって追加、削除してみてください。
// MIMEタイプの追加
header('Content-type: text/vnd.sun.j2me.app-descriptor');
// Content-Lengthの追加
header("Content-Length: $jadfilesize");
// 今回はUSER AGENT毎にダウンロードカウントを保持します。
$userAgent = $_SERVER['HTTP_USER_AGENT'];
if( is_null( $userAgent ) ) {
$userAgent = 'x-unknown';
}
// カウンタファイルを読み込みます
if( $content = @file( $fileName ) ) {
$nIndex = 0;
// USER AGENT毎にカウンタの加算
$isNewEntry = TRUE;
// 一行毎に調査する
foreach( $content as $strLine ) {
$strLine = @trim( $strLine );
// カウンタとUSER AGENTを分割
list( $num, $ua ) = explode( ',', $strLine );
if( is_null( $num ) ) {
$num = 1;
}
// USER AGENTがマッチした場合
if( 0 == strcmp( $ua, $userAgent ) ) {
$num++;
// 当該行の削除
array_splice( $content, $nIndex, 1 );
$isNewEntry = FALSE;
break;
}
$nIndex++;
}
}
if( $isNewEntry ) {
$num = 1;
}
// 行の追加
$content[] = $num.','.$userAgent;
// ファイルの書き込み
reset( $content );
if( $file = @fopen($fileName, 'w') ) {
foreach( $content as $strLine ) {
$strLine = @trim( $strLine );
fwrite( $file, $strLine."\n", 1000 );
}
@fclose( $file );
}
// Jadファイルを読み込んでクライアントへ返却する
@readfile( $jadfile );
// オマケでダウンロードされたことをメールで通知
@mail($mailaddr, "OAP download", @implode("\n", $content), "From: $mailaddr" );
?>
上記PHPを「download.php」とした場合、HTMLは以下の様に記載すれば良いと思います。
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd"> <html> <head> <meta http-equiv="Content-Language" content="ja" /> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> <title> ダウンロードページ </title> </head> <body> <a name="0"> <center>オープンアプリ<br /> ダウンロードページ</a><br /> </center> <a href="device:jam?http://example.com/java/download.php"><img localsrc="59">ダウンロード</a><br /> </body> </html>
上記PHPスクリプトを設置した際、以下の様なファイルが出来ます。(ウェブ上で実際に試してみた結果)
1,Mozilla/3.0(WILLCOM;SANYO/WX310SA/2;1/1/C128) NetFront/3.3 1,Mozilla/5.0 (Windows; U; Windows NT 5.1; ja; rv:1.8.1) Gecko/20061010 Firefox/2.0 1,Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; FDM; .NET CLR 1.1.4322; .NET CLR 2.0.50727) Sleipnir/2.5.8 1,FDM 2.x 1,Mozilla/4.0 (compatible;) 40,KDDI-JVM/1.0 (W51H; VM) 94,KDDI-JVM/1.0 (W51SA; VM) 23,KDDI-JVM/1.0 (W51S; VM) 109,KDDI-JVM/1.0 (W51CA; VM)