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

 


 Mot :   Pseudo :  
 
 Page :   1  2
Page Suivante
Auteur Sujet :

interpreter une chaine à la volée ?

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

Reprise du message précédent :

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 15-12-2005 à 16:11:13  profilanswer
 

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

Berceker United a écrit :

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


pas bien compris... comment je dois faire ?

n°1267608
Berceker U​nited
PSN : berceker_united
Posté le 15-12-2005 à 16:20:19  profilanswer
 

art_dupond a écrit :

pas bien compris... comment je dois faire ?


Eval ne peut pas interpréter ce qu'il ya en dehors de <? ... ?> donc il faut parseur de fichier et qui fasse intervenir un eval seulement sur les éléments à l'interieur des balises <? ... ?> c'est à dire <? eval(...); ?>
 

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

le truc c'est que je veux éviter de faire un fichier...
 
C'est vrai que remplacer  <? ... ?> par <? eval(...); ?> pourra bien me dépanner pour afficher des variables. :jap:
 
mais je ne pourrai toujours pas faire
 
<? if ($toto) { ?> <span>toto</span> <? } ?> :(

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

quoique...  
 
bon faut que je réfléchie un bon coup...
 
peut etre remplacer  
 
<? if ($toto) { ?> <span>toto</span> <? } ?>
 
par  
 
<? eval(if ($toto) { echo "<span>toto</span> "}) ?>
 
 
va falloir tester mais c'est peut etre une bonne piste
 
encore :jap:

n°1267650
Berceker U​nited
PSN : berceker_united
Posté le 15-12-2005 à 16:30:40  profilanswer
 

art_dupond a écrit :

le truc c'est que je veux éviter de faire un fichier...
 
C'est vrai que remplacer  <? ... ?> par <? eval(...); ?> pourra bien me dépanner pour afficher des variables. :jap:
 
mais je ne pourrai toujours pas faire
 
<? if ($toto) { ?> <span>toto</span> <? } ?> :(


Exacte , il va pas interpreter qu'il y a une condition. :/  
Ben si tu replaces ?.
if ($toto) {  echo '<span>toto</span>'; }
ou bien faire en sorte qu'il fasse en gros tu remplace ?> => echo ' et <? => '; et apres tu peux appliquer ton éval ce qui va revenir à cela  
if ($toto) {  echo '<span>toto</span>'; }


Message édité par Berceker United le 15-12-2005 à 16:32:51
n°1267654
art_dupond
je suis neuneu... oui oui !!
Posté le 15-12-2005 à 16:32:19  profilanswer
 
n°1267746
kalex
Posté le 15-12-2005 à 17:19:33  profilanswer
 

T'as toujours pas changé d'avis !!? ;)  
 
Je me répète, mais pourquoi ne pas faire comme beaucoup d'autres template, à savoir (schématiquement) :

if(condition...){
 $login = "Bienvenue";
}else{
 $login = "Connexion";
}
 
echo str_replace('{login}', $login, $code_page);

Fait des tests, je suis pratiquement certain que c'est aussi rapide (peut-être même plus) que de faire eval sur une chaîne pleine d'echo, de ; et de "'... Et c'est de toute façon mille fois plus saint.
 
Citation de Rasmus Lerdorf (c'est quand même le créateur de PHP) :

Citation :

If eval() is the answer, you're almost certainly asking the wrong question.


 
Et puis regarde cette page :

Citation :

Besides security concerns eval also has the problem of being incredibly slow. In my testing on PHP 4.3.10 its 10 times slower then normal code and 28 times slower on PHP 5.1 beta1.  
http://blog.joshuaeichorn.com/arch [...] al-in-php/


Message édité par kalex le 15-12-2005 à 17:20:52
n°1267932
art_dupond
je suis neuneu... oui oui !!
Posté le 15-12-2005 à 20:20:56  profilanswer
 

oui je ne pense pas que eval soit la bonne solution finalement (ca complique quand meme pas mal l'air de rien et pour rien... et d'après ce que tu dis, c'est pas vraiement idéal comme solution).
 
en fait, je voudrais avoir un truc qui permette d'ajouter des pages sans toucher au code.
 
donc si j'ai une page comme ca:
 


<mon_if test="admin"><div>machin pour un admin</div></mon_if>
<div>
  le reste de la page
</div>


 
je voudrais qu'il sache tout seul que si c'est un admin, il doit afficher le div pour admin.

n°1267941
kalex
Posté le 15-12-2005 à 20:44:28  profilanswer
 

En fait, ce que tu voudrais, c'est exécuter une fonction mon_if et non pas remplacer mon_if par autre chose, c'est ça ?
Quelle que soit la manière dont tu vas t'y prendre, tu arriveras toujours à faire une recherche dans ton fichier et à exécuter une condition. Même en créant ton propre langage de script ça se passerait comme ça. Autant aller au plus simple !

mood
Publicité
Posté le 15-12-2005 à 20:44:28  profilanswer
 

n°1268099
zapan666
Tout est relatif
Posté le 16-12-2005 à 01:36:12  profilanswer
 

art_dupond a écrit :

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


bah découpe ton truc en p'tit bout alors.
 
Genre pour un forum, tu fais un buffer pour les messages ( la sortie XSLT, tu l'a mets en html) et tout ce qui est dynamique, tu bufferise pas
et donc ta page finale fait le mix des deux.
 
En fait, je vois pas trop ce que tu essaye de faire : je trouve ça étrange de vouloir faire un buffer de code php [:pingouino]


---------------
my flick r - Just Tab it !
n°1268103
art_dupond
je suis neuneu... oui oui !!
Posté le 16-12-2005 à 04:28:28  profilanswer
 

c'est ce que je fais. La page finale est un mix d'html et de php. Le php sert à afficher des variables ou a afficher différents menus suivant le rang du user (par exemple), ...
 
c'est seulement quand je ne mets pas en cache que les problèmes commencent. et ce parce que je veux que mes pages soient de la même forme qu'elles soient mises en cache ou non.
 

<mon_if test="membre"><div>bonjour monsieur le membre</div></mon_if>
<div>le reste de la page</div>


 
si mis en cache, mon fichier "cache" contiendra:


<?php if($membre) { ?><div>bonjour monsieur le membre</div><?php } ?>
<div>le reste de la page</div>


 
Si ce n'est pas mis en cache -> problème, il faut que j'interprète le "if" à la volée.  
Solution: mettre le tout dans un fichier et l'includer.
Problème potentiel:  
 


   user_1 demande la page   --->  le script crée le fichier         }   -> que se passera-t-il ?
   user_2 demande la page   --->  le script crée le fichier         }

mood
Publicité
Posté le   profilanswer
 

 Page :   1  2
Page Suivante

Aller à :
Ajouter une réponse
 

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