Détecter l'absence de balises <a>

totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   -  
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Dans mon texte, je souhaite que certains mots affichent la définition contenue dans une info-bulle. Jusque-là, ma regex marche bien.
Pour info, $regex ressemble à ça : "mot1|mot2|mot3|...".

$text = preg_replace('#('.$regex.')#i', '<a class="lexique no-color" data-poload="/index.php">$0</a>', $text);


Cependant, quand l'url d'un lien contient l'un de ces mots, cela détruit le lien.
Par exemple, j'ai ce résultat :
Lecture complémentaire : transport-bilan-socio-economique-CGDD-sante-publique-26829.php4#xtor=AL-33" target="_blank">sur Actu-Environnement


J'aimerai que ma regex ne matche pas quand le mot est présent dans la balise <a>. J'ai tenté de cette façon, sans succès :
$text = preg_replace('#(?!\<a)('.$regex.')(?!\<\/a)#i', '<a class="lexique no-color" data-poload="/index.php">$1</a>', $text);


Merci de votre aide !
A voir également:

1 réponse

DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Bonjour

je te montre comment je procède pour faire des infos bulles.

Avec un lien sur une autre page ou une autre partie de la page
<a class="info" href="page2.php"><span><center>page suivante PRECEDENTE</center></span>	Page Suivanteprécédente
</a>


NB dans la partie <span></span> tu écris le texte qui se situe dans l'info bulle

Et pour une info bulle sur du texte
<a class="info" href=""><span><center>Information sur le texte</center></span>	
Mon texte
</a>


En fait, j'utilise une <a> mais je ne mets pas l'adresse


Pour que tout çà marche j'utilise ce css
a.info{
	position              : relative;
	font-size             : 18px;
	text-decoration   : none;/*blink;*/
	font-weight         : bold;/*normal;*/	
		}
a.info:hover{
	font-weight         : bold;/*normal;*/
	font-style            : italic;
	font-size	          : 18px;
	color                   : red;
}
a.info span{
	display: none
	}
a.info:hover span{
	display			 :block;
	position			 :absolute;
	top				 :1em; left:1em; width:9em;
	border			 :1px solid #000;
	background-color	 :lightgrey;
	color				 :#000;
	text-align			 :center;		
	font-weight		 :none;
	padding			 :5px;
}
0
totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   134
 
Bonjour DeINC,

Je te remercie de ta réponse très claire. Toutefois, ce n'était pas ma question, je sais faire les infobulles.
Ma demande porte sur la regex.
Un lien où elle plante : http://mobilidoc.fr/document-170 (en fin de description)
Lecture complémentaire : transport-voisinage-26993.php4" target="_blank">Actu-environnement
0
totoyo47 Messages postés 260 Date d'inscription   Statut Membre Dernière intervention   134
 
Up
0
DelNC Messages postés 2234 Date d'inscription   Statut Membre Dernière intervention   2 004
 
Pardon, j'étais très occupée ces jours ci.

Voilà un lien qui sur les expressions rationnelles (regex)
https://www.php.net/manual/fr/regex.examples.php
0