标题大小写 包含一个或多个姓氏的字符串,同时处理带撇号的名称

2022-08-30 10:59:16

我想标准化用户提供的字符串。我希望第一个字母大写为名字,如果他们输入了两个姓氏,则将名字和第二个名字大写。例如,如果有人输入:

marriedname maidenname

如果存在两个以上的名称,它将将其转换为依此类推。Marriedname Maidenname

另一种情况是当某人的名字中有一个撇号时。如果有人输入:

o'connell

这需要转换为 。O'Connell

我正在使用:

ucfirst(strtolower($last_name));

但是,正如您所知道的,这并不适用于所有方案。


答案 1

这将大写所有单词的首字母,以及紧跟在撇号后面的字母。它将使所有其他字母小写。它应该适用于您:

str_replace('\' ', '\'', ucwords(str_replace('\'', '\' ', strtolower($last_name))));

答案 2

你可以试试这个词

<?php echo ucwords(strtolower('Dhaka, JAMALPUR, sarishabari')) ?>

结果是:Dhaka, Jamalpur, Sarishabari


推荐