Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1061 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  interpreter une chaine à la volée ?

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Précédente
Auteur Sujet :

interpreter une chaine à la volée ?

n°1260482
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 19:21:54  profilanswer
 

youp,
 
 
existe-t-il une fonction pour faire une sorte d'include mais avec une chaine.
 
exemple: include ('<? echo "oui"; ?>');
 
 
 
merci


Message édité par art_dupond le 06-12-2005 à 19:43:14

---------------
oui oui
mood
Publicité
Posté le 06-12-2005 à 19:21:54  profilanswer
 

n°1260486
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 19:35:19  profilanswer
 

j'explique mon problème au cas où il y aurait une autre solution:
 
Le but est de mettre un fichier.php en cache après l'avoir transformé (avec transformation()) ET d'envoyer le résultat au navigateur.
 
La mise en cache ne se fait pas à chaque fois mais la transformation oui (mais je ne veux pas transformer le fichier.php en lui même).
 

Code :
  1. // bufferisation
  2. ob_start();
  3. include('mon_fichier.php');
  4. // récupération buffer
  5. $buffer = ob_get_contents();
  6. // fin buffer et libération mémoire
  7. ob_end_clean();
  8. // transformation
  9. $buffer = transformation($buffer);
  10. ->>> Envoi de $buffer au navigateur (la fonction que je cherche ici) - echo $buffer ne marche pas parce qu'il affiche "<?" au lieu de l'interpréter.
  11. // mise en cache dans un fichier
  12. file_put_contents('fichier_cache',$buffer);


Message édité par art_dupond le 06-12-2005 à 19:36:22

---------------
oui oui
n°1260487
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 19:35:54  profilanswer
 

(arf, y a des messages qui se perdent :p)


---------------
oui oui
n°1260492
Roane
Pingouino's fan
Posté le 06-12-2005 à 19:41:08  profilanswer
 

Code :
  1. echo "oui';


 
[:roane]


---------------
http://www.alsacreations.com, http://www.openweb.eu.org. Mon CV : http://cv.roane-irkana.net. A ne surtout pas prendre en exemple : http://www.worldinternet.be
n°1260494
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 19:45:53  profilanswer
 

en fait,  
 
$buffer sera  de la forme
 

Code :
  1. <? if ($variable) { ?>
  2. <span> je suis en viiiiiiiiiiie </span>
  3. <? } ?>
  4. <span>coucou</span>


---------------
oui oui
n°1260495
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 19:46:32  profilanswer
 

echo $buffer;
 
m'affichera tout mais n'interprètera pas les <? ?>


---------------
oui oui
n°1260551
sielfried
Posté le 06-12-2005 à 21:13:41  profilanswer
 

J'ai rien compris, mais ptete que http://www.php.net/eval pourrait aider. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1260602
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 22:12:47  profilanswer
 

fichier.php


<mon_if test="coco">
   <div id="coco">blabla</div>
</mon_if>
 
<div id="main">je suis la page principale...</div>


 
 
cachecache.php

Code :
  1. function transformation($string)
  2. {
  3.     remplace '<mon_if test="coco">' en '<?php if($coco); { ?>'
  4.     remplace '</mon_if>' en <?php } ?>
  5. }
  6. ob_start();
  7. include('fichier.php');
  8. // récupération buffer
  9. $buffer = ob_get_contents();
  10. // fin buffer et libération mémoire
  11. ob_end_clean();
  12. // transformation
  13. $buffer = transformation($buffer);
  14. // ici: $buffer vaut:
  15. // *****************************************//
  16. // <?php if($coco) { ?>
  17. //   <div id="coco">blabla</div>
  18. // <?php } ?>
  19. //
  20. // <div id="main">je suis la page principale...</div>
  21. //******************************************//
  22. // ici je veux que php interprete $buffer
  23. La_fonction_que_je_cherche($buffer);
  24. // mise en cache dans un fichier
  25. file_put_contents('cache.php',$buffer);


 
 
eval() fait prèsque ce que je veux. Le problème, c'est qu'il fait un éval sur la $string et considère donc tout comme du code php. or là, j'ai un mix (code php et code html) et eval ne fait pas la différence (erreur sur <?)
 
 
En gros, ce que je voudrais faire c'est :  
cachecache.php
 

Code :
  1. function transformation($string)
  2. {
  3.     remplace '<mon_if test="coco">' en '<?php if($coco); { ?>'
  4.     remplace '</mon_if>' en <?php } ?>
  5. }
  6. ob_start();
  7. include('fichier.php');
  8. // récupération buffer
  9. $buffer = ob_get_contents();
  10. // fin buffer et libération mémoire
  11. ob_end_clean();
  12. // transformation
  13. $buffer = transformation($buffer);
  14. // mise en cache dans un fichier
  15. file_put_contents('cache.php',$buffer);
  16. include('cache.php');


 
 
seulement, comme je ne crée pas cache.php à tous les coups, je ne peux pas faire ca...
 
 
j'espère que c'est mieux expliqué :sweat:


---------------
oui oui
n°1260610
masklinn
í dag viðrar vel til loftárása
Posté le 06-12-2005 à 22:22:25  profilanswer
 

Hum, tu caches du PHP là [:petrus dei]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1260613
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 22:26:30  profilanswer
 

oui, derrière l'éléphant rose :p
 
en fait c'est parce que parfois j'ai besoin d'afficher un message d'erreur ou quelque chose, donc j'ai une page "cache" avec dedans un <? if($erreur) echo "pas bien" ?>
 
 
par exemple une page news avec euh... des news. Toutes le news sont mises en cache (donc plus besoin d'accès db), mais s'il y a une erreur à l'insertion d'une nouvelle news, j'affiche l'erreur.
 
c'est mal ?


---------------
oui oui
mood
Publicité
Posté le 06-12-2005 à 22:26:30  profilanswer
 

n°1260616
masklinn
í dag viðrar vel til loftárása
Posté le 06-12-2005 à 22:28:35  profilanswer
 

Ben normalement on cache le fichier final justement pour pouvoir le balancer direct sans faire de réinterprétations quoi [:petrus75]
 
Et j'vois pas pourquoi tu mettrais un message à tes utilisateurs quand t'as une merde quand t'insères une news, ils s'en foutent eux


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
n°1260640
art_dupond
je suis neuneu... oui oui !!
Posté le 06-12-2005 à 23:04:46  profilanswer
 

en fait je construis mes pages comme ca:
 
1. je construis layout.php : layout.xml + layout.xsl. (donc un "cache" du layout)
 
2. layout.php contient <? include ($module); ?>
 
3. un module est soit  

  • une page normale
  • un xml + xsl
  • un xml fabriqué à partir d'une DB + xsl


Donc pour éviter de devoir refabriquer mon fichier (DB-> XML + XSL), je "cache" le résultat de cette "fabrication".
 
Seulement, sur certaines pages, il faut afficher telles infos pour les membres, telles autres pour les admins, des infos personnalisées, ...
 
donc, je me fabrique une sorte de langage (c'est un bien grand mot mais bon) qui lors de ma "fabrication de pages" m'ajoute du php pour gérer ces différents cas.
 
mon cache me sert donc à avoir les infos dispos, formatées comme il faut.
 
Après, je gère suivant les cas (rang de l'utilisateur, données personnalisées, ...)
 
 
je suis tout ouï pour les critiques que vous pourriez émettre :)

Message cité 2 fois
Message édité par art_dupond le 07-12-2005 à 00:21:53

---------------
oui oui
n°1260677
leflos5
On est ou on est pas :)
Posté le 07-12-2005 à 01:47:42  profilanswer
 

!j'ai rien compris, mais si tu distingues le traitement de l'affichage t'auras pas besoin de ta bidouille :)
 
Il te faut un espèce de sytème de templates apparement vu comme t'abordes la chose, vois du côté de preg_match & co :)

n°1260682
kalex
Posté le 07-12-2005 à 02:06:45  profilanswer
 

art_dupond a écrit :

donc, je me fabrique une sorte de langage (c'est un bien grand mot mais bon) qui lors de ma "fabrication de pages" m'ajoute du php pour gérer ces différents cas.

Moi, c'est ça que j'ai pas compris. [:spamafote]  
J'ai encore moins compris en quoi ça t'oblige à interpréter du code PHP se trouvant dans une chaîne.

n°1260690
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 02:42:07  profilanswer
 

alala...
 
j'ai un template de ma page dans un fichier xsl.
 
 
layout.xsl

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  3. <xsl:template match="/">
  4. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
  5. <head>
  6.  <title>[pcp_vmessage]title[/pcp_vmessage]</title>
  7.  <link rel="stylesheet" type="text/css" href="./css/layout.css" />
  8. </head>
  9. <body>
  10.               <div id="menu">
  11.                   <mon_if test="admin">
  12.                         <xsl:for-each select="root/menu[@name='admin_menu']/menuItem">
  13.                               <a href="./index.php5?{href}"><xsl:value-of select="name"/></a>
  14.                         </xsl:foreach>
  15.                   </mon_if>
  16.                   <xsl:for-each select="root/menu[@name='main_menu']/menuItem">
  17.                         <a href="./index.php5?{href}"><xsl:value-of select="name"/></a>
  18.                    </xsl:foreach>
  19.               </div>
  20.               <mon_include>page_demandée</mon_include> <!-- ici ca va devenir <?php include('page_demandée.inc.php'); ?>
  21. </body>
  22. </html>
  23. </xsl:template>
  24. </xsl:stylesheet>


voir lignes: 8,14,18,24
 
 
le fichier layout.xml:

Code :
  1. <?xml version="1.0" encoding="ISO-8859-1"?>
  2. <root>
  3. <menu id="1" name="main_menu" show="1" position="left">
  4.  <menuItem show="1">
  5.   <name>Home</name>
  6.   <href>./index.php5</href>
  7.  </menuItem>
  8.  <menuItem show="1">
  9.   <name>news</name>
  10.   <type>htaccess</type>
  11.   <href>news</href>
  12.  </menuItem>
  13.  <menuItem show="1">
  14.   <name>puanteur</name>
  15.   <type>htaccess</type>
  16.   <href>puanteur</href>
  17.  </menuItem>
  18. </menu>
  19. <menu id="1" name="admin_menu" show="1" position="left">
  20.  <menuItem show="1">
  21.   <name>Post news</name>
  22.   <type>htaccess</type>
  23.   <href>news_1</href>
  24.  </menuItem>
  25. </menu>
  26. </root>


contient un "main_menu" et un "admin_menu"
 
 
 
J'applique le xsl sur le xml et je transforme avec preg_replace()
 

Code :
  1. [pcp_vmessage]title[/pcp_vmessage] -----> <?php echo $title; ?>
  2. <mon_if test="admin"> ------> <?php if($admin) { ?>
  3. <mon_include>page</page> -----> <?php include $page; /* $page est déterminé par le script */ ?>


et j'obtiens un fichier que je nomme layout.php
 
 
Quand on demande une page (tout ce fait depuis index.php), j'inclus layout.php qui lui même incluera la page demandée ($page).
 
On voit qu'il y a deux menus: un menu "normal" et un menu "admin" (dans layout.xml).
Avec ce système, je peux afficher le menu admin en mettant dans index.php
 
index.php

Code :
  1. $admin = true;
  2. include('layout.php');


d'accord, ce n'est pas un vrai cache statique, mais ca ne marche pas trop mal.
 
 
 
Maintenant les problèmes (interprétation du code de la chaine) :
la page incluse ($page) peut elle-même contenir des <mon_if> ou <mon_include>
 
Pour transformer ces pages, je les mets dans le buffer que je récupère sous forme de chaine, chaine que je transforme

Code :
  1. function transformation($string)
  2. {
  3.     remplace '<mon_if test="coco">' en '<?php if($coco); { ?>'
  4.     remplace '</mon_if>' en <?php } ?>
  5. }
  6. ob_start();
  7. include($page);
  8. // récupération buffer
  9. $buffer = ob_get_contents();
  10. // fin buffer et libération mémoire
  11. ob_end_clean();
  12. // transformation
  13. $buffer = transformation($buffer);
  14. // ici: $buffer vaut:
  15. // *****************************************//
  16. // <?php if($coco) { ?>
  17. //   <div id="coco">blabla</div>
  18. // <?php } ?>
  19. //
  20. // <div id="main">je suis la page principale...</div>
  21. //******************************************//
  22. // ici je veux que php interprete $buffer
  23. La_fonction_que_je_cherche($buffer);
  24. // mise en cache dans un fichier
  25. file_put_contents('cache.php',$buffer);


A la ligne 15, j'ai donc une chaine que je dois envoyer au navigateur, mais pas brut comme ca puisqu'elle contient des <? if... ?>
 
Il me faut donc interpréter $buffer;
 
 
 
vous avez compris ou il faut que je fasse caca aussi :p


Message édité par art_dupond le 07-12-2005 à 04:44:06

---------------
oui oui
n°1260691
leflos5
On est ou on est pas :)
Posté le 07-12-2005 à 02:48:57  profilanswer
 

interprêter du php c'est eval comme quelqu'un t'as dit plus haut :)
A voir que tu peux utiliser un callback avec preg_replace_callback ;) Et y faire tes évaluations de code php par exemple :whistle:

n°1260692
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 02:50:26  profilanswer
 

oui mais  

Code :
  1. eval('<? echo "coucou"; ?><span>merdouille</span>');


ca ne marche pas
 
 
vais voir cet preg_replace_callback()...


---------------
oui oui
n°1260693
kalex
Posté le 07-12-2005 à 02:54:14  profilanswer
 

Ton imagination est sans limite. :D
 
[SI J'AI BIEN COMPRIS :]
Tu devrais plutôt modifier ton layout.xml en fonction de l'utilisateur et ensuite appliquer le XSL qui habillera lui même les éventuels champs optionnels. Ca serait en tout cas bc plus propre, parce que là ton preg_replace sur le résultat d'une transformation XSL... [:shinji_kun64]

n°1260694
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 02:55:24  profilanswer
 

oui mais non, ca ne va pas le preg_replace_callback :p
 
enfin je ne vois pas comment ca pourrait marcher.
 
exemple:

Code :
  1. $buffer = <<< EOF
  2. <? if($toto) { ?>
  3. <span> bonjout toto</span>
  4. <? } ?>
  5. <span> j'ai faim </span>
  6. EOF;


 
donc si je fais  
 

Code :
  1. $toto = true;
  2. Interprete($buffer);


donnera

Citation :

<span> bonjout toto</span>
<span> j'ai faim </span>


 
 

Code :
  1. $toto = false;
  2. Interprete($buffer);


donnera
<span> j'ai faim </span>[/quote]


---------------
oui oui
n°1260695
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 02:57:44  profilanswer
 

kalex a écrit :

Ton imagination est sans limite. :D
 
[SI J'AI BIEN COMPRIS :]
Tu devrais plutôt modifier ton layout.xml en fonction de l'utilisateur et ensuite appliquer le XSL qui habillera lui même les éventuels champs optionnels. Ca serait en tout cas bc plus propre, parce que là ton preg_replace sur le résultat d'une transformation XSL... [:shinji_kun64]


 
 
oui mais mon preg_replace, je ne le fais qu'une fois pour créer layout.php (une sorte de cache). c'est donc plus léger que de refaire la transfo xml+xsl suivant les users...
 
je sais bien que je peux appliquer un xsl spécifique à chaque user, mais par expemple, si la page appelée veut un titre particulier pour la page, ben il faudra réappliquer le xsl.
 
Donc là, je me fais la transformation une fois et après, la page réagit en fonction des paramètres demandés
 
 
ps:

Citation :

Ton imagination est sans limite. :D


il est très bien mon système :o


Message édité par art_dupond le 07-12-2005 à 03:12:11

---------------
oui oui
n°1260696
kalex
Posté le 07-12-2005 à 03:13:23  profilanswer
 

Ben franchement, je viens de relire ton explication, c'est affreux ce système ! :o
Avec ce raisonnement tu vas arriver à deux versions de toutes tes fonctions, l'une dans le cache, l'autre dans le vrai moteur du site.
Si tu veux un cache efficace, suit ce conseil simple : JAMAIS de code exécutable dans le cache.
edit : je parle là du fichier que tu crées en vue de "cacher" les données de la bdd.


Message édité par kalex le 07-12-2005 à 03:15:24
n°1260697
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 03:19:05  profilanswer
 

la plupart du temps, il n'y aura bien aucun code php dans ces pages "cachées".
 
 
mais il peut arriver par exemple que j'ai besoin du nom de l'utilisateur en ligne dans une de ces pages.
 
j'aurai donc un <? echo $login; ?> dans ce "cache"
 
comment faire avec un "vrai" cache :??:
 
je ne vais quand meme pas reconstruire toute la page pour rajouter le login...  
et je ne vais pas ne pas faire de cache juste parce que je dois faire un echo dedans...
 
 
edit: il n'y aura qu'une version de mes fonctions:
 
index.php

Code :
  1. include('fonctions.php');
  2. include('layout.php');


 
 
layout.php

Code :
  1. include('faux_cache.php');


 
 
faux_cache.php

Code :
  1. <span>coucou <? echo $login; ?></span>


 
 
 
où est le problème ?


Message édité par art_dupond le 07-12-2005 à 03:26:47

---------------
oui oui
n°1260700
kalex
Posté le 07-12-2005 à 03:33:04  profilanswer
 

Ce qui me vient à l'esprit, c'est plutot ce genre de shema :

  • Chargement des données venant du cache.
  • Calcul/Ajout des données spécifiques à cet utilisateur.
  • Affichage du tout.


Il me paraît clair que c'est au système de cache de gérer l'ajout et non aux fichiers "cachés".

n°1260701
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 03:41:34  profilanswer
 

c'est peut-etre "mieux", mais c'est plus léger comme je fais non (ca évite des tas de traitements pour afficher un pauvre truc: j'inclus la page et basta) ?
 
En plus ca marche plutot bien, le seul problème étant le fait d'être obligé de mettre en cache pour que ca marche... (puisque quand le fichier "cache" est inclus, il est interprèté).
 
 
Q: Pourquoi alors ne pas inclure une page php normale (sans <mon_if>, ...) quand je ne veux pas mettre en cache ?
 
A: parce que je veux pouvoir mettre en cache ou non dynamiquement suivant la fréquence de modification d'une page... (pour plus tard mais je prévois)


Message édité par art_dupond le 07-12-2005 à 03:46:38

---------------
oui oui
n°1260702
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 03:49:53  profilanswer
 

bon, dodo :sleep:
 
 
 
 :hello:


Message édité par art_dupond le 07-12-2005 à 03:50:00

---------------
oui oui
n°1260703
kalex
Posté le 07-12-2005 à 03:54:30  profilanswer
 

Pour la rapidité, tout dépend de la façon de faire, de ce que tu mets dans ton cache, de la méthode utilisée...
Mais je pense que ça peut être tout aussi rapide.
 
Bonne nuit. ;)

n°1260704
leflos5
On est ou on est pas :)
Posté le 07-12-2005 à 03:59:21  profilanswer
 

art_dupond a écrit :

oui mais non, ca ne va pas le preg_replace_callback :p
 
enfin je ne vois pas comment ca pourrait marcher.
 
exemple:

Code :
  1. $buffer = <<< EOF
  2. <? if($toto) { ?>
  3. <span> bonjout toto</span>
  4. <? } ?>
  5. <span> j'ai faim </span>
  6. EOF;


 
donc si je fais  
 

Code :
  1. $toto = true;
  2. Interprete($buffer);


donnera

Citation :

<span> bonjout toto</span>
<span> j'ai faim </span>


 
 

Code :
  1. $toto = false;
  2. Interprete($buffer);


donnera
<span> j'ai faim </span>[/quote]


Oui donc? Il est où le problème, tu réinvente les concepts de base là :??: :whistle:

n°1260705
leflos5
On est ou on est pas :)
Posté le 07-12-2005 à 04:00:37  profilanswer
 

En fait si tu fais du php tu fais un echo, tu peux pas mêler php et html comme ça comme tu veux :)

n°1260706
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 04:27:35  profilanswer
 

insomnie powaaaa :sweat:
 
suis crevé :sleep:  
 
 
 :cry:  
 

leflos5 a écrit :

Oui donc? Il est où le problème, tu réinvente les concepts de base là :??: :whistle:


ben le problème c'est que je ne vois pas ce que viendrait faire preg_replace_callback() dans le bazar

leflos5 a écrit :

En fait si tu fais du php tu fais un echo, tu peux pas mêler php et html comme ça comme tu veux :)


c'est bien ca mon problème
 
en résumé, ce que je voudrais faire :

Code :
  1. // ma chaine
  2. $buffer = <<< EOF
  3. <? if($toto) { ?>
  4. <span> bonjout toto</span>
  5. <? } ?>
  6. <span> j'ai faim </span>
  7. EOF;
  8. // écriture dans un fichier temporaire : temp.php
  9. file_put_contents('temp.php',$buffer);
  10. // include du fichier temporaire
  11. include('temp.php');


mais sans créer le fichier temp.php


---------------
oui oui
n°1260707
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 04:31:36  profilanswer
 

kalex a écrit :

Pour la rapidité, tout dépend de la façon de faire, de ce que tu mets dans ton cache, de la méthode utilisée...
Mais je pense que ça peut être tout aussi rapide.
 
Bonne nuit. ;)


 
merci :)
 
 
mettons que j'ai un fichier cache.html
 
si je dois y placer $login
 
je ferais un truc du genre

Code :
  1. str_replace('{login}',$login,file_get_contents('cache.html'));


mais je trouve ca un peu lourd...
 
 
tu ferais comment ?
 
 
mmmm doit y avoir des fonctions de manipulation de fichier qui faciliteraient les choses... je vais me pencher dessus
par contre, pour mes IF, je ne vois pas comment faire, à part un fichier pour chaque cas...

Message cité 1 fois
Message édité par art_dupond le 07-12-2005 à 04:34:40

---------------
oui oui
n°1260995
kalex
Posté le 07-12-2005 à 15:07:33  profilanswer
 

art_dupond a écrit :

merci :)
 
 
mettons que j'ai un fichier cache.html
 
si je dois y placer $login
 
je ferais un truc du genre

Code :
  1. str_replace('{login}',$login,file_get_contents('cache.html'));


mais je trouve ca un peu lourd...

C'est l'une des manières de faire une template. Et je pense que c'est plus rapide de remplacer une simple occurrence que de parser tout un fichier contenant du code PHP autrement plus complexe que "{login}"...

n°1261098
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 16:03:27  profilanswer
 

oui mais
 
je ne parse qu'UNE seule fois: lors de la mise en cache (je ne sais pas pourquoi mais je n'arrive pas à faire passer ce message :ange: ).
 
avec un système de template classique, on doit remplacer {login} à chaque appel de la page, et donc parser à chaque appel (oui bon, on peut aussi mettre en cache...).
 
chez moi, il y a un <? echo $login; ?> donc, il n'y a plus rien à faire :) (enfin si, php doit quand meme parser la page mais ce n'est quand meme pas plus pire que de chercher {login} dans la page et le remplacer. Je dirais même que c'est plus rapide :o)


Message édité par art_dupond le 07-12-2005 à 16:24:08

---------------
oui oui
n°1261133
kalex
Posté le 07-12-2005 à 16:33:25  profilanswer
 

Si j'ai bien compris !
Mais je ne vois pas en quoi ça serait plus rapide d'exécuter une chaîne contenant du code PHP que d'y remplacer 2/3 occurrences.

n°1261309
art_dupond
je suis neuneu... oui oui !!
Posté le 07-12-2005 à 22:28:12  profilanswer
 

ben c'est déjà pas moins rapide.
 
puis ca me permet un peu de souplesse dans mon cache.
 
Par exemple si j'ai un "module" qui affiche des produits, et que je veux que ce module apparaisse sur plusieurs pages, il me suffit de mettre

Code :
  1. <mon_include>module_produits</mon_include>


dans ces pages et ca roule.
 
c'est presque comme un vrai cache sauf qu'il y a 3 includes() (un pour inclure le layout, un pour inclure la page demandée et un pour inclure le module.) En dehors de ca, pas de php.
 
Bon un include coûte un peu, mais ce n'est pas significatif et le système est simple à l'emploi et me convient donc je suis content :)
 
 
enfin bon, je crois qu'on a chacun notre avis donc voilà ;)
 
 
 
et sinon, pour mon problème ? :p


Message édité par art_dupond le 07-12-2005 à 22:30:01
n°1262281
TheRom_S
Posté le 09-12-2005 à 03:47:25  profilanswer
 

question con car j'ai un doute :
c'est bien IE ou firefox qui applique la feuille de style xsl sur le poste du client, donc après pour évaluer du php qui y serait inclus, faudrait que le client rebalance la page au site (sous forme de formulaire avec un submit auto ? gnin ?) pour que le site la renvoie encore, corrigée ...
 
bref si j'ai raison, ce que tu veux faire n'est pas possible à ce moment-là


---------------
The Rom's, à votre service
n°1262632
art_dupond
je suis neuneu... oui oui !!
Posté le 09-12-2005 à 15:00:56  profilanswer
 

TheRom_S a écrit :

question con car j'ai un doute :
c'est bien IE ou firefox qui applique la feuille de style xsl sur le poste du client, donc après pour évaluer du php qui y serait inclus, faudrait que le client rebalance la page au site (sous forme de formulaire avec un submit auto ? gnin ?) pour que le site la renvoie encore, corrigée ...
 
bref si j'ai raison, ce que tu veux faire n'est pas possible à ce moment-là


non, j'applique le xsl sur le xml côté serveur ;)

n°1267463
zapan666
Tout est relatif
Posté le 15-12-2005 à 15:44:24  profilanswer
 

art_dupond a écrit :


Seulement, sur certaines pages, il faut afficher telles infos pour les membres, telles autres pour les admins, des infos personnalisées, ...
 
donc, je me fabrique une sorte de langage (c'est un bien grand mot mais bon) qui lors de ma "fabrication de pages" m'ajoute du php pour gérer ces différents cas.


1- Pourquoi ne pas passer les variables aux feuilles xslt ?  
2- Pourquoi ne pas récuperer l'état de différente variable en appelant une fonction php depuis une feuille xslt ?  
 
 

n°1267490
Berceker U​nited
PSN : berceker_united
Posté le 15-12-2005 à 15:51:48  profilanswer
 

include $include;  
sa roule; pas ? j'ai pas trop saisie là :/
Edit ok j'ai rien je vais de comprendre le truc


Message édité par Berceker United le 15-12-2005 à 15:52:31
n°1267523
Berceker U​nited
PSN : berceker_united
Posté le 15-12-2005 à 15:57:31  profilanswer
 

art_dupond a écrit :

oui mais  

Code :
  1. eval('<? echo "coucou"; ?><span>merdouille</span>');


ca ne marche pas
 
 
vais voir cet preg_replace_callback()...


normal parce que tu as <? ... ?> il te faut un interpreteur d'un niveau plus haut.

n°1267587
art_dupond
je suis neuneu... oui oui !!
Posté le 15-12-2005 à 16:11:13  profilanswer
 

zapan666 a écrit :

1- Pourquoi ne pas passer les variables aux feuilles xslt ?  
2- Pourquoi ne pas récuperer l'état de différente variable en appelant une fonction php depuis une feuille xslt ?


parce que je ne veux pas devoir appliquer le xslt (appliqué coté serveur) à chaque appel de mes pages.

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Précédente

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  interpreter une chaine à la volée ?

 

Sujets relatifs
Extraction d'une suite de chiffres variables d'un chaine variable[Oracle] Teste chaine de caractere
[Pascal] Chaine de caractere (string)Chaine de caratères : sortir les espaces à la fin
Chaîne de caractère[PHP] Créer une variable à partir d'une chaîne de caractères ?
Copie d'un fichier avec extraction de chainechaine de caracteres en tableau : str_split()
[BASH] Contenu d'un chaîne séparer par ";" (CSV)Renvoi d'un chaîne d'adresse XValues etc...
Plus de sujets relatifs à : interpreter une chaine à la volée ?


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR