Remplacer un mot par un lien mais pas si le mot est dans un lien

Signaler
Messages postés
2
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
17 mars 2006
-
Messages postés
2
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
17 mars 2006
-
Bonjour,

je bute depuis ce matin sur un problème bête.

Je remplace la première occurence d'un mot s'il correspond au titre d'une liste dans une base données.

Avec en code :
function first_replace($c,$r,$t)
{
if(strstr($t,$c))
{
$d = str_replace(strstr($t,$c),"",$t);
$f = strstr($t,$c);
$f = substr($f,strlen($c));
return $d . $r . $f;
}
else
return $t;
}

# puis j'utilise tout ça comme ça :

function lier_au_glossaire($texte)
{
# Config
# L'identifiant (id_rubrique) de la rubrique glossaire
$id_rubrique = 2;
# Limiter l'effet du filtre à la première occurence
$eviter_doublons = 1; // 0 : afficher toutes les occurences
# On checke si l'entrée est déjà présente dans la table
# Mettre l'identifiant de la rubrique contenant le glos

$r = spip_query("SELECT id_article,titre FROM mecanismes.spip_articles WHERE statut='publie' AND id_rubrique='$id_rubrique'");

while($o = spip_fetch_array($r))
{
if($eviter_doublons == 1)
{
$texte = first_replace("$o[titre]","$o[titre]",$texte);
}
else
{
$texte = str_replace("$o[titre]","$o[titre]",$texte);
}
}
return $texte;
}

ça le fait, SAUF QUE : si la première occurence est dans un lien : tout pète car j'insère un lien dans un lien...

une idée?

2 réponses

Messages postés
1423
Date d'inscription
mardi 14 décembre 2004
Statut
Membre
Dernière intervention
29 décembre 2012
4
les expression regulieres peut etre?
mais attention au mal de crane...
Voici le lien qu'on m'a donné même si j ai réussit a faire autrement ^^
http://www.expreg.com/

-------------------------------------------------------------------------------------------------------
Il vaut mieux poser une question et passer pour bête que le rester toute sa vie
Messages postés
2
Date d'inscription
mardi 24 juin 2003
Statut
Membre
Dernière intervention
17 mars 2006

J'ai longuement lu ce site et je suis comme le bricoleur du dimanche a qui on file un outil sans le mode d'emploi...

je me doute bien qu'il me faut :
1/virer les urls et les mettre dans un tableau
2/passer le script sur le restant
3/replacer ce que j'ai viré sur le texte modifié

Mais en fait je suis planté sur le fait de virer les url et les stocker, puis les remmettre...