文字

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kanaConvert "kana" one from another ("zen-kaku", "han-kaku" and more)

说明

string mb_convert_kana ( string $str [, string $option = "KV" [, string $encoding = mb_internal_encoding() ]] )

Performs a "han-kaku" - "zen-kaku" conversion for string str. This function is only useful for Japanese.

参数

str

The string being converted.

option

The conversion option.

Specify with a combination of following options.

Applicable Conversion Options
Option Meaning
r Convert "zen-kaku" alphabets to "han-kaku"
R Convert "han-kaku" alphabets to "zen-kaku"
n Convert "zen-kaku" numbers to "han-kaku"
N Convert "han-kaku" numbers to "zen-kaku"
a Convert "zen-kaku" alphabets and numbers to "han-kaku"
A Convert "han-kaku" alphabets and numbers to "zen-kaku" (Characters included in "a", "A" options are U+0021 - U+007E excluding U+0022, U+0027, U+005C, U+007E)
s Convert "zen-kaku" space to "han-kaku" (U+3000 -> U+0020)
S Convert "han-kaku" space to "zen-kaku" (U+0020 -> U+3000)
k Convert "zen-kaku kata-kana" to "han-kaku kata-kana"
K Convert "han-kaku kata-kana" to "zen-kaku kata-kana"
h Convert "zen-kaku hira-gana" to "han-kaku kata-kana"
H Convert "han-kaku kata-kana" to "zen-kaku hira-gana"
c Convert "zen-kaku kata-kana" to "zen-kaku hira-gana"
C Convert "zen-kaku hira-gana" to "zen-kaku kata-kana"
V Collapse voiced sound notation and convert them into a character. Use with "K","H"
encoding

encoding 参数为字符编码。如果省略,则使用内部字符编码。

返回值

The converted string .

范例

Example #1 mb_convert_kana() example

<?php

$str  mb_convert_kana ( $str "KVC" );


$str  mb_convert_kana ( $str "KVa" );
?>

用户评论:

[#1] jdavide222 at hotmail dot com [2013-03-11 04:02:00]

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

[#2] sohel62 at yahoo dot com [2008-02-18 21:17:57]

I did that manually when I was not getting  expected result using mb_convert_kana().
<?php
 

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

[#3] d at safetypub dot org [2005-04-01 03:00:19]

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 ;
$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;
    }
    if (
$pittan[$a[$i]] == $pittan[$b[$i]]){
        return 
iter($a$b, ++$i);
    }
    return ((
$pittan[$a[$i]]) < ($pittan[$b[$i]]))? -1;
}

echo 
"<pre>";
$arr = array();
usort($arr"cmp");
var_dump($arr);
?>

[#4] dn at littlealf dot net [2003-07-23 21:33:52]

上一篇: 下一篇: