使大写字母成为名字的第一个字母

时间:2015-04-21 06:08:20

标签: php

我有一个像

这样的变量
$fullname = "dwayne-johnson";

如何制作" d" dwayne这个词的第一个字母和" j"约翰逊这个词?就像我想把大写的每个单词的第一个字母用短划线分隔,例如我有以下变量(参见下文)

$fullname1 = "dwayne-johnson" //expected result is, Dwayne Johnson
$fullname2 = "maria-osana-makarte" //expected result is, Maria Osana Makarte

从上面可以看到,变量fullname1有2个单词用短划线分隔,因此两个单词中的第一个字母都是大写的。第二个变量$ fullname2有3个单词用短划线分隔,因此该变量中每个单词的首字母大写。那么如何使每个单词的第一个字母大写由变量中的破折号分隔?非常感谢任何线索,想法,建议,帮助和建议。谢谢。

PS:我已经有了一个将短划线转换为空格的功能,所以我现在所要做的就是在变量中用短划线分隔每个单词的第一个字母,然后将它变为大写之后我会在它上面注入短划线空间功能。

5 个答案:

答案 0 :(得分:2)

尝试 -

$fullname1 = ucwords(str_replace('-', ' ', $fullname1));

答案 1 :(得分:0)

    <?php $text = str_replace("-", " ", $fullname1);
echo ucwords($text);?>

答案 2 :(得分:0)

您可以使用ucword function

以下是一个例子:

<!DOCTYPE html>
<html>
<body>

<?php
echo ucwords("hello world");
?>  

</body>
</html>

答案 3 :(得分:0)

您可以使用以下代码

$fullname = "dwayne-johnson";
// replace dash by space
$nospaces = str_replace("-", " ", $fullname);
// use ucword to capitalize the first letter of each word, 
// making sure that the input string is fully lowercase
$name = ucword(strtolower($nospaces));

答案 4 :(得分:0)

<?php
$fullname = "dwayne-johnson";
$fullname_without_dash = str_replace("-"," ",$fullname); // gives -> "dwayne johnson"
$fullname_ucword = ucwords($fullname_without_dash); //gives -> "Dwayne Johnson"
echo $fullname_ucword;
?>