- ベストアンサー
携帯サイト絵文字入りのPHPフォームの使い方と問題解決方法を教えてください
- 携帯サイト絵文字入りのPHPフォームを利用している際に発生する問題について質問です。
- 絵文字変換スクリプトとPHPフォームのテンプレートを使用していますが、絵文字が表示されない問題が発生しています。
- 問題の解決方法や、必要な手順について教えていただけると助かります。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
申し訳ございません。 絵文字変換スクリプトを利用しないで、docomo/au/softbankのどれかの絵文字を使ったWebサイトを作成したことがある というのが前提で話してましたが、今回絵文字を扱うのは初めてでしたか? もし、携帯電話向けのWebサイト構築を行ったことがないなら http://34567.jpn.org/study1/emoji/index.html こちらのサイトを参考に絵文字を挿入してみてください。 今回設置したMobilePictogramConverter(以下MPC)の設定はimode絵文字のWebコード記述方法なので 取り急ぎ、適当な場所に以下のように入力して下さい。 「」 docomoの携帯電話で見ると、晴れマーク、曇りマーク、雨マークの順にならびます。 MPCが自動的に変換をかけてくれるのでauの携帯電話でも同様に表示されます。 まず、一度お試しください。 その上で下記が詳細な回答です。 >これはMobilePictogramConverterを使ってhtmlのテンプレートで絵文字を表示させる方法ですか? >それともMobilePictogramConverterを使うということはテンプレート自体をphpにしてしまうということなのでしょうか? 【ご回答】 どちらとも若干違います。 質問者さんが編集したHTMLファイルをWebアプリケーションとして動かすようにmagical-formが パース(テンプレートを解析し、正しく出力する処理)し、ブラウザに出力する直前に 『アクセスしてきたブラウザ(imodeブラウザやPCのIE、Firefoxなど)によって、 絵文字の出力を変換するという前処理』 を行うよう指定しました。 つまりフィルターを一枚かませる、と。 例えば、 最初に記述したものをMPCを使わず表示させると docomoの携帯電話では正しく表示しますが、au/softbankの携帯電話では正しく表示しません。 (一応表示しますが絵文字によって表示がおかしくなったりする) そこでMPCをかませてやれば、アクセスしてきたブラウザを見て、振り分けを行います。 (振り分ける=au/softbankで正しく表示できるバイナリコードに書き換える) 今回設定したやり方は「imode絵文字をWebコードで」記述する場合の設定なので、 絵文字を記述する方法がもし確定して、ソレがimode絵文字のWebコード表記以外の方法で MPCの設定方法が不明であれば、具体的に記述方法を教えていただければ 再度記述するべきコードを記載致します。
その他の回答 (2)
- hogehoge78
- ベストアンサー率80% (433/539)
ご質問の件、分かりました。 【エラーの件】 アップしていただきました、mpcフォルダ内のCarrierフォルダ、 この中の「ezweb.php」「softbank.php」「foma.php」これらのファイルを開いていただきまして、 先頭にある、 ------------------------------- require_once 'common.php'; ------------------------------- とある部分を、全て ------------------------------- require_once dirname(__FILE__).'/common.php'; ------------------------------- に修正し、修正したものを再度上書きでアップロードしてください。 これでエラーが解消されます。 この現象は、質問者さん、または質問者さんが利用されているアプリケーションが、「common.php」と同名のファイル名で、include_pathを指定しているからです。 include_pathに指定したファイルは、require/include/require_once/include_onceなどのファイル読み出し命令でフォルダ名まで指定しないでファイル名だけで呼び出せるようにすることが出来る為、優先順位が高いほうを読んでしまったので、エラーが出ました。 直、本現象は、該当ライブラリのブログページのコメント欄に他のユーザが情報を上げていたものです。(先人に感謝) 【imgフォルダの画像に関して】 MobilePictogramConverterは、携帯電話及びそれ以外のPCなど、全てで絵文字表示が行えるようにするためのライブラリになります。 その為、PCで表示した場合に、絵文字を出力する際、画像にして出力するようになってます。 これは、例えば掲示板(BBS)アプリケーションを作成した場合に、色々な端末から書き込みが行われても、全ての端末で、それぞれの絵文字を表示できるようにしたい場合に有用です。 【注意事項】 MobilePictogramConverterは、無償で利用できますが、サイト上の「ライセンス」部分と「注意事項」部分は目を通すようにして下さい。 以上です。
お礼
hogehoge78様、度々ありがとうございます。 何度も申し訳ないのですがどうしても分からないのでまたお尋ねしても良いですか? おかげさまで先に出ていたエラーは教えていただいた内容にて解決しました。お調べいただいてしまい、恐縮です。 根本的な質問に戻るのですが、hogehoge78様が今回教えて下さったのは、magic-formのテンプレート中に絵文字を表示させる方法ですよね? これはMobilePictogramConverterを使ってhtmlのテンプレートで絵文字を表示させる方法ですか? それともMobilePictogramConverterを使うということはテンプレート自体をphpにしてしまうということなのでしょうか? 私にはどうしてもMobilePictogramConverterの使い方が分かりませんでした。開発者さまのブログなどを拝見するとphpを用意するようですが、それがmagic-formで使用するテンプレートになるのでしょうか? 物分りが悪く申し訳ありません。何度もごめんなさい。 ※「ライセンス」「注意事項」拝見しております。
- hogehoge78
- ベストアンサー率80% (433/539)
SSIは通常、PHPファイル上で使うことが出来ないようです。 Googleアタリで、「SSI PHP」を検索してみると悩ましい人がたくさん居ました。 さらに今回の場合ですとSSIの代わりにHTML中にPHPコードを埋め込もうと思っても、magical-formの仕様上、上手く行きません。 解決策としては、MobilePictogramConverterという別の絵文字変換ライブラリを利用した上で、magical-formを修正するしかないようです。 コード自体の改変は、数行程度に収まりましたので、お伝えいたします。 【1】MobilePictogramConverterをダウンロード http://php-develop.org/MobilePictogramConverter/ こちらからダウンロード。 【2】設置 ダウンロードしたZIPファイルを解凍し、フォルダを「mpc」と変更。 そのフォルダ内に入っているimgフォルダをmagial-formのindex.phpと同じフォルダにアップロードします。 その後、mpcフォルダもアップロード 【3】index.phpの改変 一番最後の行に ------------------------- echo $html_v; ------------------------- とあると思いますので、これを ------------------------- require_once './mpc/MobilePictogramConverter.php'; $mpc =& MobilePictogramConverter::factory($html_v, MPC_FROM_FOMA, MPC_FROM_CHARSET_SJIS, MPC_FROM_OPTION_WEB); $mpc->setImagePath('./img/'); echo $mpc->autoConvert(); ------------------------- とします。 これで絵文字を表示することが出来るようになると思います。 ただし、上記の記述方法ですと、imode絵文字のWEBコードで記述する場合の例です。auの絵文字で、softbankの絵文字で記述する場合は MPC_FROM_FOMAとなっている部分を、MPC_FROM_EZWEBなどと変更する必要があります。 また、バイナリコードでの記述を行う場合は、MPC_FROM_OPTION_WEBを、MPC_FROM_OPTION_RAWなどと変更する必要があります。 MobilePictogramConverterの詳しい、便利な使用方法は、余力がありましたら該当サイトにてお調べください。
お礼
hogehoge78様、ご回答ありがとうございます。 スクリプトを2つも使用し、かなり面倒だったにも関わらずとても丁寧に教えて下さり、本当にありがとうございます。 おかげさまでmagical-formのindex.htmlで絵文字が表示できました!!嬉しいです~。 ご報告として手順を書かせていただきます。 1)教えていただいた別の絵文字変換スプリクトをDLさせていただきました。 2)ディレクトリを └magic-form └index.php//magic-formのindex.php(質問文中のform.php) └mb.html//テンプレート(質問文中のtemp.html) └img//mpcフォルダ内のimgフォルダ └mpc//DLしたmpcフォルダ としました。 3)テンプレートのmb.htmlに<img src="img/i/63647.gif" alt=""~>として絵文字を入れました。 4)これでアップロード だけでできたのです。 教えていただいたようにmagic-form中のindex.phpを変更したら Warning: require_once(./jcode/jcode.php) [function.require-once]: failed to open stream: No such file or directory in /usr/local/lib/php/common.php on line 42 Fatal error: require_once() [function.require]: Failed opening required './jcode/jcode.php' (include_path='.:/usr/local/lib/php') in /usr/local/lib/php/common.php on line 42 というエラーになってしまいました。そこでindex.phpに何も手を加えずに(echo $html_v;のまま)単に上記ディレクトリでアップしたら表示されました。 PCと3キャリアともで表示が確認できたのですが、おかしいのでしょうか? 一応もう少し質問締め切らずにおきますのでもし何かあったらコメントいただけますか? でも、とりあえず解決したと思うのでお忙しかったらご無理なさらないで下さい。2~3日空けておいてお返事なければこのまま締め切らせていただきます。 本当にありがとうございました!
補足
hogehoge78様、度々すみません。 全然解決してませんでした…。お恥ずかしい限りです。確かに絵文字は表示されてるんですが、img~で指定しているのでauでもsoftbankでもdocomoの絵文字になっています。一つしか絵文字を表示させずに確認していたので全然気づきませんでした。よく考えれば当たり前です。 ということはつまりmpcの使い方そのものを間違っていますよね。mpc配布先のブログを読んでみたのですがさっぱりです。 こんな私に救いの手を差し伸べていただけませんか?…すみません!
お礼
hogehoge78様、遅くまで本当にありがとうございます。 できました!できましたー!!きれいにお天気が表示されてます。 本当にありがとうございます。 >今回絵文字を扱うのは初めてでしたか? はい、初めてなんです。そもそも携帯サイト自体が初めてで右も左も分からない感じなのです。自分の状況説明が不足しており申し訳ありませんでした。なのにhogehoge78様が謝ったりしないで下さい。 ご説明いただいてようやく理解できました。 本当にありがとうございます。 やっとこれで家に帰れます…。 朝から晩までお付き合いいただいてしまい、申し訳ありませんでした。 こんなに助けていただいたのに、どうにもお礼ができなくて心苦しいです。何でもしたい気分です。 教えて下さったことを糧に精進します。ほんとうに、ありがとうございました!