問題 スマートフォンなどから絵文字が送信されてくるのですが、MySQLに格納するときにSQLがぶった切られて困っています。 UTF-8で4byteになる文字を排除したいのですが、どうやって判定するとよいですか。 答え 勝手に削除するなら、こうする。 $str = preg_replace('/[\xF0-\xF7][\x80-\xBF][\x80-\xBF][\x80-\xBF]/', '', $str); preg_match() で、4byte文字が混ざっているかどうかを見て、入力チェックのエラーにするのもよいでしょう。
![【php】4バイト文字を削除する at softelメモ](https://cdn-ak-scissors.b.st-hatena.com/image/square/1547f4b97eb50bd09e99d5f897a6c447ee41f867/height=288;version=1;width=512/https%3A%2F%2Fwww.softel.co.jp%2Fblogs%2Ftech%2Ffb.png)