interpreter une chaine à la volée ?

interpreter une chaine à la volée ? - PHP - Programmation

Marsh Posté le 06-12-2005 à 19:21:54    

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
Reply

Marsh Posté le 06-12-2005 à 19:21:54   

Reply

Marsh Posté le 06-12-2005 à 19:35:19    

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
Reply

Marsh Posté le 06-12-2005 à 19:35:54    

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


---------------
oui oui
Reply

Marsh Posté le 06-12-2005 à 19:41:08    

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
Reply

Marsh Posté le 06-12-2005 à 19:45:53    

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
Reply

Marsh Posté le 06-12-2005 à 19:46:32    

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


---------------
oui oui
Reply

Marsh Posté le 06-12-2005 à 21:13:41    

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


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 06-12-2005 à 22:12:47    

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
Reply

Marsh Posté le 06-12-2005 à 22:22:25    

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
Reply

Marsh Posté le 06-12-2005 à 22:26:30    

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
Reply

Marsh Posté le 06-12-2005 à 22:26:30   

Reply

Marsh Posté le 06-12-2005 à 22:28:35    

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
Reply

Marsh Posté le 06-12-2005 à 23:04:46    

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
Reply

Marsh Posté le 07-12-2005 à 01:47:42    

!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 :)

Reply

Marsh Posté le 07-12-2005 à 02:06:45    

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.

Reply

Marsh Posté le 07-12-2005 à 02:42:07    

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
Reply

Marsh Posté le 07-12-2005 à 02:48:57    

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:

Reply

Marsh Posté le 07-12-2005 à 02:50:26    

oui mais  

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


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


---------------
oui oui
Reply

Marsh Posté le 07-12-2005 à 02:54:14    

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]

Reply

Marsh Posté le 07-12-2005 à 02:55:24    

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
Reply

Marsh Posté le 07-12-2005 à 02:57:44    

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
Reply

Marsh Posté le 07-12-2005 à 03:13:23    

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
Reply

Marsh Posté le 07-12-2005 à 03:19:05    

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
Reply

Marsh Posté le 07-12-2005 à 03:33:04    

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".

Reply

Marsh Posté le 07-12-2005 à 03:41:34    

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
Reply

Marsh Posté le 07-12-2005 à 03:49:53    

bon, dodo :sleep:
 
 
 
 :hello:


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

---------------
oui oui
Reply

Marsh Posté le 07-12-2005 à 03:54:30    

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. ;)

Reply

Marsh Posté le 07-12-2005 à 03:59:21    

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:

Reply

Marsh Posté le 07-12-2005 à 04:00:37    

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

Reply

Marsh Posté le 07-12-2005 à 04:27:35    

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
Reply

Marsh Posté le 07-12-2005 à 04:31:36    

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
Reply

Marsh Posté le 07-12-2005 à 15:07:33    

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}"...

Reply

Marsh Posté le 07-12-2005 à 16:03:27    

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
Reply

Marsh Posté le 07-12-2005 à 16:33:25    

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.

Reply

Marsh Posté le 07-12-2005 à 22:28:12    

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
Reply

Marsh Posté le 09-12-2005 à 03:47:25    

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
Reply

Marsh Posté le 09-12-2005 à 15:00:56    

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 ;)

Reply

Marsh Posté le 15-12-2005 à 15:44:24    

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 ?  
 
 

Reply

Marsh Posté le 15-12-2005 à 15:51:48    

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
Reply

Marsh Posté le 15-12-2005 à 15:57:31    

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.

Reply

Marsh Posté le 15-12-2005 à 16:11:13    

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.

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed