Execution par cron d'un PHP pour créer une page Html - PHP - Programmation
Marsh Posté le 01-02-2007 à 20:23:19
J'ai la flemme de réfléchir à l'optimalité de ce que tu penses faire, mais a priori pour créer un fichier html c'est exactement comme pour créer n'importe quel fichier...
http://fr.php.net/manual/fr/functi [...] ntents.php par exemple.
Marsh Posté le 01-02-2007 à 20:45:44
sielfried a écrit : J'ai la flemme de réfléchir à l'optimalité de ce que tu penses faire, mais a priori pour créer un fichier html c'est exactement comme pour créer n'importe quel fichier... |
alors un supo et au lit !
Marsh Posté le 01-02-2007 à 21:09:42
spoque a écrit : alors un supo et au lit ! |
En même temps j'ai peut etre pas été clair
L'avantage c'est d'eviter des requetes a la base Mysql a chaque afficahe de page par un utilisateur, mais de faire un seule requete pour tout le monde toute les 5 minutes
donc niveau optimisation ca doit etre bon
Merci je vais essayer avec ca
Marsh Posté le 02-02-2007 à 02:04:06
Tu généres ta page dynamiquement, tu la caches en html pur, tu fais un vilain compteur de hits et si nb_hits>valeur_définie tu regénères
Idem pour le temps si ça t'arrange vraiment
Sinon un vialin système de cache tout fait
Marsh Posté le 03-02-2007 à 00:31:19
Ca me plait bien ca comme techniques, mais comment tu fait ???
En fait le compteurs de hit c'est pas un soucis, mais peux tu detailler svp la partie je la cache en HTML pu !!!
merci
Marsh Posté le 03-02-2007 à 01:12:43
Le script PHP du départ, il fonctionne dans Apache ?
Faut savoir que PHP peut fonctionner en ligne de commande. A partir de là, y a aucun souci pour le faire lancer par le cron
Marsh Posté le 03-02-2007 à 01:19:24
mrbebert a écrit : Le script PHP du départ, il fonctionne dans Apache ? |
Le scrip fonctionne sans aucun probleme. Par contre quand tu dis sous apache, c'est en fait quand j'appele mon site par l'intermediaire d'une page Web ? Dans ca oui il marche impec
Marsh Posté le 03-02-2007 à 01:23:07
Je sais pas si ca peux m'aider, mais j'avais encapsulé mon code, il etait appele par un Javascript. Le rendu de la page m'affiche donc la page avec en + : document.write("............." );
Je peux bioen entendu l'enlever tres facilement
Marsh Posté le 03-02-2007 à 02:15:35
Bah, tu crée une table mysql ou un fichier texte, dedans tu rentres l'heure de la dernière mise à jour et en PHP, tu fais une bête comparaison de la date et si y'a besoin tu mets à jour.
Parce que bon, Cron, c'est bien, mais si t'as personne qui vient pendant 5 heures sur ton site (ça arrive la nuit par exemple), tu génères des pages pour rien.
Marsh Posté le 03-02-2007 à 02:52:55
The-Shadow a écrit : Bah, tu crée une table mysql ou un fichier texte, dedans tu rentres l'heure de la dernière mise à jour et en PHP, tu fais une bête comparaison de la date et si y'a besoin tu mets à jour. |
J'aurais pas dit mieux
Pour la question du html pur, suffit d'utiliser un tampon de sortie quand tu génères la page, et tu enregistres dans un fichier
Marsh Posté le 03-02-2007 à 10:28:09
gathor a écrit : Le scrip fonctionne sans aucun probleme. Par contre quand tu dis sous apache, c'est en fait quand j'appele mon site par l'intermediaire d'une page Web ? Dans ca oui il marche impec |
Oui. Donc, là, le script s'exécute en réponse à un appel sur le serveur web (Apache très souvent).
Mais il est possible d'utiliser PHP en ligne de commande (comme du Shell, du Perl ...). C'est plus facile à automatiser en lancant la ligne de commande par cron
Marsh Posté le 03-02-2007 à 19:30:07
mrbebert a écrit : Oui. Donc, là, le script s'exécute en réponse à un appel sur le serveur web (Apache très souvent). |
Ok dans ce cas, faut que je refasse mon fichier php pour y utiliser la fonction fwrite et ecreire dans un fichier les lignes de codes qui été sinon interpreté par apache.
Il n'y a pas de soluce pour utiliser le fichier deja existant et rediriger la sortie vers un fichier ?
Bon je vais deja voir ce que me dis mon script php en ligne de commande.
Merci
Marsh Posté le 04-02-2007 à 14:03:33
Si, c'est ce que j'ai évoqué => tampon de sortie!
Au lieu d'envoyer à la sortie standard, ça stocke dans un tampon que t'envoies ou pas d'ailleurs quand tu veux et surtout dont tu peux récupérer le contenu
Cf. ob_*()
Ca empêche pas que c'est à toi d'aller écrire dans le fichier.
C'est quand même pas compliqué:
- tu testes l'heure
- si fichier à générer, au lieu d'envoyer uniquement à la sortie standard tu écris aussi le fichier et tu restockes d'une manière ou d'une autre l'heure de génération
- si fichier déjà généré et valable, include du cache
Marsh Posté le 01-02-2007 à 17:13:41
Alors voila ce que j'aimerais bien réussir a faire.
J'ai un script en PHP qui va chercher des élèments de manières aléatoire dans une base de donnée pour les afficher sur une page Web, jusque la rien d'anormal, tout marche bien.
J'aimerais bien optimiser un peu le bouzin et au lieu d'avoir des recherches aléatoires sur la base a chaque affichage de la page, créer un fichier Html toute les 5 minutes par exemple, et afficher le contenu de mon fichier : donc pendant 5 minutes toutes les pages contienent les même élèments et 5 mn apres on reprend des élèments aléatoire...
Je pensais utiliser la Crontab, mais comment faire pour que mon fichier Php me créer un fichier Html ? Ou bien une autre soluce ?
Merci et j'espere avoir été clair