大写字符串转换

时间:2015-12-31 11:40:38

标签: php string

我有来自源代码的字符串等;

"REAL MADRİD - BARCELONA"
"VİLLAREAL - IDIONA"
"FENERBAHÇE - BEŞİKTAŞ IŞ"
etc.. etc.. etc..

我想将此字符串转换为每个单词的小写和大写第一个字符。(如ucwords)。但是当使用 ucwords 功能时,我遇到İI和其他utf-8字符的问题。

我想要输出这个字符串的输出,如;

"Real Madrid - Barcelona"
"Villareal - Idıona"
"Fenerbahçe - Beşiktaş Iş"

我可以尝试什么? 感谢。

8 个答案:

答案 0 :(得分:1)

我找到了这个功能:

function mb_ucwords($str)
    {
        return mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
    }

答案 1 :(得分:0)

您应该将ucwordsstrtolower php方法组合

一起使用
    $s = "REAL MADRID - BARCELONA";
    $s = ucwords(strtolower($s));

    #Real Madrid - Barcelona

Check out this fiddle

对于utf8字符串而不是 strtolower ,您可以将mb_convert_case方法与 MB_CASE_TITLE 模式一起使用,如:

    $s = "FENERBAHÇE - BEŞİKTAŞ IŞ";
    $s = mb_convert_case($s, MB_CASE_TITLE, "UTF-8");

Check out this fiddle

请注意,如果单词的第一个字母是特殊的utf8种,那么最后一个也将正常工作

答案 2 :(得分:0)

您需要的功能是mb_strtolower()

用法:echo mb_strtolower($str);

有关详细信息,请阅读Manual

答案 3 :(得分:0)

需要使用strtolowerucwords

示例:

$string = "REAL MADRİD - BARCELONA";
$lower = strtolower($string); //first need to convert to lower string
$firstupper = ucwords($lower); //then change every word first letter is upper case

答案 4 :(得分:0)

试试这个

$string = "REAL MADRID - BARCELONA";
$ans = ucwords(strtolower ( $string ));

答案 5 :(得分:0)

试试这个:

<?php

结果是:

<?php

echo ucwords(strtolower('Dhaka, JAMALPUR, sarishabari'));

答案 6 :(得分:0)

我猜你想通了,你应该使用:

mb_strtolower

mb_convert_case

下面:

    $games = array(
    "REAL MADRİD - BARCELONA",
    "VİLLAREAL - IDIONA",
    "FENERBAHÇE - BEŞİKTAŞ IŞ",
    "İSTANBULSPOR A.Ş - FENERBAHÇE İŞ"
);

foreach($games as $game) {
    echo mb_convert_case($game, MB_CASE_TITLE, "UTF-8") . '<br>';
}

它会打印您正在寻找的结果:

Real Madrid - Barcelona
Villareal - Idiona
Fenerbahçe - Beşiktaş Iş
İstanbulspor A.ş - Fenerbahçe İş

为了像A.S一样大写,解决方案将是:

foreach($games as $game) {
    $tmp = str_replace(".",". ",$game);
    echo mb_convert_case($tmp, MB_CASE_TITLE, "UTF-8") . '<br>';
}

你得到:

Real Madrid - Barcelona
Villareal - Idiona
Fenerbahçe - Beşiktaş Iş
İstanbulspor A. Ş - Fenerbahçe İş

当然,您可以创建自己的功能,尤其是在有其他要求的情况下。

答案 7 :(得分:0)

你可以试试这个:

$string = "REAL MADRİD - BARCELONA";
mb_internal_encoding('UTF-8');
$finalString =  mb_convert_case($string, MB_CASE_TITLE);
echo $finalString;

<强>结果:

Real Madrid - Barcelona
相关问题