====== Flottants vs locales ====== PHP sait formater un flottant en fonction de la locale (catégorie LC_NUMERIC) : setlocale(LC_NUMERIC, NULL); echo 3.14; Affichera 3,14 (pour une locale française) Par contre, gare à l'ensemble des casts, même implicites, de float vers string (penser au SQL) car le point de la partie décimale sera modifié. Plus grave, de cette particularité : L'information locale est maintenue par processus, non par thread. Si vous faites fonctionner PHP sur un serveur multi-threadé comme IIS ou Apache sur Windows, vous pourriez obtenir des changements soudains des configurations locales pendant qu'un script fonctionne, même si celui-ci n'appelle jamais la fonction setlocale(). Ceci survient à cause des autres scripts qui fonctionnent dans des threads différents du même processus. Ces scripts changent les configurations locales dans le processus au complet en utilisant la fonction setlocale(). ====== Connaître sa locale (sans la modifier) ====== La documentation est imprécise, une valeur NULL comme %%''%% (chaîne vide) sous Windows la modifie pour celle du système. La valeur correcte est bien '0' : var_dump(setlocale(LC_NUMERIC, '0')); ====== PDO/MySQL : limiter la casse en cas d'injection ====== Déplacé, mis à jour et développé sur [[http://www.julp.fr/blog/posts/13-pdo-et-mysql-limiter-les-degats-en-cas-d-injection-sql]]