retourner dans une chaine un fichier PHP interprété

retourner dans une chaine un fichier PHP interprété - PHP - Programmation

Marsh Posté le 28-11-2006 à 17:08:00    

Hello

 

Existe-t-il une fonction qui retourne dans une chaine un fichier PHP interprété, du style :

 

contenu.php :

Code :
  1. <?php
  2. echo '321';
  3. ?>
 

appel.php :

Code :
  1. <?php
  2. $var = lafonction('contenu.php');
  3. echo $var;
  4. ?>
 

appel.php retournant donc :

Code :
  1. 321
 

et sinon comment faire ? (la vraie utilisation est bcp plus compilquée que des echo hein !)

 

merci !


Message édité par theredled le 28-11-2006 à 17:09:33

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 28-11-2006 à 17:08:00   

Reply

Marsh Posté le 28-11-2006 à 17:14:46    

eval peut-être?
http://fr2.php.net/eval
 
avec une petite lecture de l'astuce proposée.

Reply

Marsh Posté le 28-11-2006 à 17:20:44    

sinon tu fais un file_get_contents avec l'url de ta page ( attention pas le chemin mais bien l'url)

Reply

Marsh Posté le 28-11-2006 à 17:24:49    

dwogsi a écrit :

eval peut-être?
http://fr2.php.net/eval
 
avec une petite lecture de l'astuce proposée.


ya de l'idée mais ça n'évalue pas l'HTML  :sweat:


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 28-11-2006 à 17:32:09    

anapajari a écrit :

sinon tu fais un file_get_contents avec l'url de ta page ( attention pas le chemin mais bien l'url)


ça marche mais j'aimerais trouver mieux :) merci quand même ;)


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 28-11-2006 à 17:42:15    

theredled a écrit :

ya de l'idée mais ça n'évalue pas l'HTML  :sweat:


hein?

Reply

Marsh Posté le 28-11-2006 à 18:05:52    

La meilleure méthode est d'utiliser l'output buffering. C'est ce que j'utilise pour mes templates (c'est aussi très bien si faut faire de la très grosse concaténation).
 

Code :
  1. ob_start()
  2. require('contenu.php');
  3. $var = ob_get_contents();
  4. ob_end_clean();

Reply

Marsh Posté le 28-11-2006 à 18:07:23    

anapajari a écrit :

sinon tu fais un file_get_contents avec l'url de ta page ( attention pas le chemin mais bien l'url)


Bonjour les performances avec la requête HTTP à chaque fois :(

Reply

Marsh Posté le 28-11-2006 à 18:38:37    


Ben ça interprete bien le php, mais ça ne connait pas le html.
 

FlorentG a écrit :

La meilleure méthode est d'utiliser l'output buffering. C'est ce que j'utilise pour mes templates (c'est aussi très bien si faut faire de la très grosse concaténation).
 

Code :
  1. ob_start()
  2. require('contenu.php');
  3. $var = ob_get_contents();
  4. ob_end_clean();



Ca ca me parait cool  :sol:  
 


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Marsh Posté le 29-11-2006 à 01:57:07    

Ca pourrait pas simplement se régler par un return ton histoire :??:

Reply

Marsh Posté le 29-11-2006 à 01:57:07   

Reply

Marsh Posté le 29-11-2006 à 07:59:08    

Ca peut être intéressant d'utiliser des echo, on s'embête pas trop de la destination, et pas besoin de concaténation, du coup performances boostées si y'a tout plein de echos

Reply

Marsh Posté le 30-11-2006 à 01:24:53    

FlorentG a écrit :

Ca peut être intéressant d'utiliser des echo, on s'embête pas trop de la destination, et pas besoin de concaténation, du coup performances boostées si y'a tout plein de echos


Soit, c'est pas naturel, mais c'est vrai que les tampons font des choses merveilleuses quand ils sont bien utilisés :jap:

Reply

Marsh Posté le 30-11-2006 à 18:45:43    

comme expliqué ci dessus, tu fais simplement :
 
eval(file_get_contents("contenu.php" ));
 
mais le include est également possible...
 
include "contenu.php";
 
L'avantage du eval, c'est qu'il permet d'exécuter un bout de code se trouvant dans une chaine, par exemple récupérée sur la base de données...


---------------
Brice de www.boursica.com
Reply

Marsh Posté le 30-11-2006 à 18:46:27    

Au niveau performance, j'me demande si l'output buffering ne serait pas mieux :/

Reply

Marsh Posté le 30-11-2006 à 18:47:49    

Ah ben non même pas, eval ne permet pas de stocker le résultat dans une variable, donc à part OB, pouet...

Reply

Marsh Posté le 30-11-2006 à 19:01:26    

nan mais ça c'est cool (ob), en plus ça me sert à débugger les script appelés depuis flash [:nivers] en mettant l'output dans un fichier  :)
bonne découverte


Message édité par theredled le 30-11-2006 à 19:02:21

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
Reply

Sujets relatifs:

Leave a Replay

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