to make this function work you have to add following two lines above this function.mb_language("Ja");mb_internal_encoding("utf-8");mb_convert_kana($_POST['something_value'], "rna");(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)
mb_convert_kana — Convierte un "kana" en otro ("zen-kaku", "han-kaku" y más)
Realiza una conversión "han-kaku" - "zen-kaku" en la cadena
string. Esta función es únicamente útil para los japoneses.
stringLa cadena a convertir.
modeLa opción de conversión.
Especifique las conversiones combinando los siguientes valores.
| Opción | Significado |
|---|---|
r |
Convierte el alfabeto "zen-kaku" en "han-kaku" |
R |
Convierte el alfabeto "han-kaku" en "zen-kaku" |
n |
Convierte los números "zen-kaku" en "han-kaku" |
N |
Convierte los números "han-kaku" en "zen-kaku" |
a |
Convierte los números y alfabeto "zen-kaku" en "han-kaku" |
A |
Convierte los números y alfabeto "zen-kaku" en "han-kaku". (Los caracteres incluidos en las opciones "a", "A" son U+0021 - U+007E excluyendo U+0022, U+0027, U+005C, U+007E) |
s |
Convierte "zen-kaku" en "han-kaku" (U+3000 -> U+0020) |
S |
Convierte "han-kaku" en "zen-kaku" (U+0020 -> U+3000) |
k |
Convierte "zen-kaku kata-kana" en "han-kaku kata-kana" |
K |
Convierte "han-kaku kata-kana" en "zen-kaku kata-kana" |
h |
Convierte "zen-kaku hira-gana" en "han-kaku kata-kana" |
H |
Convierte "han-kaku kata-kana" en "zen-kaku hira-gana" |
c |
Convierte "zen-kaku kata-kana" en "zen-kaku hira-gana" |
C |
Convierte "zen-kaku hira-gana" en "zen-kaku kata-kana" |
V |
Elimina las notaciones vocales y las convierte en caracteres. Usar con "K","H" |
encodingThe encoding
parameter is the character encoding. If it is omitted or null, the internal character
encoding value will be used.
La cadena convertida.
Genera un ValueError si la combinación de
diferentes mode no es válida.
Por ejemplo "sS".
| Versión | Descripción |
|---|---|
| 8.2.0 |
Ahora se genera un ValueError si la
combinación de diferentes modes no es válida.
|
| 8.0.0 |
encoding is nullable now.
|
Ejemplo #1 Ejemplo con mb_convert_kana()
<?php
/* Convierte todos los "han-kaku" "kata-kana" en "zen-kaku" "hira-gana" */
echo mb_convert_kana('ヤマダ ハナコ', "HV") . "\n";
/* Convierte "han-kaku" "kata-kana" en "zen-kaku" "kata-kana"
y "zen-kaku" alfanumérico en "han-kaku" */
echo mb_convert_kana('コウザバンゴウ 0123456', "KVa") . "\n";
?>El ejemplo anterior mostrará:
やまだ はなこ コウザバンゴウ 0123456
to make this function work you have to add following two lines above this function.mb_language("Ja");mb_internal_encoding("utf-8");mb_convert_kana($_POST['something_value'], "rna");I didn't find Japanese sorting function. (mb_sort_kana or something)Only SJIS encoding treats hankaku kata kana, I can't post here copy & paste version script.I'm sorry...You will replace comments with appropriate japanese string,and write exception handlings between lines as you like.<?phpmb_internal_encoding("SJIS");$moji = /*"aiueo...wawon -?.," <- serialized hankaku kata kana 50 on hyou goes here*/;$moji .= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxwz0123456789";for($i = 0; isset($moji[$i]); $i++){ $pittan[$moji[$i]] = $i;}function cmp($a, $b){ if ($a == $b) { return 0; } return iter(mb_convert_kana($a, "askh") ,mb_convert_kana($b, "askh"), 0);}function iter($a, $b, $i){ global $pittan; if(!isset($a[$i]) || !isset($b[$i])){ return (isset($b[$i]))? -1 : 1; } if ($pittan[$a[$i]] == $pittan[$b[$i]]){ return iter($a, $b, ++$i); } return (($pittan[$a[$i]]) < ($pittan[$b[$i]]))? -1 : 1;}echo "<pre>";$arr = array(/*some japanese array here*/);usort($arr, "cmp");var_dump($arr);?>It seems that mb_convert_kana() doesn't convert symbols such as ' (single quoatation). It affected my program when I insert data into database. So, I've found 2 ways to solve this.1) Use Javascript to convert those non-supported symbols before sending query string to your php page.2) Use php function, str_replace $str, to replace those non-supported symbols. For example, $str = str_replace("'", "?", $str);where the first single quot is half-width(han kaku), and the second one is full-width(zen kaku).