Bonjour,
voila j'essaie de faire un script qui utiliserait le titre d'un article pour en générer une url.
Pour cela il me faut supprimer les mots inférieur a 4 lettres et remplacer les caractères spéciaux et lettres accentués.
j'ai donc fait deux fonctions une pour les caractères spéciaux et lettres accentués et une autre fonction pour les petit mots.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
function generation_url($chaine) 
{
$char = htmlentities(stripslashes(strtolower($chaine)),ENT_QUOTES) ;
 
 $cherche = array(""", "&", "€", "<", ">", "œ", "Ÿ", " ", "¡", "¢", "£", "¤", 
 "&yen", "¦", "§", "¨", "©", "ª", "«", "¬", "*", "®", "&masr;", "°", "±", "²", 
 "³", "´", "µ", "¶", "·", "¸", "¹", "º", "»", "¼", "½", "¾", 
 "¿", "À", "Á", "Â", "Ã", "Ä", "Å", "&Aelig", "Ç", "È", "É", "Ê", 
 "Ë", "Ì", "Í", "Î", "Ï", "ð", "Ñ", "Ò", "Ó", "Ô", "Õ", "Ö", 
 "×", "Ø", "Ù", "Ú", "Û", "Ü", "Ý", "þ", "ß", "à", "á", "â",
 "ã", "ä", "å", "æ", "ç", "è", "é", "ê", "ë", "ì", "í", "î",
 "ï", "ð", "ñ", "ò", "ó", "ô", "õ", "ö", "÷", "ø", "ù", "ú", 
 "û", "ü", "ý", "ÿ", "þ", " ", ",", ";", ".", ":", "!", "?", "/", "(", ")", "{", "}", "[", "]", "+", "=", "*", 
 "~", "'", "'");
 
$remplace = array("", "", "", "", "", "oe", "y", "-", "i", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
 "", "", "", "", "", "", "", "", "", "a", "a", "a", "a", "a", "a", "a", "c", "e", "e", "e", "e", "i", "i", "i", "i", "d", "n", "o", "o", "o", 
 "o", "o", "", "", "u", "u", "u", "u", "y", "", "", "a", "a", "a", "a", "a", "a", "", "c", "e", "e", "e", "e", "i", "i", "i", "i", "o", "n", 
 "o", "o", "o", "o", "o", "", "", "u", "u", "u", "u", "y", "y", "", "-", "", "-", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", 
 "", "-", "-" );
 
return str_replace($cherche, $remplace, $char);
}
et
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
function SupPetitMot($chaine)
	{
		return preg_replace('#(?<=\-)\w{1,3}(?=\-)#i', '', $chaine);
	}
le pb et que lorsque j'utilise ces fonctions sur la chaine je n'ai pas le résultat souhaité:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
echo SupPetitMot(generation_url('l\'été sera chaud et les filles seront belles.')) . '<br />' ;
echo generation_url(SupPetitMot('l\'été sera chaud et les filles seront belles.')) . '<br />' ;
me retourne :
l--sera-chaud---filles-seront-belles
l-ete-sera-chaud-et-les-filles-seront-belles

dans le 1er cas j'ai un l qui traine et plusieurs tirets "-" entre les mots
dans le 2eme cas j'ai des mots de 3 lettres ou moins alors qu'il aurait du être supprimé.

pour le coups je sèche.

merci de votre aide.