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

Eléphant du PHP | 99 Messages

12 févr. 2007, 16:44

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

Eléphant du PHP | 413 Messages

13 févr. 2007, 14:28

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}
--
Goeb

Eléphant du PHP | 99 Messages

14 févr. 2007, 20:48

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+