Site multilingue, et REGEXP
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:
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.