Création de liens automatiques vers son dictionnaire

  • Auteur de la discussion Auteur de la discussion cdpdf
  • Date de début Date de début
WRInaute impliqué
Bonjour à tous

Voila sur mon site j'ai un nouveau dictionnaire et je voudrais que chaque fois qu'un mot présent dans mon dictionnaire et qui se retrouve dans mes articles fasse un lien vers l'entré de mon dictionnaire.

Enfin ce que je dis c'est déjà fait
l'exemple sur mon site le code suivant est celui utilisé
Code:
<?php
function liens($text) {
	$patterns = array();
	$replacements = array();
	*connection*("SELECT id, name from **** where state='O'");
	while ($sqlfetch=$xoopsDB->fetchArray($sqlquery)) {
		$id = $sqlfetch['id'];
		$name = $sqlfetch['name'];
		$patterns[] = "/".$name."/sU";
		$change_space = "-"; 
		$name = strtolower($name); 
		$name = strtr($name,'áâàäéêèëíîìïóôòöúûùüýçñ','aaaaeeeeiiiioooouuuuycn');
		$name = preg_replace("/(&gt;|&lt;|&quot;|&amp;)/",$change_space,$name);
		$name = preg_replace("/[^a-z0-9_\-]/",$change_space,$name);
		$name = preg_replace("/[^a-z0-9_\-]/",$change_space,$name);
		$name = preg_replace("/[$change_space]+/",$change_space,$name);
		$replacements[] = '<a href="../../modules/dictionnaire/'.$id.'-comptable'.$name.'.html">'.$name.'</a>';
	}
	return preg_replace($patterns, $replacements, $text);
}
?>

Mais l'endroit un je suis n’arrive plus a avancé, c'est que je voudrais être sur qu'avant le mot il y ait soit un espace, soit >, soit une apostrophe
Et pour bien faire, j'aimerais bien qu'après il y ait soit un point, soit <, soit une virgule

Malheureusement j'ai encore d'autre problème avec ce script
Il faudrait qu'il ne fasse pas de liens si un lien est déjà commencé
voir ici
Merci à tous ceux qui voudront bien m'aider

Christophe
[/url]
 
WRInaute discret
moi je pense que le plus simple a faire :
plutot que d'utiliser une commande de remplacement,
tu récupère la position de début du mot à link (en utilisant les regexpr comme tu fais)
A partir de la tu peux regarder à la position d'avant si il y a bien un . ou , ou ...

de meme en gardant en mémoire les positions tu peux savoir si le mot d'avant était déja un lien etc ..

bref un traitement assez lourd
mais je pense pas que dans ton cas tu puisses faire ça à coup de 2-3 instructions php
 
Discussions similaires
Haut