Gwinyam
Messages postés47Date d'inscriptionvendredi 7 octobre 2005StatutMembreDernière intervention 2 janvier 2008
-
15 août 2006 à 16:07
Gwinyam
Messages postés47Date d'inscriptionvendredi 7 octobre 2005StatutMembreDernière intervention 2 janvier 2008
-
17 août 2006 à 11:18
Salut,
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
coockiesch
Messages postés2268Date d'inscriptionmercredi 27 novembre 2002StatutMembreDernière intervention13 septembre 20134 16 août 2006 à 08:05
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???"
mentral
Messages postés56Date d'inscriptionjeudi 29 mai 2003StatutMembreDernière intervention22 janvier 2008 16 août 2006 à 05:15
Slt
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 ?
FhX
Messages postés2350Date d'inscriptionmercredi 13 octobre 2004StatutMembreDernière intervention18 avril 20153 16 août 2006 à 20:51
"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.