CONNEXION
  • RetourJeux
    • Sorties
    • Hit Parade
    • Les + populaires
    • Les + attendus
    • Soluces
    • Tous les Jeux
    • Gaming
  • RetourActu Gaming
    • News
    • Astuces
    • Tests
    • Previews
    • Toute l'actu gaming
  • RetourBons plans
    • Bons plans
    • Bons plans Smartphone
    • Bons plans Hardware
    • Bons plans Image et Son
    • Bons plans Amazon
    • Bons plans Cdiscount
    • Bons plans Decathlon
    • Bons plans Fnac
    • Tous les Bons plans
  • RetourJVTech
    • Actus High-Tech
    • Intelligence Artificielle
    • Smartphones
    • Mobilité urbaine
    • Hardware
    • Image et son
    • Tutoriels
    • Tests produits High-Tech
    • Guides d'achat High-Tech
    • JVTech
  • RetourCulture
    • Actus Culture
    • Culture
  • RetourVidéos
    • A la une
    • Gaming Live
    • Vidéos Tests
    • Vidéos Previews
    • Gameplay
    • Trailers
    • Chroniques
    • Replay Web TV
    • Toutes les vidéos
  • RetourForums
    • Hardware PC
    • PS5
    • Switch 2
    • Xbox Series
    • Switch
    • Pokemon pocket
    • FC 25 Ultimate Team
    • League of Legends
    • Tous les Forums
  • PC
  • PS5
  • Xbox Series
  • Switch 2
  • PS4
  • One
  • Switch
  • iOS
  • Android
  • MMO
  • RPG
  • FPS
En ce moment Genshin Impact Valhalla Breath of the wild Animal Crossing GTA 5 Red dead 2
Liste des sujets

[PHP] function eval()...

The_Cronos
The_Cronos
Niveau 9
23 juillet 2009 à 21:38:03

:salut:

J'ai un problème, imagninon cette fonction :

function showContent($page) {
$txt=file_get_contents("$page.html")
$txt=preg_replace('#\{(.*)\}#i',':)',$txt);
eval("\$txt=\"$txt\";");
return $txt;
}

En fait il s'agit d'un fonction qui va prendre le contenu de la page demandée et remplacer les textes entre {} par :).
Evidemment ma vrai fonction est plus complexe, elle converti les textes entre {} en functions, d'ou l'utilité de eval().
Le problème c'est que j'aimerais traiter $txt comme une chaine php, donc j'utilise eval, mais gros problème il m'affiche un message d'erreur :

Parse error: parse error in ... : eval()'d code on line 5

Pouvez vous m'aider ? :merci: d'avance.

deepblue
deepblue
Niveau 16
23 juillet 2009 à 21:49:46

eval('$txt="'.str_replace('"', '\\"', $txt).'";');

test ça

The_Cronos
The_Cronos
Niveau 9
23 juillet 2009 à 21:54:04

ça me fait aucun message d'erreur mais rien ne se produit, les function sont toujours prises comme un simple texte.

deepblue
deepblue
Niveau 16
23 juillet 2009 à 21:57:27

ton eval met dans la une variable nommée $txt, le contenu de $txt.

Imaginons que $txt = à
"function foo() {
return true;
}"

eval($txt); va te créer ta fonction foo().

Perso, je ne suis pas dan du tout de eval, trop dangereux.
Tu peux donner un exemple de avant et d'après (comme tu le voudrais) ?

The_Cronos
The_Cronos
Niveau 9
23 juillet 2009 à 22:03:58

oki bah imagninons une function heure() :

function heure() {
$var=date('H:i');
return $var;
}

- un .html avant d'être traité :

Coucou il est {heure} :)

- Après être passé par le traitement il devrait resortir :

Coucou il est <?php heure(); ?> :)

- et donc afficher :

Coucou il est 22:02 :)

The_Cronos
The_Cronos
Niveau 9
23 juillet 2009 à 22:11:38

Le problème c'est me resort :

Coucou il est <?php heure(); ?> :)

- et qu'il m'affiche :

Coucou il est <?php heure(); ?> :)

deepblue
deepblue
Niveau 16
24 juillet 2009 à 00:02:04

Ok.

Donc pas besoin d'eval :ok:

http://fr.php.net/preg_replace_callback Exemple #2

deepblue
deepblue
Niveau 16
24 juillet 2009 à 00:04:20

exemple 3 aussi

The_Cronos
The_Cronos
Niveau 9
24 juillet 2009 à 00:46:18

merci ! :p

Sous forums
  • Aide à l'achat Mac
  • Macintosh
  • Création de sites web
  • Création de Jeux
  • Linux
  • Programmation
  • Internet
  • Steam Deck
  • Hardware