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

search for in the

mb_convert_encoding> <mb_check_encoding
Last updated: Fri, 30 Jan 2009

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, 30 Jan 2009
 
add a note add a note User Contributed Notes
mb_convert_case
Justin
17-Dec-2008 06:42
Retouching Alex's example so it works:

function titleCase($string, $exceptions = array('to', 'a', 'the', 'of', 'by', 'and', 'with', 'UI', 'V','X')) {
   
        $words = explode(" ", $string);
        $newwords = array();
        foreach ($words as $word)
        {
            if (!in_array($word, $exceptions)) {

                $word = strtolower($word);
                $word = ucfirst($word);
            }
            array_push($newwords, $word);
        }
        return join(" ", $newwords);
    }       

It doesn't work for Irish names, etc. So keep that in mind.
info at yasarnet dot com
04-Jul-2008 09: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 01: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 04: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
04-Feb-2006 06: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 11: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, 30 Jan 2009
 
 
show source | credits | sitemap | contact | advertising | mirror sites