Lors de l'utilisation de la fonction pathinfo()
de PHP sur un nom de fichier connu pour être UTF-8, il ne renvoie pas la valeur correcte, sauf si des caractères 'normaux' devant le personnage spécial.Faire PHP pathinfo() retourner le nom de fichier correct si le nom de fichier est UTF-8
Exemples:
pathinfo('aä.pdf')
retourne:
Array
(
[dirname] => [the dir]
[basename] => aä.pdf
[extension] => pdf
[filename] => aä
)
ce qui est bien et dandy, mais pathinfo('äa.pdf')
retourne:
Array
(
[dirname] => [the dir]
[basename] => a.pdf
[extension] => pdf
[filename] => a
)
Ce qui est pas tout à fait ce que j'attendais. Pire encore, pathinfo('ä.pdf')
retours:
Array
(
[dirname] => [the dir]
[basename] => .pdf
[extension] => pdf
[filename] =>
)
Pourquoi fait-il cela? Cela vaut pour tous les caractères accentués que j'ai testés.
La plupart des fonctions PHP de base ne traitent pas de jeux de caractères autres que ISO-8859-1 (Latin-1). Vous êtes seulement une option réelle est de ré-implémenter la fonction vous-même en utilisant des fonctions sécurisées multi-byte charset (fonctions 'mb_string') – ircmaxell
quelle version de PHP exécutez-vous? – ajreal
@ajreal c'est PHP 5.2.6-1 + lenny9 sur debian lenny – Zsub