我有来自源代码的字符串等;
"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ş"
我可以尝试什么? 感谢。
答案 0 :(得分:1)
我找到了这个功能:
function mb_ucwords($str)
{
return mb_convert_case($str, MB_CASE_TITLE, "UTF-8");
}
答案 1 :(得分:0)
您应该将ucwords与strtolower php方法组合
一起使用 $s = "REAL MADRID - BARCELONA";
$s = ucwords(strtolower($s));
#Real Madrid - Barcelona
对于utf8字符串而不是 strtolower ,您可以将mb_convert_case方法与 MB_CASE_TITLE 模式一起使用,如:
$s = "FENERBAHÇE - BEŞİKTAŞ IŞ";
$s = mb_convert_case($s, MB_CASE_TITLE, "UTF-8");
请注意,如果单词的第一个字母是特殊的utf8种,那么最后一个也将正常工作
答案 2 :(得分:0)
答案 3 :(得分:0)
需要使用strtolower
和ucwords
示例:
$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