Prenez deux cordes:Nice moyen facile de capitaliser des noms tels que "o'sullivan"?
"o'sulLivAn"
"doUble-baRrel"
Résultat souhaité:
"O'Sullivan"
"Double-Barrel"
Je pensais que ucwords(strtolower($str))
pourrait faire l'affaire, mais il traite les cordes comme un seul mot.
Je sais que je peux explode
, ou plutôt preg_split
la chaîne et ensuite capitaliser les pièces et les remettre ensemble, mais je me demande s'il y a une meilleure façon de le faire?
Habituellement, avec PHP et ce genre de chose, il y a une fonction cachée quelque part qui serait utile mais pas évidente ou bien connue.
Ce problème est très difficile en raison des variations énormes comment les noms sont capitalisés. Si vous voulez vraiment simplement mettre en majuscule après un caractère non-alpha, alors le fractionnement et le réassemblage sont probablement les plus faciles à coder. Cependant, considérez une entrée comme "vanhalen" ou "thooft", qui pourrait être "VanHalen" et "tHooft", ou "vanHalen". Que faites-vous avec "vandermies", qui pourrait valablement être "VanDerMies", ou "vanDerMies"? Est-ce que c'est une partie du problème que vous essayez de résoudre? –
@Jim Heureusement non! Si l'utilisateur entre une chaîne de cette manière, il devra être traité comme il l'a saisi. – bcmcfc