Résultat code PHP dans une variable --> include ?

Résultat code PHP dans une variable --> include ? - PHP - Programmation

Marsh Posté le 05-03-2007 à 10:08:48    

Bonjour,
 
J'explique ce que je veux faire :
 
J'ai un fichier php disons bonjour.php :
 

Code :
  1. <p>Bonjour <strong><?php echo $nom ?></strong></p> <?php appel_fonction_bidon() ?>


 
Je veux l'appeler dans une fonction et mettre le résultat dans une variable.
 

Code :
  1. $nom = "Mon nom";
  2. $incl = recuperation("bonjour.php" );


 
$incl contiendra donc la sortie de bonjour.php : "<p>Bonjour <strong>Mon nom</strong></p> ".
Avec appel de la fonction appel_fonction_bidon() (donc affichage de son return éventuel)
 
Et pourra être affiché plus tard.
 
MAIS je ne sais pas comment faire :
 
include("bonjour.php" ) --> exécute le php et écrit tout de suite le code dans la page.
file_get_contents("bonjour.php" ) --> me retourne "<p>Bonjour <?php echo $nom ?></p> <?php appel_fonction_bidon() ?>" sans avoir exécuté le code php.
 
Il y a t'il une fonction que je ne connais pas ?
 
Merci.

Reply

Marsh Posté le 05-03-2007 à 10:08:48   

Reply

Marsh Posté le 05-03-2007 à 10:17:40    

p'tain....  [:baobab04]  (ouais j'laime bien ce smiley :D)
 
Tu fais une fonction... tout simplement au lieu d'inclure un fichier php....
 

Code :
  1. function fonction_toute_bidon ($variable1) {
  2. // calculs sur ta variable1
  3. $variable2=$variable1;
  4. return ($avariable2);
  5. }


Tu claque ça dans un fichier php style biblio.inc.php
Tu include ce fichier partout où tu veux avoir accés aux fonctions présente dans ce fichier
et tu appel ces fonctions comme des fonctions natives php...
 
bref une chose présente dans.. au choix, la doc PHP, des tutos, partout quoi. :o  :heink:

Reply

Marsh Posté le 05-03-2007 à 11:18:34    

Sinon, tu peux chercher ob_start dans la doc de PHP si ce que Chani te propose ne te plait pas.

Reply

Marsh Posté le 05-03-2007 à 11:25:01    

nORKy a écrit :

Sinon, tu peux chercher ob_start dans la doc de PHP si ce que Chani te propose ne te plait pas.


 
Yep... gestion d'un tampon (c'est sympa comme fonction ;) ) surtout util quand tu veux gérer un cache, ou éviter les soucis avec les headers..

Reply

Marsh Posté le 05-03-2007 à 14:13:53    

Reply

Marsh Posté le 05-03-2007 à 15:36:27    

sielfried a écrit :

Code :
  1. require 'bonjour.php';
  2. $output = ob_get_clean();



 
Ok c'est ça qu'il me faut ! Merci sielfried.
 
[ :fou: ]Chani_t : Merci, j'ai apris à faire une fonction.
Je suis développeur de métier (pas dans le web), j'ai 2 bibles sur PHP5, si je pose la question c'est que je n'ai pas trouvé la réponse par moi-même. C'est à ça que sert les forum non ?[/ :fou: ]
 
Je veux utiliser ça pour faire des templates.
 
J'ai une classe Template qui permet de charger un template et d'y placer une page principale.

Code :
  1. $t = new Template()
  2. $t->load_page("contact.php" );
  3. $t->use_template("main" );


 
J'ai un template "main" du genre :
 

Code :
  1. <html ....>
  2. <head><?php echo $this->title() ?></head>
  3. <body>
  4. <?php $this->menu(); ?>
  5. <?php $this->main(); ?>
  6. </body>
  7. </html>


 
$this->main(); charge la page défini par $t->load_page()
Par exemple la page de contact :
 

Code :
  1. <form method="post" action="<?php echo $_SERVER['PHP_SELF']"?>
  2. (...)
  3. </form>


 
--> Quand je fais load_page je ne veux pas que la page s'affiche tout de suite, je veux juste la stocker pour la mettre à la place de $this->main();
 
 
EDIT : Le problème s'est posé quand dans ma page contact.php j'ai voulu faire un header("location: ..." );
Vu que le début du template (juste avant le $this->main()) était déjà écrit : je n'avais pas le droit de modifier l'en-tête.

Message cité 1 fois
Message édité par moustik510 le 05-03-2007 à 15:39:19
Reply

Marsh Posté le 05-03-2007 à 16:21:23    

moustik510 a écrit :

Ok c'est ça qu'il me faut ! Merci sielfried.
 
[ :fou: ]Chani_t : Merci, j'ai apris à faire une fonction.
Je suis développeur de métier (pas dans le web), j'ai 2 bibles sur PHP5, si je pose la question c'est que je n'ai pas trouvé la réponse par moi-même. C'est à ça que sert les forum non ?[/ :fou: ]


 
Oula... mossieur l'maréchal nous fait une crise de zéle :D..
 
en lisant ton post d'un premier abord, ce n'était pas évident que tu savais faire une fonction...
de plus sur HFR, ya pas que des personnes qui son des développeurs expérimentés.. loin de la (tout du moins dans la cat PHP  [:daique] )
Ensuite, si tu avais vraiment des bible en php5, ou si tu les avais lue avec attention, tu aurait forcément vu cette fonctionnalité..
Et puis ce que tu cherche à faire c'est utiliser un buffer (tampon).. pas mettre le résultat de la fonction dans une variable
 
Bon enfin... nOrky t'avais donné une trés bonne piste...
 
sans racune..

Reply

Marsh Posté le 05-03-2007 à 16:39:52    

chani_t a écrit :

pas mettre le résultat de la fonction dans une variable


 
Je cherchais plutot à mettre le contenu d'un fichier PHP dans une variable.  
 
En voyant l'erreur indiquant que je ne pouvais pas modifier le header une fois qu'il y avait quelque chose d'écrit dans le tampon, j'ai essayé de vider le tampon, mais je n'ai pas trouvé la fonction les fonctions indiquées par nORKy et sielfried, et, j'avoue, je ne savais même pas si c'était possible.
 
Merci en tout cas. Sur ce forum, positive ou négative, il y a toujours une réponse, ça permet d'avancer.
 
Faudrait un forum aussi dynamique sur SAP ...  :whistle: ... en français

Reply

Sujets relatifs:

Leave a Replay

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