#1 24-07-2006 17:30:49

tom_sawyer
Search & Replace
Lieu: Lyon
Date d'inscription: 29-09-2005
Messages: 2068
Site web

Normalisation de caractères par php

Bonjour

attention newbie :D
j'ai un problème avec un petit bout de php

Code:

$text = preg_replace('/[^A-Za-z0-9'.$allow.' ]/e','',$text);

je voudraisplutôt que de virer les caractères accentués genre é à è,  que ceux-ci soient remplacé par leur homologues non-accentués. Quelqu'un aurait une idée pour faire ça siouplé ?

Merci d'avance pour le coup de main :)

Hors ligne

 

#2 24-07-2006 17:46:53

Vincent
Tagglers
Lieu: Bordeaux supérieur
Date d'inscription: 10-07-2005
Messages: 349

Re: Normalisation de caractères par php

dans un de mes scripts, moi j'utilise ceci :

Code:

    $maville = strtr($item->ville, ",'âàäçéèêëîïôöùûü&?: ", "--aaaceeeeiioouuu...-");

origine des expressions - Splopre kiwoui - Ma nouvelle piscine cherche des amis.

Hors ligne

 

#3 24-07-2006 18:11:30

tom_sawyer
Search & Replace
Lieu: Lyon
Date d'inscription: 29-09-2005
Messages: 2068
Site web

Re: Normalisation de caractères par php

Merci vincent smile

j'ai testé ce code mais sans succès

Code:

$text = strtr($text, 'âàäçéèêëîïôöùûü', 'aaaceeeeiioouuu');
$text = preg_replace('/[^A-Za-z0-9'.$allow.' ]/e','',$text);

Suis-je passé à côté d'un truc ? (ça serait pas étonnant big_smile)

Hors ligne

 

#4 24-07-2006 18:14:47

fbparis
Survivors
Lieu: Paris
Date d'inscription: 14-07-2006
Messages: 1896
Site web

Re: Normalisation de caractères par php

moi j'utilise ça :

Code:

$newTerms = strtr($term,'àâäéèêëîïôöùûüçÀÂÄÉÈÊËÎÏÔÖÙÛÜÇ','aaaeeeeiioouuucAAAEEEEIIOOUUUC');

Hors ligne

 

#5 24-07-2006 19:09:38

pagetronic
Pre-Malgache
Lieu: skynet.mars
Date d'inscription: 12-04-2006
Messages: 3542
Site web

Re: Normalisation de caractères par php

pour faire de l'urlrewriting j'ai ca

Code:

function make_url_friendly($url) 
{ 
    
    $url = strtolower($url); 
    
    $find = array(' ',
        '"', 
        '&', 
        '\r\n', 
        '\n', 
        '/', 
        '\\', 
        '+',
        '<',
        '>'); 
    $url = str_replace ($find, '-', $url); 
    
    $find = array('é', 
        'è', 
        'ë', 
        'ê', 
        'É', 
        'È', 
        'Ë', 
        'Ê'); 
    $url = str_replace ($find, 'e', $url); 
    
    $find = array('í', 
        'ì', 
        'î', 
        'ï', 
        'Í', 
        'Ì', 
        'Î', 
        'Ï'); 
    $url = str_replace ($find, 'i', $url); 
    
    $find = array('ó', 
        'ò', 
        'ô', 
        'Ó', 
        'Ò', 
        'Ô'); 
    $url = str_replace ($find, 'o', $url); 
    
    $find = array('ö',
         'Ö'); 
    $url = str_replace ($find, 'oe', $url); 
    
    $find = array('á', 
        'à', 
        'â', 
        'Á', 
        'À', 
        'Â'); 
    $url = str_replace ($find, 'a', $url); 
    
    $find = array('ä',
         'Ä'); 
    $url = str_replace ($find, 'ae', $url); 
    
    $find = array('ú', 
        'ù', 
        'û', 
        'Ú', 
        'Ù', 
        'Û'); 
    $url = str_replace ($find, 'u', $url); 
    
    $find = array('ü',
         'Ü'); 
    $url = str_replace ($find, 'ue', $url); 
    
    $find = array('ß'); 
    $url = str_replace ($find, 'ss', $url); 
    
    $find = array('/[^a-z0-9\-<>]/', 
        '/[\-]+/', 
        '/<[^>]*>/'); 
    
    $repl = array('', 
        '-', 
        ''); 
    
    $url =  preg_replace ($find, $repl, $url); 
    
    $url = str_replace ('--', '-', $url); 

    return $url; 
}

un peu plus complexe mais je suppose que c'est ton but.. ..?

Hors ligne

 

#6 24-07-2006 19:12:21

tom_sawyer
Search & Replace
Lieu: Lyon
Date d'inscription: 29-09-2005
Messages: 2068
Site web

Re: Normalisation de caractères par php

hoops mon flux était en ISO-8859-1 en fait ça marche désolé.
Merci fbparis j'ai pris ta liste smile et merci encore à vincent.

Edit : Oui Pagetronic c'est effectivement pour faire de l'url rewriting là je suis un peu flemmard et je ne distingue pas le contenu et les urls des pages donc je vire tous les accents de mon flux mais à terme ça serait bien mieux de distingeur les deux. Merci pour ta solution je vais regarder cela de près wink

Derni�re modification par tom_sawyer (24-07-2006 19:15:54)

Hors ligne

 

#7 24-07-2006 19:14:31

Tiger
Survivors
Lieu: 78
Date d'inscription: 08-06-2006
Messages: 640
Site web

Re: Normalisation de caractères par php

Salut,

J'utilise cette fonction :

Code:

function no_accent($chaine){ 
   $chaine = strtr
// La ligne suivante entre parenthèse doit être sur une seule ligne, sinon erreur php
($chaine,  "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ", "aaaaaaaaaaaaooooooooooooeeeeeeeecciiiiiiiiuuuuuuuuynn");
 $chaine = str_replace("\"", "&quot;", $chaine);
 return $chaine;
  }

Paul

Hors ligne

 

#8 24-07-2006 20:58:36

salemioche
Survivors
Lieu: blue sky
Date d'inscription: 06-07-2005
Messages: 4128
Site web

Re: Normalisation de caractères par php

moi je fais le porc, j'utilise url_encode, pas d'url rewriting et j'obtiens ca
http://search.msn.fr/results.aspx?q=bar … ;FORM=QBHP

Hors ligne

 

#9 24-07-2006 21:29:38

tom_sawyer
Search & Replace
Lieu: Lyon
Date d'inscription: 29-09-2005
Messages: 2068
Site web

Re: Normalisation de caractères par php

ha ça c'était mes url avant l'intervention maintenant je n'ai plus aucun accent dans la page mais mes urls sont clean lol

Hors ligne

 

Pied de page des forums

Propulsé par PunBB
© Copyright 2002–2005 R. Andersson