На странице произошла ошибка #S51. Свяжитесь с вебмастером. PHP 5.6 и PHP 7 на русском: Функция mb_convert_kana() - Преобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

mb_convert_kana

(PHP 4 >= 4.0.6, PHP 5)

mb_convert_kanaПреобразование кодировок "kana" из одной в другую ("zen-kaku", "han-kaku" и другие)

Описание

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

Поизводит преобразование "han-kaku" - "zen-kaku" для агрумента string str. Эта функция может быть полезной только для японского языка.

Список параметров

str

Исходная строка string.

option

Настройка конвертации.

Задается комбинацией следующих настроек.
Возможные настройки преобразования
Настройка Описание
r Преобразование "zen-kaku" букв в "han-kaku"
R Преобразование "han-kaku" букв в "zen-kaku"
n Преобразование "zen-kaku" чисел в "han-kaku"
N Преобразование "han-kaku" чисел в "zen-kaku"
a Преобразование "zen-kaku" букв и чисел в "han-kaku"
A Преобразование "han-kaku" букв и чисел в "zen-kaku" (Для настроек "a", "A" символы берутся из диапазона U+0021 - U+007E, исключая U+0022, U+0027, U+005C, U+007E)
s Преобразование "zen-kaku" пробела в "han-kaku" (U+3000 -> U+0020)
S Преобразование "han-kaku" пробела в "zen-kaku" (U+0020 -> U+3000)
k Преобразование "zen-kaku kata-kana" в "han-kaku kata-kana"
K Преобразование "han-kaku kata-kana" в "zen-kaku kata-kana"
h Преобразование "zen-kaku hira-gana" в "han-kaku kata-kana"
H Преобразование "han-kaku kata-kana" в "zen-kaku hira-gana"
c Преобразование "zen-kaku kata-kana" в "zen-kaku hira-gana"
C Преобразование "zen-kaku hira-gana" в "zen-kaku kata-kana"
V Производит свертку фонем и преобразует их в символ. Используется с "K","H"

encoding

Параметр encoding представляет собой символьную кодировку. Если он опущен, вместо него будет использовано значение внутренней кодировки.

Возвращаемые значения

Преобразованная строка string.

Примеры

Пример #1 Пример использования mb_convert_kana()

<?php
/* Преобразование всех символов "kana" в "zen-kaku" "kata-kana" */
$str mb_convert_kana($str"KVC");

/* Преобразование "han-kaku" "kata-kana" в "zen-kaku" "kata-kana" 
   и "zen-kaku" alpha-numeric в "han-kaku" */
$str mb_convert_kana($str"KVa");
?>

Коментарии

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).
2003-07-24 00:33:52
http://php5.kiev.ua/manual/ru/function.mb-convert-kana.html
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;
    }
    if (
$pittan[$a[$i]] == $pittan[$b[$i]]){
        return 
iter($a$b, ++$i);
    }
    return ((
$pittan[$a[$i]]) < ($pittan[$b[$i]]))? -1;
}

echo 
"<pre>";
$arr = array(/*some japanese array here*/);
usort($arr"cmp");
var_dump($arr);
?>
2005-04-01 06:00:19
http://php5.kiev.ua/manual/ru/function.mb-convert-kana.html
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;
    }
?>
2008-02-18 23:17:57
http://php5.kiev.ua/manual/ru/function.mb-convert-kana.html
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");
2013-03-11 06:02:00
http://php5.kiev.ua/manual/ru/function.mb-convert-kana.html

    Поддержать сайт на родительском проекте КГБ