Récupérer une valeur d'une expression régulière

Par bagui, il y a 14 ans


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, il y a 14 ans

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, il y a 14 ans

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']);
Gregory, il y a 14 ans

si tu as plusieurs valeurs il faut utiliser preg_match_all :)

bagui, il y a 14 ans

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']);