我注意到在我网站上注册的人非常懒惰,因为他们甚至不打扰自己的名字。
我的网站是一个面向业务的网站,所以这里没有“自我表达自由”的论点。
首字母大写非常容易,因为我无法想到西方名字不会以大写字母开头的单一实例。我错了。
但是将姓氏大写变得更加困难,名称如
O'Brien
O´Flaherty
de Wit
McKenzie
Auditore da Firenze
de los Remedios de Escalada
Virta-Jokela
在PHP中使用适当的自动大写字母来解决这个问题的好方法是什么呢?我知道this。
答案 0 :(得分:4)
这是一个快速而肮脏的解决方案:
O"
翻译为O'
)并考虑不带前缀的单词进入下一步。答案 1 :(得分:1)
起初,这似乎是一项简单的工作:只需将您在姓氏中遇到的每个单词都大写。因此foo bar
将成为Foo Bar
。
但是,正如您已经指出的那样,也有例外:
这可以通过一个你不想大写的片段黑名单来解决(给出这个例子的'de','da','de los')。但是你错误地认为'De','Da'和'De Los'不存在应该大写的(部分)姓氏。
所以简单地说:不,这不可能做得很好,只有半智能。
答案 2 :(得分:-1)
它使每个字母的第一个字符为$name = ucwords(strtolower($name));
对于超过95%的案例,这是准确的。
目前尚不清楚,您希望de los Remedios de Escalada
如何?使用上面的表达式,它将变为De Los Remedios De Escalada
。如果需要,我不确定。
另一种方法是用“”爆炸名称,并使用ucword()