Créer un fichier HTML aprés execution de la page PHP - PHP - Programmation
Marsh Posté le 10-12-2008 à 10:05:43
Tu peux utiliser l'API php (fopen, fwrite, fclose) pour créer ce fichier, et utiliser une redirection : header("Location: tonfichier.html" ).
Marsh Posté le 10-12-2008 à 10:17:57
Merci de ta réponse.
Cependant, j'aimerais insérer dans le fichier les tableaux créer par la page PHP.
Exemple :
fichier php :
Création tableau 1
Création tableau 2
Création tableau 3
Création fichier html contenant les 3 tableaux
D'après ce que tu me dis je devrais :
fichier php
ouverture du fichier html
création du tableau 1 + écriture sur le fichier html
création du tableau 2 + écriture sur le fichier html
création du tableau 3 + écriture sur le fichier html
fermeture du fichier html
N'existe 'il pas un moyen de lancer la page php et a la fin l'enregistrer en fichier html ?
Merci de ton aide
Marsh Posté le 10-12-2008 à 10:25:45
Je ne connais pas un moyen "automatique" de faire çà. Ma solution n'est pas très complexe à mettre en place.
Pour créer tes tableaux, tu fais quelques chose comme
Code :
|
Marsh Posté le 10-12-2008 à 10:28:51
Output Buffering.
http://fr.php.net/manual/en/book.outcontrol.php
Marsh Posté le 10-12-2008 à 10:29:38
(sinon un moteur de templates avec fonctionnalités de mise en cache te fera ça très bien et d'une manière bien plus fine qu'en le faisant à la main).
Marsh Posté le 10-12-2008 à 10:31:38
Bah ...
Fichier php :
si fichier.html existe:
afficher fichier.html
sinon :
créations des tableaux
créer fichier.html
insérer code dans fichier.html
afficher fichier.html
Marsh Posté le 10-12-2008 à 10:32:23
si le contenu est dynamique il faut rajouter des règles un poil plus fines que ça...
Marsh Posté le 10-12-2008 à 11:02:00
skeye: +1 ! Faut mettre en place un système de cache !
D'ailleurs, y'en a pas un en standard avec php5 ? Pear ?
Marsh Posté le 10-12-2008 à 11:10:29
en standard je pense pas. Moi j'utilise le système du moteur de templates smarty.
Marsh Posté le 12-12-2008 à 14:00:15
Bonjour,
Merci pour vos réponses !
Cependant j'ai opté pour une autre alternative qui consiste à utiliser php en ligne de commande;
J'obtiens donc
Code :
|
Cependant je me confronte maintenant un nouveau probleme car je veux passer des variables en GET
Code :
|
La je bloque je ne sais pas comment faire...
Avez vous une idée ou une solution ?
Message d'erreur :
Could not open input file :tableau_forfait.php?annee=2008
Merci
Marsh Posté le 12-12-2008 à 14:21:42
c'est vraiment pas une bonne idée de faire ça en ligne de commande...
Marsh Posté le 12-12-2008 à 14:29:05
Code :
|
Et on récupere :
Code :
|
Pourquoi n'est ce pas une bonne idée ?
Marsh Posté le 12-12-2008 à 14:35:02
Parce-que ça t'oblige à tout générer d'un coup, probablement en cron. Alors qu'en fait ça ne te sert à rien de les avoir à l'avance.
Et je serais curieux de voir la tronche du résultat, en fait.
Si tu veux un truc bien foutu tu vas recoder tout un système de cache...ce qui existe déjà en tout fait, et probablement meilleur que ce que tu feras.
Marsh Posté le 12-12-2008 à 14:45:15
Avec un système en cache, lors de la première connexion, les tableaux vont mettre une plombe pour s'afficher puis lors des connexions suivantes, ils vont être pris en partie dans le cache.
C'est comme cela que ça fonctionnera ?
Merci encore pour ton aide car si cela peut être bénéfique, je veux bien essayer ta façon de faire.
Merci
Marsh Posté le 12-12-2008 à 14:49:29
oui, c'est comme ça, grosso modo.
Marsh Posté le 12-12-2008 à 14:52:39
Ha ouais. Donc en fait, on t'a donné plein d'élément de réponse, mais tu n'en n'a même pas étudié une, c'est ça ?
Oui, le cache, c'est un peu ça. La première fois, la page va être longue à s'afficher. Les fois suivantes, comme elles auront été enregistrée dans le cache, ce sera quasi-instantané. Il piochera directement dans le cache, la page ne sera pas re-générée.
En plus, c'est très facile à mettre en oeuvre.
Marsh Posté le 12-12-2008 à 15:09:48
Le cache j'ai déjà travaillé un peu dessus, le seul probleme c'est que lors de la création de mes tableaux j'ouvre une multitude de fichiers (qui peuvent avoir changer) il faut donc les réouvrir de nouveau lors du chargement de la page.
Le cache a ce moment la n'est pas bénéfique pour moi ? Qu'en pensez vous ?
Marsh Posté le 12-12-2008 à 15:12:18
Ils sont modifiés comment, ces fichiers? Via ton site? D'une autre manière?
Marsh Posté le 12-12-2008 à 15:12:28
A toi de gérer l'invalidation de ton cache
Quand tu modifies tes fichiers, tu invalides ton cache, comme ça il sera regénéré.
Marsh Posté le 10-12-2008 à 09:52:27
Bonjour,
Un fichier php s'occupe de créer une multitude de tableaux (assez long à l'affichage car il doit parser plusieurs fichiers), c'est pourquoi j'aimerais qu'une fois créer, il sauvegarde le résultat dans un fichier HTML. Ainsi, les utilisateurs auront un affichage instantanée vue que l'on va lire le fichier HTML.
Ma question est donc comment sauvegarder un fichier HTML après exécution de la page PHP. (J'aimerais que ce soit une commande a la fin du fichier PHP si possible)
Merci de votre aide
Message édité par johnson950 le 10-12-2008 à 10:00:06