Page 1 sur 1

comment enregistrer un code généré

Posté : 07 juil. 2006, 13:03
par polako
bonjour a tous,

je génère une page html a l'aide de mon programme php, et j'aimerai savoir comment faire pour pouvoir sauvergarder mon code "généré".

quels moyens puis-je utiliser ?

merci a tous !

Posté : 07 juil. 2006, 13:21
par sadeq
en utilisant les fonctions : fopen+fputs+fclose ou la fonction file_put_contents pour écrire le contenu html généré dans un fichier .HTM

Exemple :
Générateur de page HTML écrit en PHP:
<?php 
//source html de la page à écrire 
$html = "entrer ici le code html de la page à générer. Exemple: <h1>Ma page</h1><hr>Bienvenue,"; 

//Ecriture de la page HTML 
file_put_contents ("page_html1.htm", $html); 

//test: affichage de la page générée 
header ("location: page_html1.htm");
?>

Posté : 07 juil. 2006, 14:00
par Shrell
attention, file_put_contents n'existe qu'à partir de php 5.
Pour les versions anterieures, comme le dit sadeq, c'est fopen, fputs et fclose, faute de mieux

Posté : 07 juil. 2006, 14:23
par polako
oui merci, mais j'ai une petite question, je génére mon code html dans une page php en faite;

mais comment faire pour récupéré juste le code html, pour pouvoir remplir $html dans ton exemple?

merci

Posté : 07 juil. 2006, 14:43
par sadeq
remplace les echo que fait ton php par un cumul dans la variable $html

Exemple :
si ton code PHP fait :
echo "blabla";
...
echo "blabla";
...
echo "blabla";
il faut remplacer echo par un accumulateur de texte:
$html = "blabla"; //le 1°
...
$html .= "blabla"; //le suivant est un cumul (.=)
...
$html .= "blabla"; //et ainsi de suite...
à la fin, utiliser $html pour générer un fichier HTM

Posté : 07 juil. 2006, 15:44
par Invité
oui, mais dans mon code, j'ai beaucoup de petites fonctions php, boucle qui génère tableau,date ect...
et je ne sais pas comment enregistrer le code que génere ses fonctions..

exemple:

je génère une date :


$date=date("Y-m-d")

print $date;

ce ki affiche dans ma page la date normal
sous forme:

2006-07-07

moi je veux enregistrer juste 2006-07-07.

moi je veux enregsitrer dans mon fichier html juste ca.
j'espere avoir réussi a t'expliquer mon souci, si besoin tu peux me demander des précisions.

Merci ++

Posté : 07 juil. 2006, 22:16
par Truc
C'est exactement ce que sadeq t'as suggéré, effecter à une variable au lieu d'afficher avec echo (print c'est la même chose).

pour récupérer le traitement d'une fonction il faut qu'elle renvoie le traitement avec "return":
function retour_date()
{
    $date=date("Y-m-d");
    return $date;
}
et l'appel
$html = retour_date();

$html .= autre_fonction(); // accumuler dans $html