Les fonctions PHP travaillant sur des chaînes en multi-octets telles que mb_substr, mb_strlen sont beaucoup plus lentes en PHP7, comme certains ont pu le constater. Dans le cas d'une boucle, le ralentissement est clairement visible.
Une astuce consiste à repasser en ISO-8859-1, via utf8_decode, puis à utiliser les fonctions équivalentes, et à remettre l'UTF8 en fin de traitement via utf8_encode. Exemple :
Deviendra :
L'inconvénient de cette astuce est que certains caractères, comme le signe euro, n'ont pas d'équivalence en ISO-8859-1. Il est possible toutefois de les remplacer par leurs entités HTML (€ par exemple) avant le décodage UTF-8.
RSS | Informations |