Petite aide avec les regex :D

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics

vin-moi
WRInaute impliqué
WRInaute impliqué
 
Messages: 391
Inscription: Lun Nov 22, 2004 18:13

Petite aide avec les regex :D

Message le Lun Juin 25, 2007 13:06

Salut,

voilà j'ai quelque chose de "simple" à réaliser en PHP :

- J'ai un texte avec des accents, admettons :

"j'ai un gros écrou, une vis, ainsi qu'une clé à molette".

- J'ai une une liste de mot enregistré dans un tableau, sans accent :

gros ecrou
vis
cle

- Je veux donc vérifier la présence de ces mots dans mon texte. Je parcourt donc chaque ligne du tableau contenant les mots, et je compare chaque mot au texte en prenant soin de supprimer tous les accents dans le texte. J'arrive donc à trouver les mots de la liste qui sont présent dans le texte.

L'objectif est d'ajouter des crochets autour des mots trouver ... Mais là je vois pas comment faire ? Le problème est que ce remplacement doit être fait dans le texte avec les accents et non dans le texte sans accent qui a servit à faire la vérification ?

Auriez-vous une idée ? Existe t'il une option pour les regex qui permettrait de pas prendre en comtpe les accent ? (des fois ca serait bien d'être anglais :roll: ).

Merci d'avance !


Joe Le Mort
WRInaute impliqué
WRInaute impliqué
 
Messages: 255
Inscription: Mar Aoû 08, 2006 14:13

Message le Lun Juin 25, 2007 13:32

je ne comprend pas trop ton probleme.

Mais dans ton parcours de tableau, tu peux mettre chaque mots dans un autre tableau, en spécifiant pour un mot accentué, tu le rajoutes avec crochets, non ?

exemple rapide:

Code: Tout sélectionner
$tab=array();
foreach( $mots as $k => $v){
if mot accentué
$tab[$k]=>'['. $v.']';
else{
$tab[$k]=>$v;
}
}


non ?

vin-moi
WRInaute impliqué
WRInaute impliqué
 
Messages: 391
Inscription: Lun Nov 22, 2004 18:13

Message le Lun Juin 25, 2007 13:41

Oui c'est à peu pres ce que j'ai fait :d

Le principal problème était au niveau de l'accentuation mais je viens de m'apercevoir que les regex s'en foutait des accents donc ca devrait tout résoudre :D

je vous tient au courant :)

[edit : argh non faux espoir :( ]
Dernière édition par vin-moi le Lun Juin 25, 2007 13:56, édité 1 fois.


Joe Le Mort
WRInaute impliqué
WRInaute impliqué
 
Messages: 255
Inscription: Mar Aoû 08, 2006 14:13

Message le Lun Juin 25, 2007 13:44

quel est ton probleme avec les accents ?

vin-moi
WRInaute impliqué
WRInaute impliqué
 
Messages: 391
Inscription: Lun Nov 22, 2004 18:13

Message le Lun Juin 25, 2007 13:58

Et bien c'est simple,


je fait par exemple quelque chose comme :

$texte = preg_replace("#(test)#", "[\\1]", $texte);

Ceci devrait me remplacer les mot "test" present dans le texte par "[test]". Mais j'aimerai aussi que les mots "tést" ou "tèst" puisse entre remplacés !

Il y a peu être une option pour ca ?

vin-moi
WRInaute impliqué
WRInaute impliqué
 
Messages: 391
Inscription: Lun Nov 22, 2004 18:13

Message le Lun Juin 25, 2007 14:07

Sinon l'idée serait d'avoir un regex dans ce genre :

$texte = preg_replace("#(t[eéêè]+st)#", "-\\1-", $texte);

donc remplacer automatiquement les voyelles par leurs possibilités avec accent ou pas, mais je me demande si y'a pas plus simple/ moins lourd ?


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités