Annonce

Important : WordPress 2.5.1 est disponible.
Annonce 1 : Le Codex en français a besoin de vous pour avancer !
Annonce 2 : Avant de poster, n'oubliez pas de faire une petite Recherche et de lire les règles de ce forum.

#1 19-04-2008 20:05:48

k-ny
Passionné WP
Date d'inscription: 01-03-2008
Messages: 122
Site web

Amelioration d'une regex pour ne pas cibler les liens

Bonjour,

Je ne savais pas trop où poster ça mais je me lance ...

Problème(s) rencontré(s) :

Je suis en train de développer un plugin (enfin j'ai plutôt repris le développement d'un ancien plugin), et je me heurte à un petit soucis d'expression régulière.

Le plugin sert à créer des liens automatiquement selon certains mots clés. Tout se passe bien sauf pour les mots clés qui sont déjà dans un lien, dans ce cas là il y a conflit.

Je voudrais que ma regex ne match pas les mots clè qui sont inclus dans un lien (<a href="#">mot clé</a>)

Pour l'instant ma regex ressemble à ça:

Code:

  1. $strText = preg_replace("|(?!<[^<>]*?)(?<![?./&])\b$strLinkname\b(?!:)(?![^<>]*?>)|imsU","<a class=\"autolink\" href=\"".$strProtocol."$strUrl\">$strLinkname</a>" , $strText);

Donc comment rajouter une exceptions pour les mots clés dans les liens ?

Je sais comment matcher le contenu des liens:

Code:

  1. <\s*a\s+[^>]*>(.*?)<\s*/\s*a\s*>

Mais je voudrais que ça ai l'effet inverse, et que se soit intégrer dans ma 1ère regex ....

Si vous avez des idées, des pistes sur comment je dois m'y prendre ...... ?

Merci d'avance wink

Dernière modification par k-ny (19-04-2008 20:07:24)

Hors ligne

 

#2 21-04-2008 12:24:11

k-ny
Passionné WP
Date d'inscription: 01-03-2008
Messages: 122
Site web

Re: Amelioration d'une regex pour ne pas cibler les liens

BOn, j'ai tenté de m'en sortir avec des "preg_match_all" couplé a foreach et ) str_replace, mais j'arrive à rien  !

Dommage car ce plugin en ravirait plus d'un ...

Et personne ne connait un autre forum qui serait plus à même de répondre à cette questions spécifique ?

Hors ligne

 

#3 21-04-2008 17:55:01

k-ny
Passionné WP
Date d'inscription: 01-03-2008
Messages: 122
Site web

Re: Amelioration d'une regex pour ne pas cibler les liens

Stop, on arrête de chercher. J'ai réussi à m'en sortir en réutilisant les fonction d'autotag du plugin d'Amaury wink

Plugin disponible prochainement !

Hors ligne

 

#4 21-04-2008 22:31:20

Comme une image
Burpeur Wordpress
Lieu: Paris (enfin presque)
Date d'inscription: 30-01-2008
Messages: 1430
Site web

Re: Amelioration d'une regex pour ne pas cibler les liens

Voilà, moi c'est comme ça que je programme aussi : par copier-coller ;-)
(sinon, je t'aurais conseillé d'aller chercher sur un forum PHP mais ne connaissant pas trop ce langage encore, je n'ai pas de bonne adresse à te conseiller !)


Outils de base : Firefox+Firebug, Google-est-mon-ami™, Notepad++. Avec ça, on règle 78,24% des problèmes wink
Pour aller plus loin : Côt côt codex FR EN ! WAMP/LAMP/MAMP

« On paie mal un maître en ne restant toujours que l'élève. » — F. Nietzsche

Hors ligne

 

#5 21-04-2008 22:37:43

k-ny
Passionné WP
Date d'inscription: 01-03-2008
Messages: 122
Site web

Re: Amelioration d'une regex pour ne pas cibler les liens

Lol, voui, d'ailleurs le plugin que je prépare est une récupération d'un vieux plugin à l'abandon ^^ Et tout comme toi je suis pas très doué en php (mais après tout les regex s'utilisent dans plein d'autres langages smile )

Hors ligne

 

Pied de page des forums

Propulsé par PunBB 1.2.17
© Copyright 2005-2006 WordPress France

Tous droits réservés - wordpress-fr.net © 2005-2006

  • RSS
WPfr ValidatorXhtml ValidatorCSS mysql Php GetFirefox
Design par AmO - Crédits - Equipe WordPress France

Réseau International : Hongrie - Allemagne - Grèce - Italie - Japon - Corée - Suisse - Turquie - USA