8796 sujets

Développement web côté serveur, CMS

Bonjour,

J'ai une fonction qui fonction bien lorsque je la met ds la page "index.php" mais ne fait pas bien son boulo lorsque je là met dans un autre fichier et je fais un include , les lettres é ne se transforme pas en e, la lettre est supprimer et non remplacé par contre les espace entre mots sont bien remplacé par des -, donc la fonction "post_slug" fonctionne

//traitement de fichier  post_slug($str)
function remove_accent($str) 
			{
				
				$a = array('À', 'Á', 'Â', 'Ã', 'Ä', 'Å', 'Æ', 'Ç', 'È', 'É', 'Ê', 'Ë', 'Ì', 'Í', 'Î', 'Ï', 'Ð', 'Ñ', 'Ò', 'Ó', 'Ô', 'Õ', 'Ö', 'Ø', 'Ù', 'Ú', 'Û', 'Ü', 'Ý', 'ß', 'à', 'á', 'â', 'ã', 'ä', 'å', 'æ', 'ç', 'è', 'é', 'ê', 'ë', 'ì', 'í', 'î', 'ï', 'ñ', 'ò', 'ó', 'ô', 'õ', 'ö', 'ø', 'ù', 'ú', 'û', 'ü', 'ý', 'ÿ', 'ƒ','Ž', 'ž'); 
 				$b = array('A', 'A', 'A', 'A', 'A', 'A', 'AE', 'C', 'E', 'E', 'E', 'E', 'I', 'I', 'I', 'I', 'D', 'N', 'O', 'O', 'O', 'O', 'O', 'O', 'U', 'U', 'U', 'U', 'Y', 's', 'a', 'a', 'a', 'a', 'a', 'a', 'ae', 'c', 'e', 'e', 'e', 'e', 'i', 'i', 'i', 'i', 'n', 'o', 'o', 'o', 'o', 'o', 'o', 'u', 'u', 'u', 'u', 'y', 'y','z','z','z'); 
 				 return str_replace($a, $b, $str); 
			} 
function post_slug($str) 
			{ 
			
			  return strtolower(preg_replace(array('/[^a-zA-Z0-9 -]/', '/[ -]+/', '/^-|-$/'),array('', '-', ''), remove_accent($str))); 
			 } 


Je pense que c'est un problème de caractère ds le fichier include mais j'arrive pas à trouver. Smiley sweatdrop

D'autre fonctions ds ce fichier fonction.inc.php traitent du teste et fonctionnent bien

merci de votre aide


cedric
Modifié par drick (14 Apr 2011 - 18:17)
Le fichier index.php et le fichier pointé par le include ont-ils le même encodage ?
Une autre possibilité de dysfonctionnement : la fonction ne serait-elle pas définie plusieurs fois dans ton projet ?

Si tu traites ÿ et æ pourquoi ne traites-tu pas Ÿ et œ ?
merci pour ta réponse, la fonction n'est pas défini plusieurs fois, ce qui est surprenant tout les atres fonction fonctionne bien !!
j'ai changé les non des variables mais rien y fait, je les ai placé ds un autre fichier include "configuration.inc.php" et sa fonction Smiley eek
il me semble lorsqu'il y a un doublon sur les fonction, il y a un message d'erreur donc pas de prob a ce niveau là


merci de m'éclairer car là je ne comprend pas

http://construction-materiaux.com
Modifié par drick (15 Apr 2011 - 09:21)
Salut Drick,

Adrien a sans doutes déjà répondu à ton problème :

a écrit :
Le fichier index.php et le fichier pointé par le include ont-ils le même encodage ?


En gros, est-ce que ton fichier index.php et ton fichier qui contient la fonction ont le même encodage ?

Exemple pour connaitre l'encodage d'un fichier (et pour le changer) via Notepad++ :
upload/3270-21-04-20111.jpg