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 :
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...
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']; } } } ?>
Pour info : j'ai suivi le code donné dans ce topic
D'avance merci pour votre aide.
Partager