◎設定値詳細

ライブラリ内の「_params」プロパティ、もしくはcontroller内の「ktai」

プロパティ、ヘルパーを利用する際の「Configure::write('Ktai', $params);」で設定

するparams連想配列で指定する、各種設定値については、次の通りです。

なお、記載されている設定値はデフォルトです。

【エンコーディング関連設定】

・入力エンコーディング(string)

'input_encoding' => KTAI_ENCODING_SJIS,

 加工前のエンコーディングを指定します。

・出力エンコーディング(string)

'output_encoding' => KTAI_ENCODING_SJIS,

 加工後のエンコーディングを指定します。

・バイナリ絵文字を使用(bool)

'use_binary_emoji' => true,

 絵文字生成の際、バイナリ文字列を生成します。



【iPhone関連設定】

・iPhoneを携帯とみなす(bool)

'iphone_user_agent_belongs_to_ktai' => false,

・iPhoneをSoftBank携帯とみなす(bool)

'iphone_user_agent_belongs_to_softbank' => false,

・iPhoneメールを携帯メールとみなす(bool)

'iphone_email_belongs_to_ktai_email' => false,

・iPhoneメールをSoftBank携帯のメールとみなす(bool)

'iphone_email_belongs_to_softbank_email' => false,


【仮想スクリーンサイズ設定】

・仮想スクリーンサイズの設定(array(int, int))

'default_screen_size' => array(240, 320),

 仮想的なスクリーンサイズを(width, height)で指定します。

 画像ストレッチ機能(■ライブラリ関数リファレンス「◎スクリーンサイズに

最適化した画像を表示」を参照)で使用されます。


【文字コードコンバート関連】(ヘルパーのみ)

・アウトプットに対して絵文字の自動コンバートを行う(bool)

'output_auto_convert_emoji' => false,

 このフラグを指定すると、アウトプット内にある絵文字について検索を行い、

コンバートを自動で行います。


・アウトプットに対して文字コードの自動コンバートを行う(bool)

'output_auto_encoding' => false,

 このフラグを指定すると、入力文字コード指定と出力文字コード指定が異なる場合、

自動変換します。

・仮名変換(string)[New!]

'output_convert_kana' => 'knr',

 このオプションを指定すると、仮名文字変換(mb_convert_kana())を自動で行います。

 与える文字列はmb_convert_kana()で与えるオプションです。

 デフォルトはfalseとなっていて、変換処理は行いません。

※文字コンバート関連は、処理の性質上大変に処理能力を使いますのでお気をつけ

 ください


■ヘルパーの利用方法

ヘルパーでライブラリーを使用するには、次の手順で行います。

1:ライブラリを所定の位置にコピーする(前述)

2:必要であれば、設定値をカスタマイズする

3:コントローラにヘルパーを登録する

var $helper = array('Ktai', ...);

4:ビュー内に記述

emoji(63879); ?>←「[1]」を表示


■コンポーネントの利用方法

コンポーネントでライブラリーを使用するには、次の手順で行います。

1:ライブラリを所定の位置にコピーする(前述)

2:必要であれば、設定値をカスタマイズする

3:コントローラにコンポーネントを登録する

var $components = array('Ktai', ...);

4:コントローラ内に記述

if($this->Ktai->is_ktai()){

echo "携帯でアクセスしています
\n";

}

【備考】

 レンダリング結果に対して絵文字を全て変換したい場合は、コントローラ処理が

終わるまでに「$this->ktai['convert_output'] = true」を設定します。



■ライブラリ関数リファレンス

◎ライブラリのバージョンを入手

string get_version()

 ライブラリのバージョンコード(文字列)を入手します。


◎キャリアの判別

bool is_imode() iMODE携帯の判別

bool is_softbank() ソフトバンク携帯の判別

bool is_vodafone() ボーダフォン携帯の判別

bool is_jphone() JPHONE携帯の判別

bool is_ezweb() EZWeb携帯の判別

bool is_emobile() EMOBILE携帯の判別

bool is_iphone() iPhoneの判別

 各携帯端末を判別し、そうであったらtrueを返します。

 is_vodafone()はJ-PHONEも、is_softbank()はvodafoneとJ-PHONEも含みます

(通常はis_softbank()を使います)。


◎携帯の判別

bool is_ktai()

 携帯端末でアクセスしている場合、trueを返します。

 設定により、iPhone端末も携帯として判別することが出来ます。


◎PHSの判別

bool is_phs()

 PHS端末でアクセスしている場合、trueを返します。


◎キャリアコードを入手

int get_carrier()

 現在のアクセス端末の判別を、数値で入手します。

 定数として、次の数値が割り当てられています。

KTAI_CARRIER_UNKNOWN (不明)

KTAI_CARRIER_DOCOMO iMODE

KTAI_CARRIER_KDDI EZWeb

KTAI_CARRIER_SOFTBANK Softbank

KTAI_CARRIER_EMOBILE EMOBILE

KTAI_CARRIER_IPHONE iPhone

KTAI_CARRIER_PHS PHS


◎ユーザーエージェントの解析

array analyze_user_agent(string $user_agent = null)

 ユーザーエージェントを解析し、端末情報を入手します。

 引数が指定されていない場合は現在のユーザエージェントを入手して解析します。

 配列で渡される値は次の通りです。

array(

'carrier' => 0, //キャリアコード(int)

'carrier_name' = 'default', //キャリア名(string)

'machine_name' => 'default', //端末名(string)

)

なお、PCなど端末が特定できなかった場合はデフォルトの値が入ります。


◎端末情報の入手

array get_machineinfo(string $carrier_name = null, string $machine_name = null)

 端末情報をライブラリから入手します。

 キャリア名と端末名を省略した場合は、現在のユーザーエージェントからこれらを

入手し、端末情報を入手します。

 端末情報が存在しない場合は一般的な端末の情報が返されます。

 配列で渡される値は次の通りです。

array(

'carrier' //キャリアコード(int)

'carrier_name' //キャリア名(string)

'machine_name' //端末名(string)

'text_size' => array(20, 11), //文字数(width, height / 半角 / int)

'screen_size' => array(240, 320), //スクリーンサイズ(width, height / int)

'image_size' => array(240, 320), //画像サイズ(壁紙など)

//(width, height / int)

'pic_format' => array('gif' => true, 'jpg' => true, 'png' => true, ),

//対応画像フォーマット(bool)

)


◎メールアドレスの判別

bool is_imode_email(string $email) iMODEメールの判別

bool is_softbank_email(string $email) ソフトバンクメールの判別

bool is_vodafone_email(string $email) ボーダフォンメールの判別

bool is_jphone_email(string $email) JPHONEメールの判別

bool is_ezweb_email(string $email) EZWebメールの判別

bool is_emobile_email(string $email) EMOBILEメールの判別

bool is_iphone_email(string $email) iPhoneメールの判別

 各携帯メールアドレスを判別し、そうであったらtrueを返します。

 is_vodafone_email()はJ-PHONEも、is_softbank_email()はvodafoneとJ-PHONEも

含みます(通常はis_softbank_email()を使います)。


◎携帯メールの判別

bool is_ktai_email(string $email)

 携帯メールアドレスの場合、trueを返します。

 設定により、iPhone端末も携帯として判別することが出来ます。


◎PHSメールの判別

bool is_phs_email(string $email)

 PHSメールアドレスの場合、trueを返します。


◎スクリーンサイズに最適化した画像を表示

string image(string $url, array $htmlAttribute = array())

 仮想スクリーンサイズと端末スクリーンサイズから画像の拡大率を計算し、その比率に

修正した画像を表示します。この関数を使用することで、高解像度携帯での画像の

レイアウト崩れを補正することが出来ます。

 CakePHPのHtmlHelper準拠の引数となっており、imgタグのアトリビュートを

htmlAttribute内に連想配列で指定します。

 なお、最適化については、画像の幅と高さ(width, height)が必ず指定されて

いなければなりません。どちらかが欠けた場合、最適化は行いません。

 なお、最適化を行いたくない場合はHtmlHelper::image()に置き換えてください。


◎スクリーンサイズに最適化した画像サイズを入手

array stretch_image_size(int $width, int $height, int $default_width = null,

int $default_height = null)

 仮想スクリーンサイズと端末スクリーンサイズから画像の拡大率を計算し、その比率に

修正した画像サイズを入手します。戻り値の配列は、width, heightの順です。


◎アクセスキー付きlinkの出力(ヘルパーのみ)

string link(string $title, mixed $url = null, mixed $htmlAttributes = array(),

bool $confirmMessage = false, bool $escapeTitle = true)

 アクセスキー付きのリンクを作成します。

 htmlAttributesに「'accesskey'」パラメータが含まれている場合、リンク文字列の

前に番号絵文字iconを出力します。

 それ以外のパラメータなどは、$html->link()と同じです。


◎mailtoリンクの作成

string mailto(string $title, string $email, string $subject = null,

string $body = null, bool $input_encoding = null,

$output_encoding = null, $display = true)

 各端末に合わせたmailtoリンクを作成します。

 件名や本文を、文字化けすることなく挿入することが出来ます。

 自動的にアウトプットしたくない場合はdisplayをfalseにします。


◎リダイレクト[New!]

void redirect(string $url, bool $exit = true)

 リダイレクト処理を実現します。

 enable_ktai_sessionが有効であり、use_redirect_session_idが有効か、もしくは

iMODE端末からのアクセスだった場合は、セッションIDがURLに付加されます。

※lib3gk固有の機能を持つ関数です。CakePHPでは、app_controller.phpを設定し、

 コントローラ内のredirect()を用いてください


◎ユーザIDの入手[New!]

mixed get_uid()

 携帯に付加されているユーザID(uid)を入手します。

 uidが入手出来た場合はそのコードがstringで返ります。

 入手出来なかった場合はfalseが返ります。


★以下は、直接携帯に関係ないけどお役立ち関数です

◎エンコーディング文字列を正規化

string normal_encoding_str(string $str)

 エンコーディング文字列をPHP内部で利用している標準的な文字列で正規化します。

 例えば、「sjis」, 「Shift_JIS」は全て「SJIS」と変換されます


◎数値から文字列を作成

string int2str(int $value)

 数値(キャラクターコード)を文字列に変換します。

 マルチバイトに対応しています。

◎数値(ユニコード)からUTF-8文字列を作成

string int2utf8(int $value)

 ユニコードをUTF-8文字列に変換します。


◎QRコードの作成[New!]

string get_qrcode(string $str, array $options = array(),

$input_encoding = null, $output_encoding = null)

 Google chart APIを用いて、携帯サイト誘導手段として一般的なQRコードを作成

します。

 $optionsは、連想配列で次のオプションを指定できます。

 各オプション値の詳細は、Google Chart APIデベロッパーガイドを参照してください。

▼Google Chart API:デベロッパー ガイド(QRコード)

http://code.google.com/intl/ja/apis/chart/#qrcodes

$options = array(

'width' => 220, //QRコード画像の幅(マージンを含んでいます)

'height' => 220, //QRコード画像の高さ(同上)

// 'margin' => 4, //マージン(無彩色)幅

// 'ec' => '-L', //エラー訂正レベル

);

 これ以外のキーを持つ値は、image()のオプションとして持ち越されます。

 デフォルト値は、縦横220pixelとなっています。

 戻り値はイメージタグの文字列となります。