8768 sujets

Développement web côté serveur, CMS

Bonjour à tous
J'ai défini une fonction qui traduit une chaîne de caractères en ASCII, quel que soit le codage de cette chaîne.
Si je la mets dans un programme de test

<?php
	function plainASCII($text) {
		return iconv("UTF-8", "ASCII//TRANSLIT//IGNORE", transliterator_transliterate('Any-Latin; Latin-ASCII', $text));
	}
	$text = "A æ Übérmensch på høyeste nivå! ? ? ????? PHP! ????. ?";
	var_dump(plainASCII($text));
?>

J'obtiens bien:
string(56) "A ae Ubermensch pa hoyeste niva! I a lublu PHP! est?. fi" 


Par contre si j'essaie de la mettre dans un programme plus complexe, qui contient de nombreuses autres fonctions, le programme plante au chargement.
Je suppose qu'il y a une incompatibilité avec "autre chose" dans mon environnement, mais quoi?
Cela se produit lorsque l'on a deux classes de même nom dans deux fichiers PHP et qu'on charge simultanément par include, mais là il n'y a aucune classe de définie.
Auriez vous une idée sur les raisons de ce phénomène?
Merci de votre aide.
Erreur de ma part: il y avait une fonction "plainASCII" dans un des fichiers php de mon environnement, j'aurais dû me souvenir que PHP ne prend pas la casse des caractères en compte dans le nom des fonctions ! Smiley confused
Modifié par PapyJP (09 Feb 2019 - 15:37)