携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-
XHTML+CSSで一歩進んだモバイルサイトを作るテクニックを幅広く紹介☆
このエントリーを含むはてなブックマーク このエントリーをブックマークに追加
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


このエントリーを含むはてなブックマーク このエントリーをブックマークに追加
2008年11月25日追記
下記の情報は古くなっています。

最新のスクリプトは以下で配布しています。
http://www.dspt.net/tools/emoji/

3キャリア対応サイトを作成するために、ネックなのは絵文字の互換性。

ドコモの絵文字で入力したページを作成して、他のキャリアの携帯で見ると、auはサーバー側で自動変換されますが、ソフトバンクは対応していないので表示されません。

そこで、キャリアに合わせてドコモ&auとソフトバンクという2ページでページを作るのは面倒だし、
3キャリア別々に作成してもいちいち同じ絵文字を探して入力するのは少々面倒です。

そこで、絵文字を自動変換してくれるスクリプトが登場するわけですが、
僕が探したところフリーってのはなかなかないみたいです。

ということで作ってみました。

絵文字を変換するにあたって、まず考えなくてはならないのは、
絵文字の相互変換表を作ること。

そもそも、キャリアによって用意している絵文字数にはかなり開きがあります。auやソフトバンクに比べて、ドコモは拡張絵文字も含めても230個くらいしかないので、相互変換表を作るにしても、数が合わない以上すべての絵文字を同期させることは不可能です。

したがって、自然な流れとしては一番数の少ないドコモの絵文字に他社を合わせる方法をとるのがふつう。ドコモの絵文字を主体に考えるので、ドコモの絵文字を基準に他社の絵文字はそれと似たものが表示されるような設計にします。

ドコモを基準に考えているので、表示できる絵文字数は少ないのが欠点ですが、スクリプトで自動変換する仕組みはあってこしたことはないので、絵文字変換表を作ることにしました。

これを自分で作るのは面倒なのですが、運良くウノウラボさんでEメール用に絵文字の相互変換リストを公開されていたので、ありがたくダウンロードさせていただいて、自作のプログラムで使いやすいようにカスタマイズしてCSVに変換。

ある程度は変換できない絵文字がゲタ「〓」にならないようにしましたが、それでもまだ残っているので、この辺は自分の好きなように変えてもよいかと思います。

絵文字変換表(emoji.csv)ドコモ→他社

これをもとにPHPで以下のようなプログラムを作成。

PHP絵文字変換スクリプト(sample.txt)

<?php

//絵文字変換表
$emoji_data = "emoji.csv";

//入力値取得
$num = $_GET["emoji"];

//ファイルオープン
$file =fopen($emoji_data, "r");
//変換表を配列に格納
for ($i = 1; $i <= 300; $i++) {
if (feof($file)) {
break;
}
$emoji_array[$i] = fgetcsv($file, 1000, ",");
}
//ファイルクローズ
fclose($file);

function encode($data) {
$data = mb_convert_encoding($data, "SJIS", "auto");
return $data;
}

//携帯UA取得
$agent = $_SERVER["HTTP_USER_AGENT"];

//携帯端末のユーザエージェントを判定
function mobile($data){
if(preg_match("/^DoCoMo\/[12]\.0/i", $data))
{
return "i";// i-mode
}
elseif(preg_match("/^(J\-PHONE|Vodafone|MOT\-[CV]980|SoftBank)\//i", $data))
{
return "s";// softbank
}
elseif(preg_match("/^KDDI\-/i", $data) || preg_match("/UP\.Browser/i", $data))
{
return "e";// ezweb
}
elseif(preg_match("/^PDXGW/i", $data) || preg_match("/(DDIPOCKET|WILLCOM);/i", $data))
{
return "w";// willcom
}
elseif(preg_match("/^L\-mode/i", $data))
{
return "l";// l-mode
}
else {
return "p";// pc
}
}

//携帯キャリアに合わせて絵文字を出力
function emoji($data) {
global $agent,$emoji_array;
if(preg_match("/[0-9]{1,3}/", $data) && is_numeric($data) && 0 < $data && $data < 253) {
switch(mobile($agent)){
case "i";
$put = $emoji_array[$data][1];
break;
case "e";
if (preg_match("/[^0-9]/", $emoji_array[$data][2])) {
$put = $emoji_array[$data][2];
} else {
$put = "<img localsrc=\"".$emoji_array[$data][2]."\" />";
}
break;
case "s";
if (preg_match("/^[A-Z]{1}?/", $emoji_array[$data][3])) {
$put = "\x1B\$".$emoji_array[$data][3]."\x0F";
} else {
$put = $emoji_array[$data][3];
}
break;
case "p";
$put = "[PCでは絵文字は表示されません]";
break;
}
echo $put;
}
else {
echo "[Error!]\n";
}
}

//処理
emoji($num);

?>



使用される場合は、trans.phpなどの名前で保存し、お使いください。携帯端末の判別は携帯電話(機器)情報サイトさんで公開されている携帯端末のユーザエージェント振り分けを参考にしました。

先ほどの絵文字変換表を元にドコモの絵文字を基準に、各キャリアに合わせたフォーマットで絵文字が出力されるようにしています。予期しない入力値は[Error!]を表示します。

携帯サイト用に使うので、あまりセキュリティは考えていない点はご愛敬とさせてください。
要望があれば直そうかな。

で、このPHPスクリプトをどのように呼び出すかということなのですが、
手っ取り早い方法は携帯サイト全体をすべてPHPで運用する方法。

でもこれだと結構いやがる人が多いし、PHPってだけでちんぷんかんぷんになっちゃう人もいるし(ちょっと前の僕がそうです。)、変えたくない一番の理由は、やっぱり今までのHTMLをPHPに変えるのが面倒だから。

ということで、今までのHTMLのまま、そこからこのスクリプトを呼び出すには、
SSIをHTML内に書いてスクリプトを呼び出す方法が最も簡単。

以下のようなSSIを絵文字を表示したい部分に書けばOKです。もちろん、HTMLでSSIを動かすには、.htaccessなどで拡張子htmlでSSIが動くように設定を有効にしておく必要があります。

<!--#include virtual="/php/trans.php?emoji=絵文字番号"-->

(execでの実行形式だと引数を渡せずエラーになります。また、virtualのディレクトリパスに注意。virtualはトップディレクトリからの相対パスで記述します。)


絵文字番号ってところはドコモを基準にしているので、
こちらの表を参考に、書けば良いです。例えば、一番最初の「晴れ」なら、

<!--#include virtual="/php/trans.php?emoji=1"-->

です。

拡張絵文字の番号は、
基本絵文字の最後の番号から続けての連番になります。

ちなみに、自分の携帯はauなので、ドコモやソフトバンクはちょっと未確認。
特にソフトバンクが心配。テスト要員募集です(笑)。

http://www.dspt.net/data/emoji/test.html

こちらに携帯でアクセスしていただいて、ゴルフの絵文字が表示されたらOKでございます。
バグ等あればご指摘くださいませ。

8月31日
ドコモで絵文字が表示されない問題に対応しました。
emoji.csv、sample.txtが変更されています。





管理者にだけ表示を許可する


ソフトバンクの絵文字が違う?
とてもすばらしいスクリプトを提供してくださり有難うございます。
ところで、最近気が付いたのですが、どこも戸ソフトバンクで異なった絵文字が表示されます。
例えば、ドコモではウインクしている絵文字がソフトバンクでは、親指を下にしたブーが表示されます。
調べてみたところかなりの数の間違いがあるみたいです。
これはCSVを修正すればよいのでしょうか?
アドバイスをお願いします<m(__)m>
chiaki | URL | 2009/07/29/Wed 18:30 [EDIT]
docomoの絵文字が表示できません・・
phpで呼び出しで昨日から動作確認をやってますが、docomoの絵文字が表示されないでいます。

//入力値取得
と、
//処理
はコメントアウトし、
require("trans.php");
を書いて、
emoji(絵文字番号);
でauとSoftBankでは表示されているみたいです。

サーバーはcoreserverです。
良きアドバイスなどあればよろしくお願いたします。
かえで | URL | 2009/02/23/Mon 22:07 [EDIT]
お恥ずかしい…
>Canvasさん
その通りでした!
ファイルのパスがあってなかったんですね。

http~/hoge/hogehoge/
にindex(ページのトップ)を置いてテストしていたのですが、
パスが
http~/php/emoji というようにディレクトリ2つ上を参照していました。
こんな初歩的なミスで長文の問い合わせをしてしまい誠に申し訳ありません。

Canvasさん本当にありがとうございました。
kdwk | URL | 2009/02/20/Fri 11:52 [EDIT]
>kdwkさん
自分も先程全く同じ状況で悩んでいましたが、trans.phpの
//絵文字変換表
$emoji_data = "emojix.csv";

//絵文字変換表
$emoji_data = "./php/emoji/emojix.csv";
とすることで解決しましたよ。
参考になれば幸いです。
Canvas | URL | 2009/02/19/Thu 18:11 [EDIT]
PHPからの呼び出しについて
とても便利なスクリプトに出会えて感激しております。

現在動作のチェックを行っていたのですが、エラーが出てしまい、試行錯誤したのですがうまくいきませんでしたので申し訳ありませんがアドバイスいただければと思います。

まず、3キャリア対応のサイトを作るため、phpファイル(各ページのファイル)の冒頭の部分にそれぞれのキャリアに対応したヘッダを記述したHTMLをincludeする方法をとっています。

<?php
$agent = $_SERVER['HTTP_USER_AGENT'];

if (preg_match("/^DoCoMo/2.0/i", $agent)){
header("Content-type: application/xhtml+xml");
echo '<?xml version="1.0" encoding="shift_jis"?>'."n";
include("header/docomo.html");
} else if{
(略)
} else {
//PC
echo '<?xml version="1.0" encoding="shift_jis"?>'."n";
include("header/docomo.html");
}
require("emoji/trans.php");
?>

といった具合で、絵文字変換phpを使えるように過去のカゴメさんとのやりとりを参考に上のように最後に一文を追加し、「処理」と「入力値取得 」のコメントアウトも行いました。

これらの設定をおこない、必要な箇所に

(例)<?php emoji(77) ?>

というように記述したのですが、肝心のファイル名(画像番号)が認識されず、ソースを見ると画像のパスが
http://www.~/emoji/images/.gif」
このようにファイル名が抜けた状態で表示されてしまいます。
また、ページのトップに

Warning: Invalid argument supplied for foreach() in /home/~(略)~/emoji/trans.php on line 30

という警告が出ているのですが、配列の取得がうまくいってないのでしょうか?
実機・エミュレータ・PCのブラウザ等で確認しましたがどれも同様の症状でした。
追加した一文を「$agent =~」の上にもってきたりもしましたがダメでした。
何かアドバイスいただければ幸いです。
どうかよろしくお願いいたします。
kdwk | URL | 2009/02/18/Wed 21:21 [EDIT]
はじめまして
ステキなスクリプトをありがとうございます!すごく便利で重宝しています!

ただ、何人かおられましたがドコモだけ「”絵文字”」となってしまいます。
PHP初心者で何をどうすればいいのかもわからず…
どーいう問題が考えれるのかアドバイスいただけたら嬉しいです。
お忙しいと思いますがよろしくお願いします。
あすみ | URL | 2009/02/18/Wed 16:55 [EDIT]
Re :Re : PC表示用の画像使用について
お返事いただきありがとうございます。

利用規定を確認したところ、管理人さんが作成した画像とのことで
自由に使用しても可とありました。

お手数をお掛けいたしました。
今後ともどうぞ宜しくお願いいたしますm(_ _)m
fuku | URL | 2009/02/17/Tue 23:33 [EDIT]
Re : PC表示用の画像使用について
fukuさん

書き込みありがとうございます。
携帯絵文字変換スクリプトで使用している画像は、こちらで用意したもの
ではなく、My First HDMLさんが公開されている画像を再配布したものです。

■My First HDML
http://www001.upp.so-net.ne.jp/hdml/index.html

画像を個人的に使用する場合はこちらの管理人さんに特にご連絡する
必要はないと思いますが、新たなスクリプトの添付ファイルとして
ホームページなどで公開される場合は、再配布になると思われますので、
その場合は個別に連絡をとっていただければと思います。

shiba | URL | 2009/02/17/Tue 11:49 [EDIT]
PC表示用の画像使用について
こんにちは。fukuと申します。

携帯絵文字変換ができると喜んで試してみたのですが
私の環境では、うまくいかないようで諦めるしかありませんでした。

質問なのですが images - PC表示用絵文字格納フォルダ
に入っているダウンロードした画像のみを利用することは問題ないでしょうか?

ご回答いただけたら嬉しいです。
どうぞよろしくお願いいたします。m(_ _)m
fuku | URL | 2009/02/17/Tue 10:46 [EDIT]
Re : Re : ソフトバンクでWarning文が。
36行目を変えたらWarning文は無事消えました!
ありがとうございます。

初めてモバイルサイト構築していますが、順調にすすむことができ大変感謝しております。
funa | URL | 2009/02/05/Thu 11:55 [EDIT]
Re : ソフトバンクでWarning文が。
funaさん

こんにちは。
Warningが出ているので、動作自体は問題なく動いているようです。
36行目のmb_convert_encoding関数でエラーがでているようですので、
36行目の「$data = mb_convert_encoding($data, "SJIS", "auto");」
を以下のように変えてみてはどうでしょうか。

$data = @mb_convert_encoding($data, "SJIS", "auto");

これでエラーは出なくなると思います。
shiba | URL | 2009/02/04/Wed 13:04 [EDIT]
ソフトバンクでWarning文が。
こんにちわ。ここのところ毎日こちらのサイトと本を参考にさせていただいております。
絵文字変換について、ドコモとauは問題なく表示させることができましたが、ソフトバンク(814t)で、絵文字はすべて変換されているのに以下のような文が表示されました。

Warning: mb_convert_encoding(): Unable to detect character encoding in /home/webext/vdocs/tsuzuki-y/docs/mobile/php/emoji/trans.php on line 36

私はphpはど素人なので、trans.php”初期設定”の”PC用絵文字格納フォルダ”のディレクトリー以外は何も改変しておらず。。。
よろしければ考えられる原因などありましたら教えていただけると幸いでございます。
funa | URL | 2009/02/02/Mon 15:27 [EDIT]
Re : Re : はじめまして
shiba様、アドバイスありがとうございます。
割り込んだ形の投稿で申し訳ありませんでした。
色々試して頑張ってみたいと思います。
Ken | URL | 2009/01/20/Tue 12:11 [EDIT]
Re : お返事ありがとうございます
かずさん

こんにちは。An HTTPDでは、通常のApachサーバーとは異なるので、
SSI周りの設定が必要かもしれません。
配布元(http://win.kororo.jp/archi/www/htaccess.php
では以下の設定が推奨されていますね。

Options Includes
AddType text/html .shtml
AddHandler server-parsed .shtml

この場合ですと、拡張子shtmlでSSIが動作する設定なので、
とりあえず、このように設定して、スクリプトを読み出すHTMLの拡張子を
shtmlに変えてやってみてはいかがでしょうか。

これで、もし動作すれば、本番でも動作すると思いますよ。
shiba | URL | 2009/01/19/Mon 16:04 [EDIT]
Re : はじめまして
Kenさん

書き込みありがとうございます。
こちらで作成した携帯絵文字変換スクリプトは、PHP4をベースに作り、
PHP5については想定していません。

ただ、おそらく提示いただいたURLで設定をうまくすれば、
動作しそうな気もします。
例えば、関連しそうなところでは、
magic_quotes_gpcをOFFにするよい気もしますが。

いろいろと試してみてください。
shiba | URL | 2009/01/19/Mon 15:57 [EDIT]
お返事ありがとうございます
実際にやってみたのですが、全く上手く起動してくれませんでした;
まだ本番サーバではなくローカルサーバである「An httped」を使用しているので、そのせいなのでしょうか、パス指定をしっかり行っても起動してくれません。
.htacessも配布先の内容通りにしてみたのですがこれもダメでした。
もしshiba様のお手すきの時で構いませんので、私自身が作成したデータを見てもらうことは可能でしょうか。

本当に申し訳ありませんが、宜しくお願いします
かず | URL | 2009/01/16/Fri 16:53 [EDIT]
はじめまして
PHP初心者です。

最近まで携帯絵文字変換スクリプトをロリポップサーバで使わせていただいておりました。
その時のサーバはPHP4だったらしいんですが、特に問題もなくとても重宝しておりました。

ところが、サーバをPHP5に切り替えたところ動作がおかしくなり、以下の最新のスクリプトに乗り換えても絵文字の両サイドに「”絵文字”」とダブルクォーテーションが入ったり、うまくインクルードできない行が出てしまったりします。

サーバのPHP5の設定に以下のようなものが追加になったんですが、これらの設定もよくわからずで困っております。
http://lolipop.jp/?mode=manual&state=user&state2=php_ini

ご多忙中大変恐縮ですが、何か解決の糸口でもアドバイスいただけたら幸いです。<(_ _)>
Ken | URL | 2009/01/16/Fri 14:29 [EDIT]
Re : はじめまして
かずさん

こんにちは。サーバーの設定がどうなっているかにもよりますが、
includeコマンドの部分ということであれば、パスが正しいか確認してみてはいかがでしょうか。

homeというフォルダの中のindex.htmlからphpを読み出しているという認識でよろしいでしょうか?

homeフォルダがそのサーバーのトップディレクトリ(一番上の階層)
にあるとし、さらにその下にphpフォルダ以下が存在するのであれば、
おそらく、コマンドは以下のようにあると思われます。

<!--#include virtual="/home/php/emoji/trans.php?emoji=1"-->

また、SSIがHTMLで動作する設定も正しく行われているでしょうか。
このあたりを確認してみてください。
shiba | URL | 2009/01/16/Fri 13:21 [EDIT]
はじめまして
はじめまして、こちらのブログには大変お世話になっています。

今更お伺いするのもなんなのですが、私はPHP素人でして、
「An httpd」を使用してこのスクリプトの動作を確認していたのですが、
どうにも「このSSIのファイルが見つかりません」と表示されてしまいます。
いろいろ試してみたのですがわからなかったので、書かせて頂きました。

おそらく「include」コマンドのトップディレクトリからという部分が理解できていないと思うのですが、現状「home」というフォルダの中にindex.htmlが存在していて、さらにそこから「php→emoji→trans.php」という構成にしています。
素人の質問で申し訳ありませんが、教えて頂けたら幸いです。
かず | URL | 2009/01/15/Thu 21:55 [EDIT]
>daiさん

失礼しました。この絵文字変換スクリプトについてのご質問だったのですね。
勘違いしておりました。すみません。

このスクリプトはPHPで動作するものですから、
おそらくCGIでprintしたXHTML上にSSI表記をしても動作しないと思われます。

ご利用のCGIから本プログラムを読み出すか、php版として
ご利用頂くのがよいのではないかと思います。

shiba | URL | 2008/12/27/Sat 22:36 [EDIT]
Re :Re : CGIの中のHTMLに
お返事ありがとうございます。

Content-type: text/htmlnn と書いていたので、
ご教示いただいたように直してみました。

でも自分のau携帯では表示されませんでした。

普通のHTMLファイル内では表示されることを確認済みですので
設置方法などは合っていると思います。

他に考えられる犯しがちなミスがあったらご指摘願えませんでしょうか。
※ソースを載せようとしたらスパムとみなされ投稿できませんでした(泣)

よろしくお願いします。
dai | URL | 2008/12/27/Sat 05:01 [EDIT]
Re : CGIの中のHTMLに
>daiさん

書き込みありがとうございます。

例えばShift-Jisへの出力であれば、

print "Content-Type: application/xhtml+xml;charset=Shift-JIS\n";

のようにすれば良いと思います。コンテンツMIMEタイプに注意しましょう。
shiba | URL | 2008/12/16/Tue 03:38 [EDIT]
CGIの中のHTMLに
はじめまして。よかったら質問させてください。

CGI(Perl)でprintしているXHTMLでは反映されません。
どうにかして使う方法はありますか?
dai | URL | 2008/12/16/Tue 03:14 [EDIT]
Re : 絵文字の色
ROZさん、書き込みありがとうございます。

span styleによる絵文字色の指定は、一般的にドコモの絵文字についてのみ指定可能です。

その他のキャリアは絵文字が3Dアイコンで表示され、絵文字の色が固定されているため、無視されます。

この変換スクリプトに限って申し上げれば、
キャリア別に”素”の状態の絵文字を出力するため、
絵文字を書き出す際のSSIにオーバーライト(styleを指定したspanタグで囲む)すれば絵文字の色を変えることはできます。
もちろん、その他のキャリアでは、この情報は無視されます。

shiba | URL | 2008/11/22/Sat 00:33 [EDIT]
絵文字の色
span styleを使って絵文字の色は指定できるんでしょうか?
docomoを持っていないので確認できないんで質問させてもらいました。
ROZ | URL | 2008/11/21/Fri 19:27 [EDIT]
PHPのfunction版に改造させていただきました
関数の呼び出しで動くように改造し、
ホームページで公開させていただきました。
といっても、cHTML用しか作成しませんでしたが…。

ところで、csvファイルは
cHTML用とXHTM用が逆ではないでしょうか?
SS | URL | 2008/08/14/Thu 17:01 [EDIT]
””が表示されちゃう・・
さっそくためしてみたのですが、”絵文字”と表示されてしまいます;;
「””」をとるにはどうしたらいいのでしょうか…
コロ | URL | 2008/07/25/Fri 12:39 [EDIT]
ドコモで動くようにした。
ドコモさん文字が出ない原因ですが、要するにfgetcsvが問題みたいですね。修正した物を作ってみました。
http://www.mogya.com/blog/2008/05/post-67.html
もぎゃ | URL | 2008/05/07/Wed 15:36 [EDIT]
ドコモは白黒なの?
sift-jisでSSIで絵文字表示してますが、ドコモは絵文字変換されるけど、メール絵文字みたいにカラーにならないで白黒で絵文字が表示されるんです。
ちなみに、スクリプト使わないで10進数表示するとカラー絵文字

なぜでしょうか?解明不能です。
でこ | URL | 2008/04/05/Sat 09:48 [EDIT]
ドコモでまだ表示されない方・・・
私もドコモの絵文字だけが表示されませんでした。
ここにあるコメントを参考にして試してみたのですが駄目でした。
(私もサーバはxreaを使っています)

で、私の場合はファイルからの読込みを少し変えてみたらうまくいきました。
シバ犬さんの

//ファイルオープン
$file =fopen($emoji_data, "r");
//変換表を配列に格納
for ($i = 1; $i <= 300; $i++) {
if (feof($file)) {
break;
}
$emoji_array[$i] = fgetcsv($file, 1000, ",");
}
//ファイルクローズ
fclose($file);

の部分を

$emoji_array = array();
$emoji_array[] = "";
$contents = @file($emoji_data);
foreach($contents as $line){
$line = rtrim( $line );
$emoji_array[] = explode(",", $line);
}

に変更したらいけました。

原因はわかりませんが、とにかくいけました。
他にドコモで表示できないいたら試してみてください。

一応私のブログにも全ソースを自分が使いやすいように修正して公開しています。

>>シバ犬さん
データファイルありがとうございました。
| URL | 2008/04/04/Fri 21:31 [EDIT]
DoCoMoで表示されない件
わたしも1、2時間悩んだ末ようやく解決しました。
>>ゆーちゃん さんのNewGulimフォント削除の方法でExcelのCSVとして開いたときの文字化けは直りとても勉強になりました。が、もともと秀丸などのテキストエディタで開いた場合は文字化けしてませんでした。
わたしはphpで使わせて頂いてるのですが、NewGulimフォント削除後もDoCoMoでは表示されず、AU,SoftbankではOKでした。
>>Gaku さんや >>オオタスン さんの状況から、スクリプトそのものではなく、サーバー(Apach?)環境による単なる文字化けの線が濃厚な気がしたので、HTMLに絵文字をそのまま打って試したところやはり文字化けだったので、
絵文字を[OK][NEW][ATM]等象形文字?のShift-JISではなく、&#xE708; &#xE6DD; &#xE668; 等のUnicodeに変更したところ、正常に表示されました。(実際は半角英数字です)
DoCoMoだけ文字化けする方はCSVの絵文字部(似ハングル部)をUnicode表記に変更して試してみるといいかもしれません。
とてもすばらしいスクリプトなのでありがたく使わせて頂きます☆
▽テスト環境
DoCoMo P705iμ / AU W51CA & W42S / Vodafone 904SH & Softbank 920SH
Xrea(CoreServerではない)
▽追記
emoji.csvの237~240の絵文字がズレていました。
桜(花見)/おにぎり/ショートケーキ/とっくり(杯・晩酌)
Siraisi | URL | 2008/03/10/Mon 14:28 [EDIT]
絵文字をサイトのメールや掲示板で使用できるようにしたい!
作ったサイト内で絵文字を表すには、trans.phpというファイルを作ってアップすれば良いのですか?そして<!--#include virtual="/php/trans.php?emoji=絵文字番号"-->はそのページに使いたい絵文字の数だけ書き込まないといけないのでしょうか?10個分の絵文字を使えるようにするには絵文字番号を10件書かないといけないのですか?<!--#include virtual="/php/trans.php?emoji=絵文字番号"-->はページの何処に書いたらいいのでしょうか?



久保田 | URL | 2007/12/30/Sun 06:46 [EDIT]
DoCoMoが表示されません。
shtml拡張子で、実行しているんですけど、
DoCoMoは表示されず、auは表示されます。(SoftBank未確認)

なんででしょうか?ちなみにi絵文字支援ツール入れてみました。
オオタスン | URL | 2007/12/27/Thu 18:35 [EDIT]
1ページ内で2つ以上インクルード しようとした時に
あいてぃさんと同じく
>";
}
break;
case "s";
から
//処理
emoji($num);
?>
までがずらっと表示されますね。

| URL | 2007/12/14/Fri 17:57 [EDIT]
coreserverでDocomoの絵文字が表示されず
手軽で便利なスクリプトを作っていただきありがとうございます。
早速使ってみようとしたのですが
Docomoの絵文字がサーバーによっては表示されない状況があります。
XREAではshtml表記で絵文字(実機、およびi-modeシミュレータで確認)が出ますが
coreserver(Xreaの上位プラン)ではDocomoの絵文字が出ません。
なんらかのサーバ設定、および仕様なのだと思い
色々と調べているのですが、いまいち解決策を見つけられないでいます。
もし何かお気づきの点があればご教授いただけると幸いです。
Gaku | URL | 2007/12/13/Thu 08:50 [EDIT]
★お返事ありがとう★
自分なりに調べたらこんなことが書いてました。(↓のi-modeページ下部参照)

http://www.nttdocomo.co.jp/service/imode/make/content/pictograph/tool/



http://support.microsoft.com/default.aspx?scid=kb;ja;417636

で、NewGulimフォントを削除したところ、CSVのハングル文字がきちんと絵文字になりました。

こうしてから、携帯から確認すれば絵文字はちゃんと写りました♪

(ハングルの状態のままの時は、だめでした)

携帯3キャリアで絵文字が映って、とても嬉しいです★

PHPとか、むずかしいから…。

確認したら、.htaccessの設定ができないサーバでしたけど、shtmlって拡張子に

すれば、きっちり映りました♪

これからも参考にさせてもらいたいので、シバ犬さんがんばってくださいね★

ありがとう~ o(+v+)o


ゆーちゃん | URL | 2007/10/26/Fri 20:35 [EDIT]
みなさん、書き込みありがとうございます。
なかなか返信できなくてすみません。

たくさんのコメントありがとうございます。反響があってちょっぴり驚いています。

>パスパスさん
丁寧な改造の解説ありがとうございます。これこそオープンソースの利点ですね。
これを使えば、PCでも絵文字の表示が行えるということですね。
なるほど。改造とか指摘とかバンバン受け付けてますので今後もよろしくお願いします。

>ゆーちゃんさん
CSVが文字化けしているのはたぶん、正常ではないかと思います。
ドコモの絵文字は特殊なバイナリコードですので。外字としてPCにフォントを読み込んでいないと、絵文字を見ることはできませんが、携帯からなら見れると思うのですが…

CSV、PHPのプログラムとも本文に書いてあるものが最新ですので、どちらも新しくしてみてください。


>あいてぃさん
すみません、ソフトバンクで表示されている方もいる点とこちらでソフトバンク携帯を持ち合わせていないという理由から、そういった現象は再現できないので、的確なアドバイスをできません。僕なりに考えられるとしたら、以下の2点ですので確認してみてください。

・HTMLでSSIが動くように設定したか。
・お使いのサーバーがPHPが動く環境になっているか。
シバ犬@管理人 | URL | 2007/10/21/Sun 20:33 [EDIT]
はじめまして
どうしても携帯絵文字表示ができるサイトを作りたくてここにたどりつきました★

そこでさっそく使わせてもらったんですが、ドコモで絵文字が表示されません;;

なんでかな?っとコメント欄を拝見したら、修正済ってなってるし…;;

CSVを確認したところ、ドコモに対応と思われるコードの文字がハングル?みたいになっています…。

修正されてない分をDLしてしまってるということでしょうか?

よろしくお願いします ペコ。。
ゆーちゃん | URL | 2007/10/21/Sun 01:26 [EDIT]
初めまして。すみません。ソースいじりました。
初めまして。いつも、楽しみに拝見しています。
こういうスクリプト探してました。利用させてもらってます。
ありがとうございます。

それでパソコンから見たときに画像が表示されたらいいなと思い、ソース
いじってしまいました。迷惑だったらすみません。

いるかいらないかわかりませんが気になる人へ。


1. emoji.csvの4列目に1.gif~252.gifを挿入


2. emojiフォルダを作り、画像を作成するか、どこからか1~252の画像を拾ってきていれる。フォルダは変更可能。


3. trans.phpを以下追加
・//入力値取得
 $num = $_GET["emoji"]; 下あたりに以下挿入

 //画像保存場所
 $img_dir = "/emoji/"; 2で作成したフォルダ先


・//携帯キャリアに合わせて絵文字を出力のところで、$img_dirを追加
 変更前:global $agent,$emoji_array;
 変更後:global $agent,$emoji_array,$img_dir;


・case "p";のところで、以下追加
 変更前:$put = "[PCでは絵文字は表示されません]";
 変更後:$put = "<img src=\"" . $img_dir . $emoji_array[$data][4] . "\" width=\"12\" height=\"12\" alt=\"\" />";
パスパス | URL | 2007/10/14/Sun 22:18 [EDIT]
エラーが出るんです
はじめまして。あいてぃです。
もし、こちらでこのような質問をするのが、場違いでしたら申し訳ないです。

手元にソフトバンク携帯しかないので、
全キャリアで確認したわけではないのですが、
<!--#include ~ -->と記述した箇所を携帯で確認すると
絵文字の変わりに「trans.php」の

>";
}
break;
case "s";
から

//処理
emoji($num);

?>
までがずらっと表示されます。

色々試したのですが、なぜかわかりません。
もしよろしければ、お教え願います。m(_ _)m
あいてぃ | URL | 2007/10/09/Tue 17:21 [EDIT]
そういう意味ですか。
”絵文字 PHP”で簡単に見つかるサイトなのに
何故見つからないと書かれてるのかと思いまして。
失礼しました。
| URL | 2007/10/02/Tue 18:03 [EDIT]
コメントありがとうございます。
お知らせいただいたリンク先はスクリプト自体はフリーだと思うのですが、
利用登録が必要な時点でオープンソースではないと僕は思っています。
シバ犬@管理人 | URL | 2007/10/02/Tue 16:51 [EDIT]
http://surf-style.us/manual1.htm
ここはフリーじゃないの?
| URL | 2007/10/02/Tue 15:36 [EDIT]
いつもありがとうございます!
早速使わせてもらってます。
php未経験なので、ちょろっとソースも学ばせてもらいました。
一石二鳥♪

いつもわかりやすくて有益な説明を、ありがとうございます!
ゆみっぺ | URL | 2007/09/10/Mon 11:56 [EDIT]
Re : なんとか解決しました^^;
さとさん、

それはよかったですね。使っていただき光栄です。
問題を解決されて一安心です。
こちらもわかりにくく、不親切な記事の書き方ですみませんでした。

今後もお時間ある時にコメントくださいね。
では。
シバ犬@管理人 | URL | 2007/09/07/Fri 16:15 [EDIT]
なんとか解決しました^^;
非公開の件失礼しました。
プログラムの細かな所まで質問してサポートしてもらうまで甘えてしまっていいのかと悩んでしまい・・・^^;(うまく表示できず、焦っていました)

『.htaccess』でSSIを動くように設定するのに知識がなくアクセクしてました。
が、単純にSSIを動かす記述をテキストエディタ書きファイル名を『.htaccess』にするだけで良かったんですね!

凄くシンプルなプログラムで感動しました。
これからもブログ見に来ます。
さとさん | URL | 2007/09/07/Fri 15:47 [EDIT]
さとさんへ
非公開コメントをしていただいたさとさんへ。
もちろんOKです。ただ、コメントが非公開でしたので、ご連絡を差し上げることができなかったため、こちらに書かせていただきました。

差し支えなければコメントを公開して投稿いただければと思います。
シバ犬@管理人 | URL | 2007/09/07/Fri 15:09 [EDIT]
はじめまして
いつも参考にさせていただいております。
少し前に同じようなスクリプトを見つけたのですが、こちらの方が利用しやすいようでしたので、利用させていただきます!
KAIRI | URL | 2007/09/04/Tue 23:24 [EDIT]
はじめまして
このようなスクリプトを探しておりました!
さっそく使わさせて頂きます。^^
シキ | URL | 2007/08/31/Fri 14:47 [EDIT]
今度はどうでしょう?
カゴメさん、

不具合に対応してみましたが、どうでしょうか?
よろしければ確認していただけると助かります。
シバ犬@管理人 | URL | 2007/08/31/Fri 03:49 [EDIT]
追記です。
ごめんなさい、

それと、

//処理
emoji($num);

の部分も

//処理
//emoji($num);

とする必要があります。HTMLとPHPを混同した記述では、スクリプトはHTMLのDOCTYPEよりも前に書いて先ほどのように呼び出します。

PHP単体に書く場合はスクリプトを別ファイル化してPHP内に
require("trans.php");

を書いて、

emoji(絵文字番号);

で呼び出します。
シバ犬@管理人 | URL | 2007/08/30/Thu 15:14 [EDIT]
Re: : ドコモN903i
コメントありがとうございます。

テストありがとうございます。
カゴメさんの書き込みで大きなミスをしていることに気づいてしまいました。

絵文字の変換表のドコモの列の部分が、UnicodeではなくS-JISコードの16進数を書いてしまっていて、これが上手く絵文字に変換されない原因です。
申し訳ないです。直したらまたアップしますね。

それと、php内で呼び出す場合は非常に簡単で、

まず、上記のスクリプトの

//入力値取得
$num = $_GET["emoji"];



//入力値取得
//$num = $_GET["emoji"];

のようにコメントアウトしてから、絵文字を表示させたい部分に

<?php emoji(絵文字番号); ?>

とするだけでOKだと思います。
シバ犬@管理人 | URL | 2007/08/30/Thu 15:05 [EDIT]
ドコモN903i
はじめまして、いつも楽しませていただいております。
私のドコモではテキストしか出てきませんでした、うーん…
ちなみにPHPに呼び出す場合、どのような記述にすればよいのでしょうか?
今度使ってみたいと思っています。
カゴメ | URL | 2007/08/29/Wed 20:35 [EDIT]
Re : SoftBankです
アノニさん、コメントありがとうございます。

SoftBankでもノキアなどの海外製品も気になるところでした。
有用な情報ありがとうございます。v-14
シバ犬@管理人 | URL | 2007/08/29/Wed 14:28 [EDIT]
SoftBankです
SoftBank 702NKⅡ です
ゴルフの絵が見れました^^

スクリプト参考にさせて頂きます!
アノニ | URL | 2007/08/29/Wed 13:02 [EDIT]
Re : SofuBankです
初めまして。コメントありがとうございます。

とりあえずソフトバンクでもOKっぽいですね。
情報ありがとうございました~
シバ犬@管理人 | URL | 2007/08/25/Sat 14:18 [EDIT]
SofuBankです
初めまして。
いつも、拝見させていただいております。

SoftBank 811SH です。正常にゴルフの絵が表示されました。
いまいちゃん | URL | 2007/08/25/Sat 10:07 [EDIT]




Copyright © 携帯サイトを作ろう! -ちょっと詳しいモバイルサイトの作り方-. all rights reserved.

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。