IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PHP & Base de données Discussion :

[SQL] Modifier un fichier HTML statique en cache avec rename()


Sujet :

PHP & Base de données

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut [SQL] Modifier un fichier HTML statique en cache avec rename()
    J'ai besoin de mettre à jour régulièrement une page html statique (data.html), stockée dans un dossier cache. Une méthode simple consisterait à générer un fichier temporaire data.tmp dans le même répertoire que data.html et d'effectuer ensuite un rename('data.tmp', 'data.html').
    Visiblement, sous unix ça ne doit pas poser de problème d'après ce que j'ai lu dans la doc PHP. Le renomage est IMMEDIAT, data.html reste TOUJOURS accessible. L'utilisateur qui demande la page data.html ne risque donc pas alors d'obtenir une page tronquée ou un 404 ?
    Sous windows c'est un autre problème, puisque rename apparement ne fonctione pas si le nouveau nom du fichier correspond à un fichier déjà existant.
    Est-ce qu'il existe une alternative ou une méthode plus efficace qui me permette de mettre à jour data.html sachant que la page doit toujours être accessible ?
    Merci d'avance

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Bonjour,

    Tu es sous Windows ou sous *nix ?
    Qu'entends-tu par "la page doit toujours être accessible" ?
    Pourquoi ne pas modifier directement le fichier sans passer par un temporaire ?

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    Tu es sous Windows ou sous *nix ?
    Je bosse sous windows pour mon dev (Apache2, PHP5 en module) mais la version publique du site tourne sous unix.

    Qu'entends-tu par "la page doit toujours être accessible" ?
    Le site reçoit beaucoup de visites et la page data.html doit toujours etre accessible par les utilisateurs même pendant sa mise à jour. Il ne faut pas qu'il tombe sur un 404 ou une page tronquée (donc qui s'affiche pas ou mal).

    Pourquoi ne pas modifier directement le fichier sans passer par un temporaire ?
    Le fichier data.html met un certain temps pour être généré (plusieurs secondes car divers sources parsées, d'où la nécessité de passer par une page statique en cache), donc si je le modifie directement, le risque est que des utilisateurs qui demandent ce fichier se retrouvent avec un fichier en cours de modification, d'où des erreurs, problèmes d'affichage, etc... Je pourrai utiliser flock mais ça revient au même puisque la page ne sera pas disponible.

  4. #4
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    Citation Envoyé par warpyou
    sous unix ça ne doit pas poser de problème d'après ce que j'ai lu dans la doc PHP. Le renomage est IMMEDIAT, data.html reste TOUJOURS accessible
    Citation Envoyé par warpyou
    la version publique du site tourne sous unix.
    Euuuh, ben c'est bon alors, non ?
    Je pige pas ce qui te soucie ...

    Bon, sinon, une suggestion :
    puisque ta page en html statique est appelée à etre modifiée souvent, il pourrait être interessant de la rendre dynamique, (par exemple avec PHP), non ?
    Avec un peu d'immagination, ton problème de lenteur de génération de la page doit facilement pouvoir être contourné.
    Enfin, moi si je dis ça, c'est juste pasqu'on est dans le forum PHP et que PHP est justement fait exprès pour ça, après ...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 17
    Points : 7
    Points
    7
    Par défaut
    @Hervé Saladin
    A propos d'unix et de rename, je demandais juste une confirmation, un éclairsissement, à savoir si effectivement avec un simple rename l'utilisateur qui demande la page data.html ne risquait pas d'obtenir une page tronquée ou eronée. Pour être plus précis, l'utilisateur demande la page data.html, la requette est envoyée au serveur, le serveur commence à envoyer la page mais au même instant le fichier est mis à jour avec rename. Que ce passe-t'il ? L'utilisateur reçoit un premier bout de data.html (ancienne version) puis un bout de data.html (nouvelle version), donc j'imagine que c'est problèmatique, ou il reçoit d'un coup soit l'ancienne version, soit la nouvelle version ? (je sens que je vais avoir un p'tit cours sur le transport de fichiers )

    Bon, sinon, une suggestion :
    puisque ta page en html statique est appelée à etre modifiée souvent, il pourrait être interessant de la rendre dynamique, (par exemple avec PHP), non ?
    Avec un peu d'immagination, ton problème de lenteur de génération de la page doit facilement pouvoir être contourné.
    Enfin, moi si je dis ça, c'est juste pasqu'on est dans le forum PHP et que PHP est justement fait exprès pour ça, après ...
    Elle est modifiée toutes les heures, la rendre dynamique n'apporterait qu'une surcharge inutile au serveur à raison de + de 1000 requettes par heure, donc autant qu'elle soit statique en cache. Sans rentrer dans les détails, mon script principal fonctionne sur le parsing de nombreux flux RSS et les requêtes SQL qui suivent derrière sont assez conséquentes et bien optimisées (jointures multiples etc...)

  6. #6
    Membre éclairé Avatar de Hervé Saladin
    Homme Profil pro
    Ingénieur d'études en développement et déploiement d'applications
    Inscrit en
    Décembre 2004
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur d'études en développement et déploiement d'applications
    Secteur : Service public

    Informations forums :
    Inscription : Décembre 2004
    Messages : 647
    Points : 799
    Points
    799
    Par défaut
    A propos d'unix et de rename, je demandais juste une confirmation, un éclairsissement, à savoir si effectivement avec un simple rename l'utilisateur qui demande la page data.html ne risquait pas d'obtenir une page tronquée ou eronée. Pour être plus précis, l'utilisateur demande la page data.html, la requette est envoyée au serveur, le serveur commence à envoyer la page mais au même instant le fichier est mis à jour avec rename. Que ce passe-t'il ? L'utilisateur reçoit un premier bout de data.html (ancienne version) puis un bout de data.html (nouvelle version), donc j'imagine que c'est problèmatique, ou il reçoit d'un coup soit l'ancienne version, soit la nouvelle version ?
    A mon avis, la réponse sera "d'un coup soit l'ancienne version, soit la nouvelle version".
    N'importe quel OS digne de ce nom est capable de gèrer les accès concurrents à un fichier, ça ne devrait pas poser de problème.

Discussions similaires

  1. Besoin d'aide pour modifier un fichier html
    Par killahpriest dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 22/08/2010, 15h35
  2. [HTML] Macro pour modifier plusieur fichier html
    Par naouah dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 16/01/2009, 09h40
  3. Mise à jour de fichier html Statique (JBoss)
    Par Nexussmb dans le forum Wildfly/JBoss
    Réponses: 1
    Dernier message: 03/10/2008, 12h25
  4. [SQL] Modifier une table HTML et mettre à jour la base
    Par bart64 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 11/11/2007, 18h06
  5. Comment ouvrir et modifier un fichier html ?
    Par babeu dans le forum Framework .NET
    Réponses: 2
    Dernier message: 06/11/2006, 09h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo