[PHP] Optimiser site : fichiers textes.. mais comment les verrouiller

Optimiser site : fichiers textes.. mais comment les verrouiller [PHP] - Programmation

Marsh Posté le 16-02-2002 à 12:44:02    

J'ai une base MySQL qui stocke à peu près tout le contenu du site. La structure du site est :
Accueil (affiche dernières news)
  News
    Détail News 1
    Détail News 2
  Dossiers
    Dossier 1
    Dossier 2
etc.
 
Dasn ce schéma je pensais stocker quelques données dans la BDD mais aussi dans un fichier texte comme ça sur la page d'accueil un petit include c'est plus rapide.
 
Mais donc le pb est : soit un instant t où je suis en train d'écrire dans le fichier texte. Si un visiteur demande à ce même instant le contenu du fichier PHP va-t-il attendre avant d'exécuter le script avec la requête ou traitera-t-il simultanément ma requête d'enregsitrement et celle du client pour la lecture. Si c'est le cas comment verouiller le fichier pendant l'écriture pour que le client n'ait pas un "demi-fichier" :
flock() ???? Mais j'ai pas bien compris comment ça fonctionne
set_file_buffer 0 ?

Reply

Marsh Posté le 16-02-2002 à 12:44:02   

Reply

Marsh Posté le 16-02-2002 à 14:24:07    

.

Reply

Marsh Posté le 16-02-2002 à 16:03:11    

..
Obligé que qq'un connaisse la réponse !!

Reply

Marsh Posté le 16-02-2002 à 16:06:25    

tant que ton fichier n'a pas été enregistré, pour le système, il n'a pas été modifié.  
Donc l'utilisateur, que tu sois en train d'éditer ou pas, verras le fichier tel que la denière fois que tu l'as enregistré.

Reply

Marsh Posté le 16-02-2002 à 16:12:35    

Mais même si c'est infime le temps qu'il faut pour enregistrer un fichier, si qq'un le demande exactement au même que se passe t-il ?

Reply

Marsh Posté le 16-02-2002 à 16:35:39    

argh, ça c'est une colle :(
 
je ne pense pas qu'il y ait moyen de bloquer un fichier en modification.
sauf si tu utilises NFS (Network File System) ou une BD (option LOCK).

Reply

Marsh Posté le 16-02-2002 à 16:39:49    

Donc en fait je connais à moitié la réponse (oui on peut verouiller les fichiers) :
 
1. Si l'interpréteur exécute les demandes une alors par une pas de pb. En effet j'enregsitre, il attend, ça se termine et il sert le suivant.
 
2. Si ce que j'ai dit avant n'est pas le cas alors je vais utiliser flock() pour bloquer mon fichier pendant que j'enregsitre.
 
Voilà en fait la question est plus ciblé fonctionnement interne de PHP.

Reply

Marsh Posté le 16-02-2002 à 16:48:03    

ok, moi je te parlais en général  
par ex, si tu modifies avec notepad ou mc (sous linux), je ne connais pas de moyen de locker un fichier pdt que tu l'enregistres.
 
j'ai appris que php le gérais, grâce à toi  :jap:

Reply

Marsh Posté le 16-02-2002 à 18:27:30    

Bon allez je simplifie encore la requête pour avoir une/des réponses (ne me dites pas que ce n'est pas optimisé ;)) :
 
Si A demande une page PHP alors SERVEUR lit le fichier PHP, l'interprète et envoie la page HTML. Si au moment où PHP est en train d'interpréter le fichier demandé par A, B demande le même fichier, que va faire le serveur :
- Exécuter des petites protions de code en swappant très rapidement entre A et B, ou
- Finir de servir A puis commencer à servir B ?

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed