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)