Bonjour à tous
J'aimerais récupérer la valeur d'une expression régulière [0-9]+ et la passer à ma méthode $diapo->simple_diaporama(5) :

$page'contenu'] = preg_replace("/[diaporama_[0-9]+]/", $diapo->simple_diaporama(5), $page'contenu']);

merci de votre aide

4 réponses


Gregory
Réponse acceptée

si tu as plusieurs valeurs il faut utiliser preg_match_all :)

bagui
Auteur
Réponse acceptée

Bonjour et merci pour les réponses :
Voila comment je vais procéder et ca marche impec !

preg_match("/{diaporama_([a-z]+)_([0-9]+)}/", $page'contenu'], $matches);
// $matches[1] = type de diaporama
// $matches[2] = id du diaporama dans la db
$page'contenu'] = preg_replace("/{diaporama_([a-z]+)_([0-9]+)}/", $diapo->simple_diaporama($matches[1],$matches[2]), $page'contenu']);

Tu peux récupérer dans un tableau tes valeurs avec un preg_match($pattern,$subject,$array) et ensuite tu les passes dans ta méthode

bagui
Auteur

Alors voila ce que j'ai fait et ca marche bien, sauf que dans un texte qui provient d'une table je peux avoir plusieurs tags comme ceci, alors comment faire :

un exemple de texte {diaporama_1} et puis encore du texte {video_45} et enfin du texte.

preg_match("/[0-9]+/", $page'contenu'], $matches);
$page'contenu'] = preg_replace("/{diaporama_([0-9]+)}/", $diapo->simple_diaporama($matches[0]), $page'contenu']);