Frage

Ich mag für Wort Englisch unterschiedliche Verfahren haben, und japanisches Wort in dieser Funktion

function process_word($word) {
   if($word is english) {
     /////////
   }else if($word is japanese) {
      ////////
   }
}

Danke

War es hilfreich?

Lösung

Eine schnelle Lösung, die nicht die mb_string Erweiterung benötigt:

if (strlen($str) != strlen(utf8_decode($str))) {
    // $str uses multi-byte chars (isn't English)
}

else {
    // $str is ASCII (probably English)
}

oder eine Modifikation der Lösung zur Verfügung gestellt von @Alexander Konstantinov :

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);
}

Andere Tipps

Diese Funktion prüft, ob ein Wort mindestens einen japanischen Buchstaben enthält (fand ich Unicode-Bereich für japanische Buchstaben in Wikipedia ).

function isJapanese($word) {
    return preg_match('/[\x{4E00}-\x{9FBF}\x{3040}-\x{309F}\x{30A0}-\x{30FF}]/u', $word);
}

Sie könnten versuchen, Google Translation API, die eine Erkennungsfunktion hat: http://code.google.com/apis/ Sprache / translate / v2 / using_rest.html # Ermittlungs- Sprache

Versuchen

mb_detect_encoding Funktion, wenn die Kodierung ist EUC-JP und UTF-8 / UTF-16 kann die japanischen, sonst Englisch sein. Das ist besser, wenn Sie sicherstellen können, die Codierung eines jeden Sprache, als UTF-Codierungen können Sie für viele Sprachen verwendet werden

englischem Text in der Regel nur aus ASCII-Zeichen besteht (oder besser sagen wir Zeichen im ASCII-Bereich).

Sie können versuchen, den Zeichensatz zu konvertieren und überprüfen, ob es erfolgreich ist.

Hier finden Sie aktuelle iconv: http://www.php.net /manual/en/function.iconv.php

Wenn Sie einen String in ISO-8859-1 umwandeln könnte es Englisch sein, wenn Sie iso-2022-jp umwandeln kann es propably japanisch ist (ich könnte falsch für die genauen charsets sein, Sie sollten für sie google) .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top