Page 1 sur 1

Sélectionner un mot et les 20 caractères à coté

Posté : 12 févr. 2007, 16:44
par Arcanis
Salut,

Je cherche maintenant à récupérer un mot dans un texte, ainsi que les 20 caractères à coté (le mot peut se trouver plusieurs fois dans un même texte, et il faut récupérer toutes les occurences). J'ai donc pensé utiliser les regex, mais j'ai du me tromper quelque part.

Ma regex:
$result[2] = preg_replace_callback("((.{1,20})(".$regex_keywords.")(.{1,20}))","snip_content",strip_tags($result[$t+2]));
Sachant que $regex_keywords contient "PHP" (qui est dans le texte) et que la fonction snip_content est la suivante:
	function snip_content($var) {
		global $content;
		$content.="...".$var[1].$var[2].$var[3]."...";
	}
Malheureusement, ça ne marche pas...
Vous ne sauriez pas pourquoi?

Merci d'avance!

Arcanis

Posté : 13 févr. 2007, 14:28
par goeb
salut,
il me semble qu'il y a 2 erreurs :

1. il faut que la fonction snip_content fasse un return.

2. pour les 20 caractères, c'est .{20} et pas .{1,20}

Posté : 14 févr. 2007, 20:48
par Arcanis
Finalement, j'ai trouvée une autre solution: je récupère la position de la première occurence du mot (à l'aide de stripos), je fais un substr pour récupérer la partie qui me convient, puis je supprime la chaine trouvée de la variable content.

Merci quand même!

a+