PHP 8.5.0 Alpha 1 available for testing

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

mb_convert_kanaConvierte un "kana" en otro ("zen-kaku", "han-kaku" y más)

Descripción

mb_convert_kana(string $string, string $mode = "KV", ?string $encoding = null): string

Realiza una conversión "han-kaku" - "zen-kaku" en la cadena string. Esta función es únicamente útil para los japoneses.

Parámetros

string

La cadena a convertir.

mode

La opción de conversión.

Especifique las conversiones combinando los siguientes valores.

Opciones de conversión disponibles
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"

encoding

El parámetro encoding es la codificación de caracteres. Si es omitido o null, será usado el valor de la codificación de caracteres interna.

Valores devueltos

La cadena convertida.

Errores/Excepciones

Genera un ValueError si la combinación de diferentes mode no es válida. Por ejemplo "sS".

Historial de cambios

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 ahora es nullable.

Ejemplos

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 resultado del ejemplo sería:

やまだ はなこ
コウザバンゴウ 0123456
add a note

User Contributed Notes 3 notes

up
1
jdavide222 at hotmail dot com
12 years ago
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");
up
0
d at safetypub dot org
20 years ago
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.

<?php
mb_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);
?>
up
-1
dn at littlealf dot net
21 years ago
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).
To Top