基本上,我说有这个字符串:
BolTer LoToRoX iZ No GOud
我只想在每个单词的第一个字母之后小写所有内容,如此
Bolter Lotorox iz No Goud
我已经尝试过使用ucfirst
,ucwords
和strtolower
一段时间了。
ucfirst(strtolower($str));
会给我
Bolter lotorox iz no goud
和
ucwords(strtolower($str));
会给我
Bolter Lotorox Iz No Goud
哪个不是" goud"对我来说。
怎么可以这样做?
答案 0 :(得分:0)
我相信这就是你所追求的:
<?php
function custom_lowercase( $string )
{
// Explode the string by space
$parts = explode( ' ', $string );
// Return first character of each part and lowercase of the remaining parts
$parts = array_map( function($a) {
return mb_substr( $a, 0, 1 ) . strtolower( mb_substr( $a, 1 ) );
}, $parts );
// Return imploded string
return implode( ' ', $parts );
}
$string = 'BolTer LoToRoX iZ No GOud';
echo "Original: " . $string . "<br />";
echo "Custom lowercase: " . custom_lowercase( $string );
?>
答案 1 :(得分:0)
快速而肮脏
<?php
$str = 'BolTer LoToRoX iZ No GOud';
$words = explode(' ',$str);
$out = array();
foreach ($words as $w) {
$len = strlen($w);
$nw = $w[0];
$nw.=strtolower(substr($w,1));
$out[]=$nw;
}
$new_string = implode(' ',$out);
echo $new_string;
die;
?>
答案 2 :(得分:0)
echo implode(' ',
array_map(function($i) { return $i[0] . strtolower(substr($i, 1)); },
explode(' ', $str))); // Bolter Lotorox iz No Goud