PHP 8.3.4 Released!

mb_convert_kana

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

mb_convert_kanaBir "kana" dizgeyi diğerine ("zen-kaku", "han-kaku" vs.) dönüştürür

Açıklama

mb_convert_kana(string $dizge, string $kip = "KV", ?string $kodlama = null): string

Belirtilen dizgeye "han-kaku" - "zen-kaku" dönüşümü uygular. İşlev sadece Japonca için kullanılabilir.

Bağımsız Değişkenler

dizge

Dönüştürülecek dizge

kip

Dönüşüm seçeneği.

Aşağıdaki seeneklerin bir birleşimi olarak belirtilebilir.

Olası Dönüşüm Seçenekleri
Seçenek Anlamı
r "zen-kaku" (tam geniş) harfleri "han-kaku" (yarı geniş) harflere dönüştürür.
R "han-kaku" harfleri "zen-kaku" harflere dönüştürür.
n "zen-kaku" sayıları "han-kaku" sayılara dönüştürür.
N "han-kaku" sayıları "zen-kaku" sayılara dönüştürür.
a "zen-kaku" harfleri ve sayıları "han-kaku"'ya dönüştürür.
A "han-kaku" harfleri ve sayıları "zen-kaku"'ya dönüştürür. ("a" ve "A" seçeneklerine dahil karakterler: U+0022, U+0027, U+005C, U+007E hariç U+0021 - U+007E)
s "zen-kaku" boşluğu "han-kaku" boşluğa dönüştürür (U+3000 -> U+0020).
S "han-kaku" boşluğu "zen-kaku" boşluğa dönüştürür (U+0020 -> U+3000).
k "zen-kaku kata-kana" kodlamasından "han-kaku kata-kana" kodlamasına dönüştürür.
K "han-kaku kata-kana" kodlamasından "zen-kaku kata-kana" kodlamasına dönüştürür.
h "zen-kaku hira-gana" to "han-kaku kata-kana" kodlamasına dönüştürür.
H "han-kaku kata-kana" kodlamasından "zen-kaku hira-gana" kodlamasına dönüştürür.
c "zen-kaku kata-kana" kodlamasından "zen-kaku hira-gana" kodlamasına dönüştürür.
C "zen-kaku hira-gana" kodlamasından "zen-kaku kata-kana" kodlamasına dönüştürür.
V Sesli gösterimi kapatıp bir karaktere dönüştürür. "K","H" ile kullanılır.

kodlama

kodlama bağımsız değişkeninde karakter kodlaması belirtilir. Belirtilmediği takdirde veya null ise dahili karakter kodlaması kullanılır.

Dönen Değerler

Dönüştürülen dizge.

Hatalar/İstisnalar

Farklı kip'lerin birleşimi geçersizse ValueError istisnası oluşur. Örneğin, "sS".

Sürüm Bilgisi

Sürüm: Açıklama
8.2.0 Farklı kip'lerin birleşimi geçersizse artık ValueError istisnası oluşuyor.
8.0.0kodlama artık null olabiliyor.

Örnekler

Örnek 1 - mb_convert_kana() örneği

<?php
/* "kana" kodlamasını "zen-kaku" "kata-kana" yapar*/
$str = mb_convert_kana($str, "KVC");

/* "han-kaku" "kata-kana" kodlamasını "zen-kaku" "kata-kana"
ve "zen-kaku" harf ve sayılarını "han-kaku" yapar */
$str = mb_convert_kana($str, "KVa");
?>

add a note

User Contributed Notes 4 notes

up
2
dn at littlealf dot net
20 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).
up
0
jdavide222 at hotmail dot com
11 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
18 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
-43
sohel62 at yahoo dot com
16 years ago
I did that manually when I was not getting expected result using mb_convert_kana().
<?php
/*
* @author Taslim Mazumder Sohel
* @deprecated 1.0 - 2008/02/19
*
*/
function han_kaku_to_jen_kaku($str){
$replace_of = array('ヴ','ガ','ギ','グ',
'ゲ','ゴ','ザ','ジ',
'ズ','ゼ','ゾ','ダ',
'ヂ','ヅ','デ','ド',
'バ','ビ','ブ','ベ',
'ボ','パ','ピ','プ','ペ','ポ');
$replace_by = array('ヴ','ガ','ギ','グ',
'ゲ','ゴ','ザ','ジ',
'ズ','ゼ','ゾ','ダ',
'ヂ','ヅ','デ','ド',
'バ','ビ','ブ','ベ',
'ボ','パ','ピ','プ','ペ','ポ');
$_result = str_replace($replace_of, $replace_by, $str);

$replace_of = array('ア','イ','ウ','エ','オ',
'カ','キ','ク','ケ','コ',
'サ','シ','ス','セ','ソ',
'タ','チ','ツ','テ','ト',
'ナ','ニ','ヌ','ネ','ノ',
'ハ','ヒ','フ','ヘ','ホ',
'マ','ミ','ム','メ','モ',
'ヤ','ユ','ヨ','ラ','リ',
'ル','レ','ロ','ワ','ヲ',
'ン','ァ','ィ','ゥ','ェ',
'ォ','ヵ','ヶ','ャ','ュ',
'ョ','ッ','、','。','ー',
'「','」','゙','゚');
$replace_by = array('ア','イ','ウ','エ','オ',
'カ','キ','ク','ケ','コ',
'サ','シ','ス','セ','ソ',
'タ','チ','ツ','テ','ト',
'ナ','ニ','ヌ','ネ','ノ',
'ハ','ヒ','フ','ヘ','ホ',
'マ','ミ','ム','メ','モ',
'ヤ','ユ','ヨ','ラ','リ',
'ル','レ','ロ','ワ','ヲ',
'ン','ァ','ィ','ゥ','ェ',
'ォ','ヶ','ヶ','ャ','ュ',
'ョ','ッ','、','。','ー',
'「','」','”','');
$_result = str_replace($replace_of, $replace_by, $_result);
return
$_result;
}
?>
To Top