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

Signaler
Messages postés
9
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
10 juin 2010
-
Messages postés
9
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
10 juin 2010
-
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

Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
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.
Messages postés
2381
Date d'inscription
lundi 4 février 2002
Statut
Membre
Dernière intervention
29 décembre 2012
16
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.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
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 -
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
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
Messages postés
9
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
10 juin 2010

 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
Messages postés
9
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
10 juin 2010

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...
Messages postés
1309
Date d'inscription
samedi 31 janvier 2009
Statut
Membre
Dernière intervention
5 juin 2013
12
«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).
Messages postés
9
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
10 juin 2010

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.
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
27
@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 -
Messages postés
9
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
10 juin 2010

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