Le problème de ça c'est que tu *sais* que ton code n'est pas portable.
Certes, strlen() fonctionnera sur les chaînes UTF8
Mais ceux qui utilisaient strlen() pour calculer le nombre d'octets (ils sont nombreux vu qu'il n'y avait que ça pour le faire) auront des problèmes. Si tout le code PHP qui tourne n'est pas le tien tu risques des ennuis.
Pire, ça essayera de jouer avec l'UTF8 dans tes champs binaires, types les fichiers compressés. C'est dommage et ça peut casser certaines choses (impossible de retirer les X derniers octets d'un flux binaire opaque).
A partir du moment où tu ne codes que pour mbstring, c'était mieux de le faire explicitement. Tu ne pourris pas tout ce qui cherche à calculer des nombre d'octets, et ça fonctionnera chez ceux qui ont mbstring sans avoir activé l'overload.
De toutes façons chez ceux qui n'ont pas mbstring l'appli aurait buggué donc autant que ça plante en ralant sur mbstring, c'est même presque mieux.
L'overload mbstring c'est à restreindre à des cas très précis. Par exemple l'internationalisation "en catastrophe" d'une appli qui n'était pas prévue pour.
[^] # Re: comme php4
Posté par Éric (site web personnel) . En réponse au journal PHP6: Outch !. Évalué à 2.
Certes, strlen() fonctionnera sur les chaînes UTF8
Mais ceux qui utilisaient strlen() pour calculer le nombre d'octets (ils sont nombreux vu qu'il n'y avait que ça pour le faire) auront des problèmes. Si tout le code PHP qui tourne n'est pas le tien tu risques des ennuis.
Pire, ça essayera de jouer avec l'UTF8 dans tes champs binaires, types les fichiers compressés. C'est dommage et ça peut casser certaines choses (impossible de retirer les X derniers octets d'un flux binaire opaque).
A partir du moment où tu ne codes que pour mbstring, c'était mieux de le faire explicitement. Tu ne pourris pas tout ce qui cherche à calculer des nombre d'octets, et ça fonctionnera chez ceux qui ont mbstring sans avoir activé l'overload.
De toutes façons chez ceux qui n'ont pas mbstring l'appli aurait buggué donc autant que ça plante en ralant sur mbstring, c'est même presque mieux.
L'overload mbstring c'est à restreindre à des cas très précis. Par exemple l'internationalisation "en catastrophe" d'une appli qui n'était pas prévue pour.