Recherche fonction PHP spécifique

Nouveau WRInaute
Bonjour à tous,

J'ai un petit souci concernant la réecriture d'un texte à cause des accents :cry:

Je voulais savoir s'il existait une fonction PHP qui "nettoie" le texte c'est à dire :

- les caractères accentués sont remplacés par une lettre ( exemple: vélo>velo)

- et les espaces entre les mots par un tiret (-) ( exemple: velo bleu> velo-bleu)

Je suis bloqué à cause de cela pour la réecriture , j'espère que vous pourrez m'aider

merci

:lol:
 
WRInaute discret
ton bonheur se trouve la :

Code:
function nettoyer($text) {
  define("SEPARATEUR", "-");
  $tofind = "àáâãäåòóôõöøèéêëçìíîïùúûüÿñ";
  $replac = "aaaaaaooooooeeeeciiiiuuuuyn";
  $text = strtr(strtolower($text),$tofind,$replac);
  $text = ereg_replace("[^a-z0-9]", SEPARATEUR, $text);
  while (strstr($text, SEPARATEUR . SEPARATEUR))
    $text = str_replace(SEPARATEUR . SEPARATEUR, SEPARATEUR, $text);
  return(ereg_replace(SEPARATEUR . "$", "", $text));
}

exemple d'utilisation :

Code:
<?php
$mavariable="éô le vélo bleu";
echo nettoyer($mavariable);
?>

ça donne :

eo-le-velo-bleu
 
Nouveau WRInaute
Ma méthode :

setlocale(LC_CTYPE, 'fr_FR');
$Resultat = iconv('UTF-8', 'ASCII//TRANSLIT', $ChaineAConvertir);

le cas échéant, tu remplaces UTF-8 par ton encodage.
 
Nouveau WRInaute
grand merci pour votre aide qui plus est rapide , cela va beaucoup m'aider car j'étais bloqué.

Sinon est il possible de faire la meme chose avec la fonction preg_replace qui selon moi est plus puissant
:roll:

sinon les propositions me conviennent
merci :) :D
 
WRInaute passionné
mouai

néanmoins il y a de gros avantages à passer par les index ascii

rog
 
Nouveau WRInaute
c'est quand meme bien de t'etre penché sur la question pigeondecombat :lol:

mais il est vrai que le code d'etrusco est mieux écrite :p

et pour ce qu'il en est du meme code avec la fonction preg_replace personne n'a d'idées?
 
Discussions similaires
Haut