Je me soucie beaucoup de la capitalisation (probablement trop). J'ai donc écrit une fonction qui fixe la capitalisation partout sur mon site. Je veux essentiellement un "cas de titre" mais à quelques exceptions près ... des mots que je n'aime pas voir capitalisés et des acronymes.PHP - Est-ce un moyen efficace de faire ces changements?
function my_capitals($string)
{
$uc = ucwords($string);
$tokens = explode(' ',$uc);
foreach ($tokens as $key=>$val)
{
if ($val == 'Ipa') $tokens[$key] = 'IPA';
else if ($val == 'Ipas') $tokens[$key] = 'IPAs';
else if ($val == 'Apa') $tokens[$key] = 'APA';
else if ($val == 'Apas') $tokens[$key] = 'APAs';
else if ($val == 'A') $tokens[$key] = 'a';
else if ($val == 'And') $tokens[$key] = 'and';
else if ($val == 'The') $tokens[$key] = 'the';
else if ($val == 'In') $tokens[$key] = 'in';
else if ($val == 'Or') $tokens[$key] = 'or';
else if ($val == 'Of') $tokens[$key] = 'of';
else if ($val == 'To') $tokens[$key] = 'to';
else if ($val == 'On') $tokens[$key] = 'on';
else if ($val == 'At') $tokens[$key] = 'at';
else $tokens[$key] = $val;
}
$final = implode(' ',$tokens);
return $final;
}
Imaginez qu'il pourrait y avoir des options 10-15 et qu'il peut être exécuté 3-5 fois par page sur les chaînes relativement courtes (descriptions d'une ligne et titres).
Ma question est la suivante: Est-ce une manière efficace d'accomplir ce genre de traduction? Ou devrais-je trouver un moyen plus efficace de le faire? Y a-t-il une autre alternative que je ne connais pas, par opposition à juste passer qui a probablement des performances similaires?
double possible de [Ce qui est plus rapide et mieux, cas de commutation ou si d'autre si?] (Https://stackoverflow.com/questions/10773047/which-is-faster-and-better-switch-case -ou-si-autre-si) – Haroon
Que diriez-vous de nouvelles capitales de ligne? Vous voulez aussi les minuscules? – deg
@deg, je n'avais pas envisagé de nouvelles lignes capitales ... Je ne sais pas si celles-ci ne sont pas prises par ma situation actuelle. – JessycaFrederick