スレッド表示 | フラット表示〕 全トピック 920 件中 137 番目 次≫ ≪前

[au]PHPメール送信フォームから絵文字が入力された場合削除したい

created: 2007-02-16 15:06 | modified: 2007-02-19 14:01 | reply: 4

[3582] [au]PHPメール送信フォームから絵文字が入力された場合削除したい

user: MiniDora | created: 2007-02-16 15:06
PHPのメール送信フォームからauにて絵文字が入力された場合絵文字のみを削除したいのですがどのようにしたらよいのでしょうか?
PHP側にていくつか処理を入れてみたのですがうまくいかないようでして…。
ereg_replace("[E][B-E][A-Z_0-9]{2,2}","");
ereg_replace("[7][A-Z_0-9]{3,3}","");
ereg_replace("[F][A-Z_0-9]{3,3}","");
reply: 3583 返信 編集 削除

[3583] Re.[au]PHPメール送信フォームから絵文字が入力された場合削除したい

user: さとし | created: 2007-02-16 15:27
こんにちは。

試してないので分かりませんが、内部文字コードで
再変換したら消えてくれませんか?

$msg = mb_convert_encoding($msg, 'SJIS');
Parent: 3582  reply: 3584 返信 編集 削除

[3584] SJISに変換した場合

user: MiniDora | created: 2007-02-16 15:46
さとし様、ご返信ありがとうございました。

入力画面にて
あ[絵文字]か
と入力した場合変換後、確認画面にて
あ?か
と表示されてしまいます。

ereg_replaceにて削除をしたいのですがどう指定していいのかがいまいちわかりません。
Parent: 3583  reply: 3587 返信 編集 削除

[3587] 文字コードの指定は16進数

user: ゆうじ | created: 2007-02-17 02:05
こんばんわ。

ereg_replace("[E][B-E][A-Z_0-9]{2,2}","");

まず、この書き方では絵文字のコードではなく
テキスト中のアルファベットや数字そのものにマッチしてしまうでしょう。

絵文字コードが表してる F659 などの文字は
文字コードを16進数で表したもので、
絵文字番号1番の三角で囲んだ!マーク「F659」の場合、
1バイト目「F6」に2バイト目「59」が続く
合計2バイトでひとつの絵文字を表します。

正規表現でこれを表すには
「\x」で始まる 0-9A-F の組み合わせになります。
ですので「F659」は「\xF659」になります。

でも実際は1バイト目と2バイト目のグループに分けで
範囲指定することになるので [\xF6][\x59] のようになります。


現在の絵文字コードの仕様を知りませんので
正規表現だけでいければいいですが、
がんばってみてください。
Parent: 3584  reply: 3605 返信 編集 削除

[3605] 解決しました

user: MiniDora | created: 2007-02-19 14:01
ご指摘いただいたように変更をしましたところ解決いたしました。
ありがとうございました。
Parent: 3587  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 137 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑