PHP
downloads | documentation | faq | getting help | mailing lists | reporting bugs | php.net sites | links | conferences | my php.net

search for in the

mb_convert_encoding> <mb_check_encoding
Last updated: Fri, 04 Jul 2008

view this page in

mb_convert_case

(PHP 4 >= 4.3.0, PHP 5)

mb_convert_case — 文字列に対してケースフォルディングを行う

説明

string mb_convert_case ( string $str , int $mode [, string $encoding ] )

mode で指定された方法で string に対してケースフォルディングを行います。

パラメータ

str

変換される文字列。

mode

変換モード。 MB_CASE_UPPERMB_CASE_LOWER あるいは MB_CASE_TITLE のいずれかです。

encoding

encoding パラメータには文字エンコーディングを指定します。省略した場合は、 内部文字エンコーディングを使用します。

返り値

mode で指定された方法で string に対してケースフォルディングを行った結果を返します。

Unicode

標準のケースフォルディング関数である strtolower()strtoupper() と違い、ケースフォルディングは Unicode 文字属性を基準に行われます。したがって、この関数の挙動は ロケールの設定に影響されず、また、すべてのアルファベット、 例えば A ウムラウト (Ä) を変換することができます。

Unicode 文字属性についての詳細は » http://www.unicode.org/unicode/reports/tr21/ を参照してください。

例1 mb_convert_case() の例

<?php
$str 
"mary had a Little lamb and she loved it so";
$str mb_convert_case($strMB_CASE_UPPER"UTF-8");
echo 
$str// Prints MARY HAD A LITTLE LAMB AND SHE LOVED IT SO
$str mb_convert_case($strMB_CASE_TITLE"UTF-8");
echo 
$str// Prints Mary Had A Little Lamb And She Loved It So
?>



mb_convert_encoding> <mb_check_encoding
Last updated: Fri, 04 Jul 2008
 
add a note add a note User Contributed Notes
mb_convert_case
info at yasarnet dot com
04-Jul-2008 03:57
For my case following did the work to capitalize UTF-8 encoded string.

function capitalize($str, $encoding = 'UTF-8') {
    return mb_strtoupper(mb_substr($str, 0, 1, $encoding), $encoding) . mb_strtolower(mb_substr($str, 1, mb_strlen($str), $encoding), $encoding);
}
thomas underscore corthals at hotmail dot com
16-Aug-2006 07:30
If you want to capitalize the first letter of a multibyte string, you can use this function.

<?php
function capitalize($str, $encoding = null) {
    
$str = mb_strtoupper($str{0}, $encoding) . mb_substr($str, 1, null, $encoding);
     return
$str;
}
?>
alex at agileware dot net
07-Feb-2006 11:02
This function is a bit more flexible than using mb_convert_case with MB_CASE_TITLE, because it lets you add words whose case you don't want modified.

function title_case($string, $exceptions = array('to', 'a', 'the', 'of', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X')) {
    $words = split(" ", $string);
    $newwords = array();

    foreach ($words as $word)
    {
        if (!array_key_exists($word, $exceptions)) {
            $word = strtolower($word);
            $word = ucfirst($word);
        }
        array_push($newwords, $word);

    }

    return ucfirst(join(" ", $newwords));
}
footballkid4 at hotmail dot com
05-Feb-2006 01:59
This function will capitalize the first letter ( the same as using mb_convert_case with MB_CASE_TITLE flag, but when using a sentence, it'll only capitalize the first word )

<?php
function capitalize(&$input) {
    
$input = strtoupper( substr( $input , 0 , 1 ) ).strtolower( substr( $input , 1 ) );
     return
$input;
}
?>

Very short, uses substr, strtoupper, and strtoupper only
Rasa Ravi at tantrajoga dot cz
30-Apr-2005 05:36
For CZECH characters:
<?php
$text
= mb_convert_case($text, MB_CASE_LOWER, "Windows-1251");
?>
The right encoding Windows-1250 is not valid (see the list mb_list_encodings), but Windows-1251 will do the same 100%. The function strtolower() ignores czech characters with diacritics.

mb_convert_encoding> <mb_check_encoding
Last updated: Fri, 04 Jul 2008
 
 
show source | credits | sitemap | contact | advertising | mirror sites