+// 携帯電話にあわせたフェイスマーク
+
+// $usefacemark = 1ならフェイスマークが置換されます
+// 文章内に' XD'などがあった場合にfacemarkに置換されてしまうため、
+// 必要のない方は $usefacemarkを0にしてください。
+
+// Browser-name only
+$facemark_rules = array();
+switch ($ua_name) {
+
+ // Graphic icons for imode HTML 4.0, with Shift-JIS text output
+ // http://www.nttdocomo.co.jp/mc-user/i/tag/emoji/e1.html
+ // http://www.nttdocomo.co.jp/mc-user/i/tag/emoji/list.html
+ case 'DoCoMo':
+
+ $facemark_rules = array(
+ // Face marks
+ '\s(\:\))' => '秊', // smile
+ '\s(\:D)' => '秊', // bigsmile
+ '\s(\:p)' => '', // huh
+ '\s(\:d)' => '', // huh
+ '\s(XD)' => '聯', // oh
+ '\s(X\()' => '聯', // oh
+ '\s(;\))' => '', // wink
+ '\s(;\()' => '練', // sad
+ '\s(\:\()' => '練', // sad
+ '&(smile);' => '秊',
+ '&(bigsmile);'=> '秊',
+ '&(huh);' => '',
+ '&(oh);' => '聯',
+ '&(wink);' => '',
+ '&(sad);' => '練',
+ '&(heart);' => '撚',
+ '&(worried);'=> '',
+
+ // Face marks, Japanese style
+ '\s(\(\^\^\))' => '秊', // smile
+ '\s(\(\^-\^)' => '秊', // smile
+ '\s(\(\.\.;)' => '聯', // oh
+ '\s(\(\^_-\))' => '', // wink
+ '\s(\(--;)' => '練', // sad
+ '\s(\(\^\^;\))' => '', // worried
+ '\s(\(\^\^;)' => '', // worried
+
+ // Push buttons, 0-9 and sharp
+ '&(pb1);' => '驪',
+ '&(pb2);' => '麗',
+ '&(pb3);' => '黎',
+ '&(pb4);' => '力',
+ '&(pb5);' => '曆',
+ '&(pb6);' => '歷',
+ '&(pb7);' => '轢',
+ '&(pb8);' => '年',
+ '&(pb9);' => '憐',
+ '&(pb0);' => '戀',
+ '&(pb#);' => '礪',
+
+ // Others
+ '&(zzz);' => '簾',
+ '&(man);' => '凌',
+ '&(clock);' => '丹',
+ '&(mail);' => '亮',
+ '&(mailto);'=> '拾',
+ '&(phone);' => '',
+ '&(phoneto);'=> '沈',
+ '&(faxto);' => '若',
+ );
+ break;
+
+ // Graphic icons for Vodafone (ex. J-PHONE) cell phones
+ // http://www.dp.j-phone.com/dp/tool_dl/web/picword_top.php
+ case 'J-PHONE':
+
+ $facemark_rules = array(
+ // Face marks
+ '\s(\:\))' => chr(27).'$Gv'.chr(15), // '', // smile
+ '\s(\:D)' => chr(27).'$Gv'.chr(15), // '', // bigsmile => smile
+ '\s(\:p)' => chr(27).'$E%'.chr(15), // '', // huh
+ '\s(\:d)' => chr(27).'$E%'.chr(15), // '', // huh
+ '\s(XD)' => chr(27).'$Gx'.chr(15), // '', // oh
+ '\s(X\()' => chr(27).'$Gx'.chr(15), // '', // oh
+ '\s(;\))' => chr(27).'$E&'.chr(15), // '', // winkじゃないけどね(^^; (※目がハート)
+ '\s(;\()' => chr(27).'$E&'.chr(15), // '', // sad
+ '\s(\:\()' => chr(27).'$Gy'.chr(15), // '', // sad
+ '&(smile);' => chr(27).'$Gv'.chr(15), // '',
+ '&(bigsmile);'=> chr(27).'$Gw'.chr(15), // '',
+ '&(huh);' => chr(27).'$E%'.chr(15), // '',
+ '&(oh);' => chr(27).'$Gx'.chr(15), // '',
+ '&(wink);' => chr(27).'$E&'.chr(15), // '', // winkじゃないけどね(^^; (※目がハート)
+ '&(sad);' => chr(27).'$Gy'.chr(15), // '',
+ '&(heart);' => chr(27).'$GB'.chr(15), // '',
+ '&(worried);'=> chr(27).'$E('.chr(15), // '',
+
+ // Face marks, Japanese style
+ '\s(\(\^\^\))' => chr(27).'$Gv'.chr(15), // smile
+ '\s(\(\^-\^)' => chr(27).'$Gv'.chr(15), // smile
+ '\s(\(\.\.;)' => chr(27).'$Gx'.chr(15), // oh
+ '\s(\(\^_-\))' => chr(27).'$E&'.chr(15), // winkじゃないけどね(^^; (※目がハート)
+ '\s(\(--;)' => chr(27).'$E&'.chr(15), // sad
+ '\s(\(\^\^;\))' => chr(27).'$E('.chr(15), // worried
+ '\s(\(\^\^;)' => chr(27).'$E('.chr(15), // worried
+
+ // Push buttons, 0-9 and sharp
+ '&(pb1);' => chr(27).'$F<'.chr(15), // '',
+ '&(pb2);' => chr(27).'$F='.chr(15), // '',
+ '&(pb3);' => chr(27).'$F>'.chr(15), // '',
+ '&(pb4);' => chr(27).'$F?'.chr(15), // '',
+ '&(pb5);' => chr(27).'$F@'.chr(15), // '',
+ '&(pb6);' => chr(27).'$FA'.chr(15), // '',
+ '&(pb7);' => chr(27).'$FB'.chr(15), // '',
+ '&(pb8);' => chr(27).'$FC'.chr(15), // '',
+ '&(pb9);' => chr(27).'$FD'.chr(15), // '',
+ '&(pb0);' => chr(27).'$FE'.chr(15), // '',
+
+ // Others
+ '&(zzz);' => chr(27).'$E\\'.chr(15),
+ '&(man);' => chr(27).'$G!'.chr(15),
+ '&(clock);' => chr(27).'$GF'.chr(15), // '',
+ '&(mail);' => chr(27).'$Fv'.chr(15),
+ '&(mailto);'=> chr(27).'$E#'.chr(15),
+ '&(phone);' => chr(27).'$G)'.chr(15),
+ '&(phoneto);'=> chr(27).'$E$'.chr(15),
+ '&(faxto);' => chr(27).'$G+'.chr(15),
+ );
+ break;
+
+ case 'UP.Browser':
+
+ // UP.Browser for KDDI cell phones' built-in icons
+ // http://www.au.kddi.com/ezfactory/tec/spec/3.html
+ if (preg_match('#^KDDI#', $ua_agent)) {
+ $facemark_rules = array(
+ // Face marks
+ '\s(\:\))' => '<img localsrc="68">', // smile
+ '\s(\:D)' => '<img localsrc="257">', // bigsmile
+ '\s(\:p)' => '<img localsrc="264">', // huh
+ '\s(\:d)' => '<img localsrc="264">', // huh
+ '\s(XD)' => '<img localsrc="260">', // oh
+ '\s(X\()' => '<img localsrc="260">', // oh
+ '\s(;\))' => '<img localsrc="348">', // wink
+ '\s(;\()' => '<img localsrc="259">', // sad
+ '\s(\:\()' => '<img localsrc="259">', // sad
+ '&(smile);' => '<img localsrc="68">',
+ '&(bigsmile);'=> '<img localsrc="257">',
+ '&(huh);' => '<img localsrc="264">',
+ '&(oh);' => '<img localsrc="260">',
+ '&(wink);' => '<img localsrc="348">',
+ '&(sad);' => '<img localsrc="259">',
+ '&(heart);' => '<img localsrc="415">',
+ '&(worried);'=> '<img localsrc="351">',
+
+ // Face marks, Japanese style
+ '\s(\(\^\^\))' => '<img localsrc="68">', // smile
+ '\s(\(\^-\^)' => '<img localsrc="68">', // smile
+ '\s(\(\.\.;)' => '<img localsrc="260">', // oh
+ '\s(\(\^_-\))' => '<img localsrc="348">', // wink
+ '\s(\(--;)' => '<img localsrc="259">', // sad
+ '\s(\(\^\^;\))' => '<img localsrc="351">', // worried
+ '\s(\(\^\^;)' => '<img localsrc="351">', // worried
+
+ // Push buttons, 0-9 and sharp
+ '&(pb1);' => '<img localsrc="180">',
+ '&(pb2);' => '<img localsrc="181">',
+ '&(pb3);' => '<img localsrc="182">',
+ '&(pb4);' => '<img localsrc="183">',
+ '&(pb5);' => '<img localsrc="184">',
+ '&(pb6);' => '<img localsrc="185">',
+ '&(pb7);' => '<img localsrc="186">',
+ '&(pb8);' => '<img localsrc="187">',
+ '&(pb9);' => '<img localsrc="188">',
+ '&(pb0);' => '<img localsrc="325">',
+ '&(pb#);' => '<img localsrc="818">',
+
+ // Others
+ '&(zzz);' => '<img localsrc="261">',
+ '&(man);' => '<img localsrc="80">', // Face of male
+ '&(clock);' => '<img localsrc="46">',
+ '&(mail);' => '<img localsrc="108">',
+ '&(mailto);'=> '<img localsrc="784">',
+ '&(phone);' => '<img localsrc="85">',
+ '&(phoneto);'=> '<img localsrc="155">', // An ear receiver
+ '&(faxto);' => '<img localsrc="166">', // A FAX
+ );
+ }
+ break;
+