Bonsoir,

Je suis à la recherche d'une fonction au bout de code qui permetrais de supprimer tous les accents d'une chaine, les caractères du genre oe, ç... et tous les caractères non alphanumérique afin de faire de la réécriture d'url, j'ai bien trouvé des petits bout de fonction mais cela ne fonctionne pas dans tous les cas

voici ma dernière trouvail, un peu modifié déjà :
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
24
25
26
27
28
29
30
 
function rewrite($texte)
{
// Définition des caracteres accentués
$car_speciaux = array( 'A', 'Á', 'Â', 'A', 'Ä', 'A', 'A', 'a', 'á', 'â', 'a', 'ä', 'a', 'a', 'E', 'É', 'E', 'Ë', 'e', 'é', 'e', 'ë', 'I', 'Í', 'Î', 'I', 'i', 'í', 'î', 'i', 'O', 'Ó', 'Ô', 'O', 'Ö', 'O', 'o', 'ó', 'ô', 'o', 'ö', 'o', 'U', 'Ú', 'U', 'Ü', 'u', 'ú', 'u', 'ü', 'ß', 'Ç', 'ç', 'D', '?', 'N', 'n', '?', '?', 'Ý' );
// ... et de leurs "équivalents" non-accentués
$car_normaux = array( 'A', 'A', 'A', 'A', 'A', 'A', 'A', 'a', 'a', 'a', 'a', 'a', 'a', 'a', 'E', 'E', 'E', 'E', 'e', 'e', 'e', 'e', 'I', 'I', 'I', 'I', 'i', 'i', 'i', 'i', 'O', 'O', 'O', 'O', 'O', 'O', 'o', 'o', 'o', 'o', 'o', 'o', 'U', 'U', 'U', 'U', 'u', 'u', 'u', 'u', 'B', 'C', 'c', 'D', 'd', 'N', 'n', 'P', 'p', 'Y' );
 
// On commence par supprimer les accents
$texte = str_replace($car_speciaux, $car_normaux, $texte);
 
// On supprime les entités html
$texte = strip_tags( $texte );
 
// On remplace les caracteres non-alphanumériques par le séparateur $sep_mots
$texte = preg_replace( "/[^A-Za-z0-9]+/", "-", $texte );
 
// On supprime le séparateur s'il se trouve en début ou fin de chaîne
$texte = trim( $texte, "-" );
$texte = trim( $texte, "_" );
 
// On limite la chaine a un nombre maxi de caracteres (ici 50 caracteres)
$texte = substr( $texte, 0, 150 );
 
// On convertit le tout en minuscules
$texte = strtolower( $texte );
 
// On retourne le résultat
return ( $texte );
}
Mais celle ci ne s'occupe que des accents et encore le è n'est pas pris en compte car la fonction me retourne un -

Merci d'avance pour votre aide
bonne soirée
@+
ludo