SHOJI's Code
 仕事や趣味で書いた各種言語のプログラミングコード(エクセルVBA,PHP,C/C++/C#,JavaScript等)、その他雑記。
2017.10<<123456789101112131415161718192021222324252627282930>>2017.12
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

管理しているサイトで、絵文字に対応していないブログに絵文字を表示したいと考えた。
で、そのサイトではブログはお店からのお知らせ用に使用しており、詳しくは書かないが投稿も別ページからPHPを使って投稿している。
そこで、そのPHPで絵文字を #xf840; などに変換する。その後ブログ側でJavaScriptにて画像に変換するようにした。
function emoji_convert(txt)
{
var i;
var url = "http://xxx.xxx.xxx";

// iモード(DoCoMo)絵文字の変換
while( txt.match(/#x(f[89][4-9a-f][0-9a-f]);/i) )
{
txt = RegExp.leftContext
+ '<img src="'+url+'/icon.php?c=i/'
+ RegExp.$1.toLowerCase()
+ '" align="absmiddle" border=0>'
+ RegExp.rightContext;
}

// EZWeb(au)絵文字の変換
while( txt.match(/#x(f[3-7][4-9a-f][0-9a-f]);/i) )
{
txt = RegExp.leftContext
+ '<img src="'+url+'/icon.php?c=e/'
+ RegExp.$1.toLowerCase()
+ '" align="absmiddle" border=0>'
+ RegExp.rightContext;
}

// vodafone絵文字の変換
while( txt.match(/#x1B;$([x21-x7A])([x21-x7A]+)#x0F;/i) )
{
txt = RegExp.leftContext;

for(i=0;i txt += '<img src="'+url+'/icon.php?c=j/'
+RegExp.$1+bin2hex(RegExp.$2.charCodeAt(i))
+'" align="absmiddle" border=0>';

txt += RegExp.rightContext;
}

// その他のコードを変換
while( txt.match(/#x([0-9a-f]+);/i) )
{
txt = RegExp.leftContext
+ String.fromCharCode(eval("0x"+RegExp.$1))
+ RegExp.rightContext;
}

return txt;
}

function bin2hex(dec)
{
var hex = "";
while( dec )
{
var last = dec & 15;
hex = String.fromCharCode(((last>9)?55:48)+last) + hex;
dec >>= 4;
}
if( hex.length==1 ) hex = "0" + hex;
return hex;
}


詳しくは書かないが、icon.phpはコードを渡して対応する絵文字画像を返すPHPスクリプトである。
あまり詳細には説明しない。今回は備忘録なので・・・(^^;)

テーマ:JavaScript - ジャンル:コンピュータ
コメント
この記事へのコメント
コメントを投稿する

管理者にだけ表示を許可する
トラックバック
この記事のトラックバックURL
この記事へのトラックバック
copyright © 2004-2006 SHOJI, Powered By FC2ブログ all rights reserved.
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。