Bonjour à tous,
J'ai un site multilingue, et je voudrais offrir la possibilité à mes visiteurs de publier des contenus dans la langue de leur choix, à travers des balises : [fr]Blabla[/fr] pour le français, [en]text example[/en] pour l'anglais, etc.

C'est à dire qu'en fonction de la langue de navigation choisie par le visiteur du site, le texte affiché soit celui correspondant aux balises (ex: un visiteur visite le site anglais, je souhaite que seul le contenu entre les balises [en] et [/en] soit affiché). Par ailleurs si ces balises ne sont pas utilisées, je souhaiterais que le texte s'affiche complètement.

La langue de navigation courante est représentée par la variable $lang. (ex: $lang = "fr" pour le français).

Voici la REGEX que j'ai essayé de mettre en place, sans succès :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
 
<?php
$lang = "fr";
	$sql = "SELECT article FROM bd";
	$result = mysql_query($sql) OR die(mysql_error());
	while($row=mysql_fetch_assoc($result))
		{
		$pattern = "/[".$lang."](.*)[\/".$lang."]/U";
		echo $pattern;
		preg_match_all($pattern,$row['article'],$match); 
$x = 0;
if ( count( $match[1] ) >= $x ) {
  echo $match[1][$x-1];
}
else {
  echo $row['article'];
}
 
		}
	}
?>
Je pense qu'il y a un problème dans le motif, puisque même quand il n'y a pas de balises, il m'indique qu'il en trouve et il n'affiche pas de résultat...

Pour info : j'ai suivi le code donné dans ce topic

D'avance merci pour votre aide.