Bonsoir.
As-tu visionné le tutoriel Les expressions régulières ?
Car il donne justement comme exemple par rapport au lien à une image, tu y verras donc par rapport aux attributs supplémentaires dans une balise.
Donc, à partir de ça, tu devrais pouvoir résoudre ton problème.
Bonjour à vous.
Actuellement je travaille sur un outil permettant d'insérer des liens à la volée dans un contenu html et je bloque sur un élément clé. Si le contenu contient le mot "Toto" par exemple, je le remplace bien entendu par un lien. Je fais en sorte que le remplacement ne se fasse qu'une fois pour éviter de générer trop de liens. Mon soucis se trouve sur le fait que si un attribut (alt ou title) d'une image ou d'un autre lien contient ce mot cléf, alors l'outil m'insère un lien dans l'attribut... Ce qui n'est pas bon... Et je vous avouerais que je m'arrâche les cheveux avec ma regex depuis quelques heures pour que ça colle bien.
Voici un exemple type d'un block HTML qui coince :
Et Voici Actuellement ma regex pour le mot cléf USAP :
Je ne suis bien entendu pas très doué en regex, donc si quelqu'un a une solution à me proposer je suis preneur =)
Merci à vous !
11 réponses
Non merci mais je sais faire des expression régulières, tu te doutes bien qu'avant de venir poster j'ai regardé de nombreux tutos, de nombreux pots sur des forums, si je poste c'est que justement je bloque et qu'un tuto ne m'aidera pas plus...
Je dois certainement faire quelque chose de mal, ou une erreur, je regarderais à nouveau demain à tête reposée ça aidera sûrement, mais ton post ne m'aide absolument en rien...
Merci quand même.
Peux-tu donner un lien qui fonctionne ? Car je n'ai pas trop compris ce que tu cherches à faire :/
Si tu cherches à avoir la valeur de l'attribut title:
Yop..
Essaye d'abord de vérifier si ton contenu a des balises, les enlever du contenu (les mettres en mémoire, je sais pas) puis ensuite de remplacer le mot clé "toto" par ton lien, et ensuite remettre les balises à leur place ?
Exemple avec le contenu suivant:
Les étapes:
1) Stocker toutes les balises dans un tableau, et les remplacer dans le contenu par son index du style:
2) Maintenant remplacer le mot clé "USAP" par tes liens:
3) Remettre les balises stockées à leur place:
@PhiSyX c'est pas bête en effet je n'y avais pas pensé ! Je testerais ça la semaine prochaine du coup, là je fais le pont =) Mais merci je te tiens au courant !
@AlexJM Désolé pas de lien, je bosse en local pour cette partie mais voici un exemple. Sur ce lien, dans le corps de l'article, tu pourras remarquer le mot essai est un lien pointant vers une page spécifique. Ceci est généré à l'aide d'un parser qui me permet de transformer certains mots (lors de la rédaction) en lien. Le soucis c'est que je ne veux pas que ce parssage s'effectue lorsque ce mot clé est l'attribut alt ou title d'un lien (ou d'une image).
En fait je tentais de faire une regex pour déterminer si le mot clé recherché se trouve dans l'attribut alt ou title d'un lien. De sorte que
Ah je vois j'ai compris, tu dois le faire obligatoirement en php ?
Vu que c'est pendant une soumission de formulaire, oui
Tu peux tenter quelque chose comme ceci :
Mais je sais pas si les lookahead fonctionnent en php
Sinon, avec ceci:
Tu peux voir le groupe 1, si dans le groupe un tu as un < c'est que t'es dans uen balise, sinon tu as soit rien soit un >
Ensuite pour avoir la position du USAP, tu prends la position que tu viens de trouver, plus la position du groupe un plus la position du groupe deux
C'est le mieux que j'ai trouvé avec les fonctionnalités de php ;)
Je te remercie ça marche parfaitement comme ça ;)
Pas de prob ;)