jd440 Posted May 22, 2013 Share Posted May 22, 2013 (edited) Ayant besoin de mettre la première lettre en majuscule et je viens de découvrir la fonction tools:ucfirst() Mais pourquoi cette fonction plutot que ucfirst()? Merci Edited May 23, 2013 by jd440 (see edit history) Link to comment Share on other sites More sharing options...
Vinum Posted May 22, 2013 Share Posted May 22, 2013 Bonsoir, Très bonne question à laquelle je ne saurais répondre car elles fonct exactement la mème chose. J'ai regardé la fonction dans la classe tools et je ne vois pas ce qu'elle apporte de plus ????? Link to comment Share on other sites More sharing options...
J. Danse Posted May 22, 2013 Share Posted May 22, 2013 La différence se situe dans le support de l'UTF-8. Un exemple rapide et concret ? Le caractère accentué "é" qui reste inchangé avec la fonction native du PHP et qui se transforme bien en "É" avec la fonction PrestaShop ;-) Link to comment Share on other sites More sharing options...
2FR3 Posted May 22, 2013 Share Posted May 22, 2013 La différence se situe dans le support de l'UTF-8. Un exemple rapide et concret ? Le caractère accentué "é" qui reste inchangé avec la fonction native du PHP et qui se transforme bien en "É" avec la fonction PrestaShop ;-) Merci 1 Link to comment Share on other sites More sharing options...
Vinum Posted May 23, 2013 Share Posted May 23, 2013 Bonjour, J.Danse, tu es sur de ça ? Car la fonction tools::ucfirst utilises : return Tools::strtoupper(Tools::substr($str, 0, 1)).Tools::substr($str, 1); C'est à dire qu'elle utilise strtoupper pour mettre en majuscule. Or la doc php dit : Description string strtoupper ( string $string ) strtoupper() retourne string, après avoir converti tous les caractères alphabétiques en majuscules. Notez que la notion d'"alphabétique" est déterminée par la configuration de localisation. Cela signifie que pour la configuration par défaut "C", les caractères tels que les voyelles accentuées (comme é, è ou à) ne seront pas converties. Et cela dit la même chose pour ucfirst. Donc normalement, dans les deux cas si la localisation est bonne cela doit retourner les bons caractères et non si elle n'est pas bonne. Donc a priori les deux fonctions font la même chose. Ou ai je tort ??? Link to comment Share on other sites More sharing options...
J. Danse Posted May 23, 2013 Share Posted May 23, 2013 Je suis d'autant plus sur qu'au-delà même de la lecture de la doc', j'ai simplement fait un test hier soir dans un PrestaShop pour test/développement. Le test ? ppp(ucfirst('test')); ppp(Tools::ucfirst('test')); ppp(ucfirst('é')); ddd(Tools::ucfirst('é')); J'ai bien eu ceci en retour: Test Test é É ;-) 1 Link to comment Share on other sites More sharing options...
coeos.pro Posted May 23, 2013 Share Posted May 23, 2013 Bonjour, un peu de lecture : http://www.php.net/manual/fr/function.ucfirst.php#108700 Link to comment Share on other sites More sharing options...
jd440 Posted May 23, 2013 Author Share Posted May 23, 2013 MERCI Link to comment Share on other sites More sharing options...
Vinum Posted May 23, 2013 Share Posted May 23, 2013 Ok et merci de ces éclaircissements. 1 Link to comment Share on other sites More sharing options...
Matista19 Posted May 23, 2013 Share Posted May 23, 2013 Une des raisons pour laquelle Prestashop surcharge des fonctions de base de php est aussi que php gère TRES mal l'utf_ avec beaucoup de fonction !!! Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now