Détecter l'absence de balises <a>

Fermé
totoyo47 Messages postés 260 Date d'inscription vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 - 20 juin 2016 à 12:50
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 - 1 juil. 2016 à 00:39
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 samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
20 juin 2016 à 23:17
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 vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 133
24 juin 2016 à 06:18
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 vendredi 10 juillet 2009 Statut Membre Dernière intervention 30 mars 2020 133
30 juin 2016 à 14:43
Up
0
DelNC Messages postés 2234 Date d'inscription samedi 25 octobre 2014 Statut Membre Dernière intervention 22 février 2020 1 999
Modifié par DelNC le 1/07/2016 à 00:39
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