SOFTELメモ Developer's blog

会社概要 ブログ 調査依頼 社員募集 ...

【php】4バイト文字を削除する

問題

スマートフォンなどから絵文字が送信されてくるのですが、MySQLに格納するときにSQLがぶった切られて困っています。

UTF-8で4byteになる文字を排除したいのですが、どうやって判定するとよいですか。

答え

勝手に削除するなら、こうする。

$str = preg_replace('/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/', '', $str);

preg_match() で、4byte文字が混ざっているかどうかを見て、入力チェックのエラーにするのもよいでしょう。

関連するメモ

コメント