Je m'explique:
L'idée est de permettre un utilisateur d'appeller des fonctions php dans le contenu des articles pour un projet de CMS. Ces fonctions sont tirées d'une librairie (ou bibliothèque) créée pour la gestion du contenu. Le problème c'est que j'ai des paramètre à passer.
Exemple:
un contenu tel que je souhaite qu'il soit tapé par l'utilisateur "abcde::disp_profil(52)::fghi"
Donc l'idée est de faire appel à une fonction php qui remplacera "::disp_profil(52)::" par ce que retournera la fonction php disp-profil, avec l'argument 52, argument qui peut varier de taille selon le besoin. Et c'est là que je suis paumé...
Je pense que les expressions rationelles/régulières sont dans la solution, mais je ne vois pas comment composer le tout...
Vous auriez pas un petit coup de main en stock à me filer?
svp
Salut!
Voici ce que j'ai fait:
function disp_profil( $n )
{
return ( $n[1] * 2 );
}
// --> le nombre à traité est dans $n[1];
// chaîne de test
$text = 'abcde::disp_profil(52)::fghidfs::disp_profil(5)::';
// à la place de disp_profil, tu dois avoir le nom de ta fonction à 1 paramètre
$text = preg_replace_callback( '/::disp_profil\(([0-9]+)\)::/', 'disp_profil', $text );
echo $text me renvoie: abcde104fghidfs10
ce qui est juste...
@++
R@f
www.allpotes.ch: Photos, humour, vidéos, gags, ...
"On dit que seulement 10 personnes au monde comprenaient Einstein. Personne ne me comprends. Suis-je un génie???"
En gros tu veux aboutir à ce que donnerait "abcde<?php echo disp_profil(52); ?>fghi" sans permettre à l'utilisateur d'employer directement le php durant la saisie de son article (trop risqué) et en marquant l'appel de la fonction php par ::, c'est ça ?
"Par contre je me demande s'il est vraiment possible de récupérer le nom de ladite fonction par la suite pour l'entrer dans preg_replace_callback."
Via un create_function en utilisant comme argument la chaine de la fonction à utiliser et de faire un return dessus.