Enregistrer une page php générer sans l'afficher

tchoule84 Messages postés 9 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 10 juin 2010 - 16 juin 2009 à 12:09
tchoule84 Messages postés 9 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 10 juin 2010 - 17 juin 2009 à 16:59
bonjour,

Voila je développe actuellement un petit programme pour un cybercafé café qui leur permettai de sortir des stats a la fin de chaque mois. Rien de bien compliqué sauf que je voudrai automatisé tous ca de maniéres a ce que chaque premier jours du mois ma page php (stats.php) s'enregistre sur le serveur et se réinitialise. j'utilise donc la fonction 'ob_start()' pour enregistrer ma page générée sauf que pour l'enregistrer je suis obliger de la lancée.
Ma question est donc la suivante: Existe-il une solution pour que tous ca se fasse sans que l'utilisateur l'est afficher devant ses yeux?

voici mon code:

<?php
// Simple function to write text file
function writeTextFile($fileName,$text) {

    $session = fopen($fileName,"a+");
    fputs($session,$text);
    fclose($session);
}

ob_start(); // Début de l'enregistrement
include("stats.php");

$content = ob_get_contents(); // Fin de l'enregistrement
// Sauvegarder ma page dans un fichier html
$mois=date("m-y");
writeTextFile("histo_stats/stats$mois.htm",$content);
?>

Merci de m'aider

10 réponses

TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
16 juin 2009 à 14:55
Salut,

Les tâches cron sont faites pour ça. Soit dit en passant, en redirigeant la sortie standard tu n'as pas besoin d'utiliser de ob_start() et trucs du genre. Pour plus
de détails sur les tâches cron je te laisses consulter les pages de man
1 et 5 de crontab ainsi que l'abondante documentation présente sur le
net.

Sinon je ne vois pas pourquoi tu parles de navigateur, ici c'est du PHP CLI que tu fais.
0
syndrael Messages postés 2378 Date d'inscription lundi 4 février 2002 Statut Membre Dernière intervention 29 décembre 2012 20
16 juin 2009 à 14:56
Commence ton FOpen dès le début et tu écris dans le fichier que tu viens d'ouvrir.. après tu le refermes et hop.. personne n'a rien vu..
non ??
S.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
16 juin 2009 à 19:17
Salut,

@TychoBrahe : c'est pas beau les copié / collé sur les tâches cron

Puisque toutes les machines ne tournent pas sous Unix, et donc si tu tournes sous windows, tu peux utiliser simplement une tâche planifiée. C'est simple et efficace.

Par curiosité, peut on savoir ce que fait stats.php ?

Cordialement,

Kohntark -
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
16 juin 2009 à 19:33
Salut,

«c'est pas beau les copié / collé sur les tâches cron»
Pas ma faute s'il y a deux questions sur le même sujet

«toutes les machines ne tournent pas sous Unix»
C'est pour ça que ma réponse est également valables pour tous les systèmes BSD, Solaris, GNU/Linux, GNU/Hurd et bien d'autres encore Dans le cas où rien n'est précisé je préfère donner une réponse la plus généraliste possible, et vu que windows est tout seul dans son coin ... :D
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
tchoule84 Messages postés 9 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 10 juin 2010
17 juin 2009 à 13:21
 Merci pour vos reponses je me penche dessus immédiatement.

Et ma page "stats.php" enregistre l'historique de toutes les visiteurs du cyber pour lequelle j'ai développer l'application.

«c'est pas beau les copié / collé sur les tâches cron»
Dsl mais je débute en php et je ne maitrise pas encore totalement ce languague
0
tchoule84 Messages postés 9 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 10 juin 2010
17 juin 2009 à 14:54
Le problème c'est que mon Fopen() m'affiche ce qu'il enregistre et je voudrais l'éviter...
J'ai essayer avec les tache cron mais, d'après ce que j'ai compris, celles-ci se lance sous Linux donc pas possible pour moi.
IL me reste la solution d'ouvrir la page générée grâce a mon Fopen dans une fenêtre pop up que je programmerai pour qu'elle ne s'ouvre pas longtemps... Reste a voir si cela fonctionne...
0
TychoBrahe Messages postés 1309 Date d'inscription samedi 31 janvier 2009 Statut Membre Dernière intervention 5 juin 2013 12
17 juin 2009 à 15:09
«J'ai essayer avec les tache cron mais, d'après ce que j'ai compris, celles-ci se lance sous Linux donc pas possible pour moi.»
C'est totalement faux, comme je lai dit plus haut cron est également présent sur les BSD, Solaris etc.

Sinon au lieux d'essayer de coder quelque chose tu peux plutôt faire passer tout le trafic via un proxy et regarder directement les logs du proxy (je n'ai jamais mis ça en place personnellement mais je sais que ça se fait).
0
tchoule84 Messages postés 9 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 10 juin 2010
17 juin 2009 à 15:13
heu ça me semble inaccessible a mon niveau (je suis en première année de BTS informatique de Gestion). Je te remercie quand même pour ton aide mais je panse que je vais plutôt chercher du coté de la fenêtre pop-up qui s'ouvrirait tous les premiers du mois dans laquelle j'enregistrerai ma page générée.
Je suis en train de programmer tous ça je vous tiendrai au courant.
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
17 juin 2009 à 16:49
@tchoule:
«c'est pas beau les copié / collé sur les tâches cron»
Dsl mais je débute en php et je ne maitrise pas encore totalement ce languague
= >
Cette remarque s'adressait à TychoBrahe. C'était un clin d'oeil au fait qu'il ait fait un copié / collé d'un autre post (même question ... même réponse, normal :o))

Ta page stats.php affiche l'historique à partir de quoi ? les logs serveur ? as tu une base de données ?

celles-ci se lance sous Linux donc pas possible pour moi.
=> tu tournes sous quel système d'exploitation pour ne pas trouver de solution ni dans les tâches cron (systèmes Unix) ni dans les tâches AT (tâches planifiées windows) ???

IL me reste la solution d'ouvrir la page générée grâce a mon Fopen dans
une fenêtre pop up que je programmerai pour qu'elle ne s'ouvre pas
longtemps... Reste a voir si cela fonctionne...
=>
je ne vois pas pourquoi tu serais obligé de passer par un navigateur et afficher ton fichier.
Comme cela a été dit plus haut tu dois faire ça en CLI. Renseigne toi sur "utiliser php en ligne de commande" et plus particulièrement sur le fichier php-win.exe (si tu tournes sous windows)
La solution pop up n'est pas bonne, tu vas alourdir le script et le complexifier (tests sur la date, contrôle que l'opération n'a pas déjà été effectuée, ...)

Cordialement,

Kohntark -
0
tchoule84 Messages postés 9 Date d'inscription lundi 15 juin 2009 Statut Membre Dernière intervention 10 juin 2010
17 juin 2009 à 16:59
Ma page stats.php affiche des statistiques extraits a partir d'une base de donnée.
J'ai fini de programmer avec la pop up mais il est vrai que si je trouver un autre moyen ça m'arrangerai.
Je vais donc me renseigner sur "utiliser php en ligne de commande" et merci beaucoup pour ta réponse.

PS: Pour le copié/collé j'ai compris mais un poil trop tard
SE: Windows Seven.

Encore merci
0
Rejoignez-nous