Ben bu işlevi İngilizce kelime ve Japonca kelime için farklı bir süreç olmasını istiyorum
function process_word($word) {
if($word is english) {
/////////
}else if($word is japanese) {
////////
}
}
teşekkür ederim
mb_string
uzantısı gerekmez hızlı bir çözüm:
if (strlen($str) != strlen(utf8_decode($str))) {
// $str uses multi-byte chars (isn't English)
}
else {
// $str is ASCII (probably English)
}
Veya bir değişiklik solution provided by @Alexander Konstantinov a>:
function isKanji($str) {
return preg_match('/[\x{4E00}-\x{9FBF}]/u', $str) > 0;
}
function isHiragana($str) {
return preg_match('/[\x{3040}-\x{309F}]/u', $str) > 0;
}
function isKatakana($str) {
return preg_match('/[\x{30A0}-\x{30FF}]/u', $str) > 0;
}
function isJapanese($str) {
return isKanji($str) || isHiragana($str) || isKatakana($str);
}
Bu fonksiyon, bir kelime, en azından bir Japon harfi içerip içermediğini denetler (I Japon harfler için unicode dizi bulundu Wikipedia).
function isJapanese($word) {
return preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $word);
}
Sen charset dönüştürmek ve eğer başarılı olursa kontrol etmek için deneyebilirsiniz.
Iconv bir göz atın: http://www.php.net/manual/en/function.iconv.php
ISO-8859-1 bir dize dönüştürebilirsiniz eğer (ben onlar için google gerektiğini, tam chartsets'ten için yanlış olabilir) Propably japon iso-2022-jp dönüştürebilirsiniz eğer, ingilizce olabilir.