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|null $kodlama = null): string

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

Değiştirgeler

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 değiştirgesinde 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.

Sürüm Bilgisi

Sürüm: Açıklama
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 add a note

User Contributed Notes 4 notes

up
4
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
1
d at safetypub dot org
19 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
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
-31
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