Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1007 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Execution par cron d'un PHP pour créer une page Html

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Execution par cron d'un PHP pour créer une page Html

n°1509708
gathor
Posté le 01-02-2007 à 17:13:41  profilanswer
 

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  :jap:

mood
Publicité
Posté le 01-02-2007 à 17:13:41  profilanswer
 

n°1509798
sielfried
Posté le 01-02-2007 à 20:23:19  profilanswer
 

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.

Message cité 1 fois
Message édité par sielfried le 01-02-2007 à 20:23:43

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
n°1509811
spoque
Posté le 01-02-2007 à 20:45:44  profilanswer
 

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...
 
http://fr.php.net/manual/fr/functi [...] ntents.php par exemple.


 
alors un supo et au lit !

n°1509815
gathor
Posté le 01-02-2007 à 21:09:42  profilanswer
 

spoque a écrit :

alors un supo et au lit !


 
 
 :lol:  
 
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  :jap:  
 
Merci je vais essayer avec ca  :hello:

n°1509890
leflos5
On est ou on est pas :)
Posté le 02-02-2007 à 02:04:06  profilanswer
 

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 :spamafote:
Idem pour le temps si ça t'arrange vraiment ;)
 
Sinon un vialin système de cache tout fait :whistle:

n°1510319
gathor
Posté le 03-02-2007 à 00:31:19  profilanswer
 

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 :hello:

n°1510333
mrbebert
Posté le 03-02-2007 à 01:12:43  profilanswer
 

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 [:proy]

n°1510336
gathor
Posté le 03-02-2007 à 01:19:24  profilanswer
 

mrbebert a écrit :

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 [:proy]


 
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  :jap:  
 
 :hello:  

n°1510337
gathor
Posté le 03-02-2007 à 01:23:07  profilanswer
 

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
 
:hello:

n°1510344
The-Shadow
Développeur
T'as été voir dans ton profil?
Posté le 03-02-2007 à 02:15:35  profilanswer
 

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.

mood
Publicité
Posté le 03-02-2007 à 02:15:35  profilanswer
 

n°1510349
leflos5
On est ou on est pas :)
Posté le 03-02-2007 à 02:52:55  profilanswer
 

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.
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.


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 ;)

n°1510369
mrbebert
Posté le 03-02-2007 à 10:28:09  profilanswer
 

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  :jap:  
 
 :hello:

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 :)  

n°1510497
gathor
Posté le 03-02-2007 à 19:30:07  profilanswer
 

mrbebert a écrit :

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 :)


 
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  :jap:  :hello:

n°1510582
leflos5
On est ou on est pas :)
Posté le 04-02-2007 à 14:03:33  profilanswer
 

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 :spamafote:


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Execution par cron d'un PHP pour créer une page Html

 

Sujets relatifs
Recuperer une variable XML via PHPImressions sans pied de page et sans en-tête
[ PHP ] Insertion de données dans une base.Page avec cadre non rechargé d'une page à l'autre
Création de catégories en PHPChanger la taille d'une fenêtre a l'execution
je recherche un programmeur pour creer une entreprise..création d'un fichier batch utilisant xt -> xml+xsl=HTML
[PHP]cherche un script de "classement"[PHP] Pb avec mysql_connect...
Plus de sujets relatifs à : Execution par cron d'un PHP pour créer une page Html


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR