Собственно, тут даже не PHP, а regexp, понадобилось мне автоматически фильтровать сообщения в чате, куда случился наплыв рекламы от китайцев.
Уж не знаю, кто их навел и что они собирались рекламировать в русскоязычном чате, но как факт - надо было их заткнуть, а количество их было достаточно высоким и сообщения достаточно разнообразными. Соответственно, общее было только одно - все они были на китайском языке.
Решение нашлось.
Код:
function hasChineseCharacters(string $str): bool {
$pattern = "/\p{Han}/u";
return preg_match($pattern, $str) === 1;
}
// Пример использования:
$str1 = "Hello, world!";
$str2 = "你好世界";
if (hasChineseCharacters($str1)) {
echo "В строке 1 есть китайские символы\n";
}
if (hasChineseCharacters($str2)) {
echo "В строке 2 есть китайские символы\n";
}
Оказывается, символы делятся еще на группы, и Han - китайский язык. Если кто-то знает, где именно перечисляются другие группы, прошу сообщить.