如何在PHP中检测特殊字符。我尝试将字符串保存到数据库时出错:
1366错误的字符串值mysql
所以我想在尝试将此字符串输入数据库之前检测到这一点。如何检测这种类型的字符串?我不想将数据库更改为utf8mb4。我需要在插入php端之前检测并跳过此字符串。
我已经尝试了很多方法来做到这一点,例如mb_detect_encoding返回我这个字符串是UTF-8。我找到了这个功能:
public function contains_invalid_characters($text) {
return (bool) preg_match('/[a-zA-Z0-9äöüß "!§$%&\/()=[\]\?.:,;\-_]/u', $text);
}
它可以工作,但这可以从世界各地的语言中检测出很多字符串,我希望在数据库中拥有这些字符串
олей,她的眼睛或眼睛
我只需要检测看起来像图标的字符串或者我不知道如何命名的字符串。任何帮助都会很棒
即使我有同样的问题,这是我在网上找到的解决方案。您可以使用此功能来检测这些特殊字符。
function has_emojis( $string ) {
preg_match( '/[\x{1F600}-\x{1F64F}]/u', $string, $matches_emo );
return !empty( $matches_emo[0] ) ? true : false;
}