OVH Cloud OVH Cloud

lancement tache periodique page php

2 réponses
Avatar
Harry Covert
Bonjour

Je voudrai lancer en tache periodique l'execution d'une page php (stats) et
stocker celle-ci dans un fichier. Ce fichier sera récupéré par un ftp de
temps à autre.

lancer la page, avec le planificateur pas de pb, mais la sauvegarder sous un
nom et quitter ???

merci de votre aide

2 réponses

Avatar
Sebastian 'CrashandDie' Lauwers
Harry Covert wrote:

Bonjour


Bonsoir,

Je voudrai lancer en tache periodique l'execution d'une page php (stats) et
stocker celle-ci dans un fichier. Ce fichier sera récupéré par un ftp de
temps à autre.


Ok, classique, faites quand même gaffe à ne pas refaire les stats toutes
les 10 minutes...

lancer la page, avec le planificateur pas de pb, mais la sauvegarder sous un
nom et quitter ???


Le planificateur, c'est sous Windows non? Sous linux je dirais les
Crons... Si vous n'avez pas les crons sur la machine de production, ce
site devrait pouvoir vous aider en un premier temps
<http://www.webcron.org>, certes c'est loin d'être parfait, et on
préfèrerait de loin un vrai cron, mais quand y'a pas, y'a pas...

En ce qui concerne l'écriture dans un fichier, une simple lecture du
manuel (ou googleienne) aurait suffit...

Ouvrir un fichier:
Anglais: http://www.php.net/manual/en/function.fopen.php
Français: http://www.php.net/manual/fr/function.fopen.php

Ecrire dans un fichier:
Anglais: http://www.php.net/manual/en/function.fwrite.php
Français: http://www.php.net/manual/fr/function.fwrite.php

Fermer le fichier:
Anglais: http://www.php.net/manual/en/function.fclose.php
Français: http://www.php.net/manual/fr/function.fclose.php

merci de votre aide


eqça

S.

*sent que y'a au moins 30 personnes qui ont posté le même truc... Pour
une fois qu'il vient sur le NG*

Avatar
Sebastian 'CrashandDie' Lauwers
Sebastian 'CrashandDie' Lauwers wrote:

Harry Covert wrote:

Je voudrai lancer en tache periodique l'execution d'une page php
(stats) et
stocker celle-ci dans un fichier. Ce fichier sera récupéré par un ftp de
temps à autre.


Ok, classique,


Bon, je me permets d'apporter plus de précisions à ce que je viens de dire.

Si vous voulez, par exemple, faire tel un "Fichier/Enregistrer sous", je
vous conseillerais d'utiliser ob_* (le output buffering/cache de sortie).

Anglais: http://fr2.php.net/manual/en/ref.outcontrol.php
Français: http://fr2.php.net/manual/fr/ref.outcontrol.php

Le cache de sortie va garder en mémoire tout ce qui était censé être
émis vers le client. Le output buffer attend qu'on lui donne le signal
de tout envoyer vers le client (ou d'utiliser une autre fonction ob_*).
Rien n'est envoyé vers le client tant qu'on ne lui dis pas. Ceci peut
être utilisé si jamais on doit faire un header spécifique dans la page
(bon ok, c'est pas la meilleure façon de coder, mais on a déjà vu pire).

Une des fonctions qui pourrait vous interesser c'est ob_get_flush ():
Anglais: http://fr2.php.net/manual/en/function.ob-get-flush.php
Français: http://fr2.php.net/manual/fr/function.ob-get-flush.php

Cette fonction retourne tout ce qui a été mis en cache jusqu'à l'appel
de la fonction, et le retourne tel un string. On peut donc utiliser une
variable pour obtenir le cache.

Exemple:

<?php

ob_start ();

echo '<html><body>Pleins de trucs à afficher</body></html>';
// Notez que rien n'est envoyé au client à ce point

$contenu = ob_get_flush ();

/*
* On écrit le contenu dans le fichier, notez que cette fonction
* n'existe *QUE SOUS PHP5*.
* Référrez vous aux fonctions citées dans mon autre message pour
* de plus amples informations sur l'écriture dans un fichier sous
* PHP4...
*/
file_put_contents ('monfichier.htm', $contenu);


// Comme je suis de bonne humeur je donne l'équivalent sous PHP4
$monfichier = fopen ('monfichier_2.htm', "w+");
fwrite ($monfichier, $contenu);
fclose ($monfichier);

?>

*sent que y'a au moins 30 personnes qui ont posté le même truc... Pour
une fois qu'il vient sur le NG*


Bon bha non :)

Amicalement,
Sebastian