Afficher correctement du code PHP "littéral" - PHP - Programmation
Marsh Posté le 24-11-2012 à 21:31:06
Il faut évaluer le code :
<?php
$code = 'echo \'Salut les trouduc !\'; ';
eval($code);
?>
Attention à bien slasher les quotes.
Les <?php ?> ne sont pas requis dans le code à évaluer
Marsh Posté le 24-11-2012 à 21:55:48
Le soucis c'est que mes pages sont composées de PHP, de HTML et de JavaScript écrite sur plusieurs lignes avec des include(), des calculs, des formulaires et qu'il en a beaucoup. Je ne voudrais pas toutes les réécrire....
Marsh Posté le 25-11-2012 à 01:44:43
Code :
|
Sinon, solution avec eval qui fonctionne avec du contenu HTML : http://fr2.php.net/manual/fr/function.eval.php#108091
Marsh Posté le 25-11-2012 à 11:24:25
J'ai essayé la fonction eval avec l'affichage du contenu HTML, avec ce code :
Code :
|
Et cela m'affiche cette erreur :
Fatal error: Class 'PhpStringParser' not found in C:\test.php on line 4.
Hélas, mon ami Google ne me renseigne pas sur cette erreur...
Marsh Posté le 25-11-2012 à 14:51:21
Il faut déclarer la classe (http://fr2.php.net/manual/fr/function.eval.php#108091 ) pour l'utiliser.
C'est le block :
Code :
|
Marsh Posté le 25-11-2012 à 15:23:22
OK, j'ai déclaré ma class PhpStringParser et maintenant il me dit que la variable mixed_string n'est pas définie.
Code :
|
Notice: Undefined variable: mixed_string in C:\test.php on line 39
Je n'ai trouvé aucune ligne qui parlait de cette variable mixed_string.
Marsh Posté le 26-11-2012 à 00:36:14
L'erreur est transparente, tu pourrais faire un effort.
Ligne 39, tu utilises $mixed_string alors que tu ne l'as pas défini.
Comme cette variable n'est pas définie, on ne sait pas ce qu'elle contient et tu ne peux pas la passer en paramètre.
Mets-toi à la place du parser PHP et tu verras que c'est évident que tu ne peux pas manipuler une variable dont tu ne connais pas la valeur.
C'est un peu comme si je te disais va me chercher un chmulburlks.
Si je t'ai pas dit ce qu'était un chmulburlks, tu vas pas savoir quoi faire.
Bah là c'est pareil.
Tu dois définir $mixed_string.
Genre $mixed_string = 'mon php';
Sauf que toi tu t'es gourré, tu as défini $test_string (ligne 36) et tu as passé $mixed_string (ligne 39).
Faudrait choisir !
Marsh Posté le 24-11-2012 à 20:16:17
Bonsoir, je ne suis pas un chevronné du PHP.
Voilà ce que je souhaite faire.
Je veux protéger mes pages PHP car je les rends publiques. J'ai donc codé mes pages à l'aide d'un clé "fait maison".
Ainsi les pages PHP sont codées et lors de l'affichage elles sont décodées à la volée grâce à une clé.
Mon problème est le suivant :
Lors de l'affichage de cette page le code obtenu s'affiche "littéralement":
Exemple :
La page d'origine est
Mon code est alors crypté est devient quelque chose comme :
Lors de l'affichage je décrypte le code qui devient :
Ma page m'affiche alors littéralement:
et non pas :
Comment faire pour que la variable PHP soit interprétée ? Merci pour votre intérêt.