Executer une chaine a l'aide de eval mais avec du code php

Soyez le premier à donner votre avis sur cette source.

Snippet vu 5 989 fois - Téléchargée 27 fois

Contenu du snippet

voilà je cherchais à executer une chaine dans mon script a l'aide de la function eval. Mais ma variable contenait du code php et html. J'ai cherché sur php.net une solution et j'ai trouvé. je l'ai légerement adapté pour une utilisation plus souple.

Donc la variable $string contient mon code et après ses 2 ligne la variable string contient denouveau le code mais executer

example:
$string = "<b>coucou<?= echo " comment ca va ?" ?></b>";
sera : "coucou coment ca va ?"

Source / Exemple :


$string = '<b>coucou<?= echo " comment ca va ?" ?></b>'; // la chanie à executer

$string = preg_replace_callback("/(<\?=)(.*?)\?>/si",create_function('$string','ob_start();eval("$string[2];");$return = ob_get_contents();ob_end_clean();return $return;'),$string);
$string= preg_replace_callback("/(<\?php|<\?)(.*?)\?>/si",create_function('$string','ob_start();eval("print $string[2];");$return = ob_get_contents();ob_end_clean();return $return;'),$string);

echo $string;

Conclusion :


plus c'est compliqué plus c'est jouissif !!

A voir également

Ajouter un commentaire

Commentaires

princedouz
Messages postés
1
Date d'inscription
mardi 15 mars 2005
Statut
Membre
Dernière intervention
24 mars 2005
-
comment on fait pour executer une commande Dos comme Ping
mathieumg
Messages postés
558
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
18 février 2006
-
Merci nokydoo pour l'idée, j'en ai fait une source ici : http://www.phpcs.com/code.aspx?ID=24007

Mathieu
mathieumg
Messages postés
558
Date d'inscription
mardi 4 février 2003
Statut
Membre
Dernière intervention
18 février 2006
-
Ça marche pas ça fait plein d'erreurs :(

Aidez-moi !

Mat
yami_no_ookami
Messages postés
165
Date d'inscription
jeudi 29 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2005
-
ca marche pas.

$string = $lignes[$i];
//contient par exemple [http://www.xiti.com/xiti.asp?s=<?=$num_estat?>

$string = preg_replace_callback("/(<\?=)(.*?)\?>/si",create_function('$string','ob_start();eval("$string[2];");$return = ob_get_contents();ob_end_clean();return $return;'),$string);

$string preg_replace_callback("/(<\?php|<\?)(.*?)\?>/si",create_function('$string','ob_start();eval("print $string[2];");$return ob_get_contents();ob_end_clean();return $return;'),$string);

$test .= $string;

je fais tout ca et ma ligne est reenvoyez sans les valeurs (regarde la difference entre les 2 lignes sur le parametre s).

]

au secours.
cs_crazycode
Messages postés
57
Date d'inscription
mercredi 5 mars 2003
Statut
Membre
Dernière intervention
17 juillet 2008
-
l'include marche dans le cas d'un fichier mais comment faire pour executer une page qui se trouve dans une base de donnée ????

dans ce cas l'include ne fonctionne pas

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.