petit prob avec fputs
Hors ligneTakai Le 05/01/2006 à 09:34 Profil de Takai Configuration de Takai

salut a tous ,
   merci de vos réponses pour le dernier sujet que j'ai envoyé.
  Je l'ai mis entre parentheses pour le moment et suis revenu a un autre
que je n'ai pas tout a fait fini.
  L'erreur ne doit pas etre bien méchante cette fois-ci. j'ai créé un prog pour afficher un titre de page.html qui marche bien. je place ce titre dans un text
que je name ecrancrt ,ca marche impec,je le modifie . Ensuite je veux remplacer mon ancien titre par le nouveau. voicin ma fonction:  
   <?php                    $file="C:\\Program files\\EasyPHP\\www\\Nouveau dossier\\ecran_crt.html";           if (is_writable($file))               {echo "yes";}                else                 {echo"no";}                   $fichier = fopen ("$file","r+");//lecture fichier            if (!$fichier)        { echo "il n'y a pas de fichier";}         else {              while (!feof($fichier))//parcours des lignes              {              $page .= fgets($fichier,4096);//lit le contenu              }               $titre2 = eregi_replace ("<title>(.*)</title>","<title>$ecrancrt</title>",$page);//remplace le titre par la variable ecrancrt               fputs ($fichier,$titre2); //ecrit dans le fichier                                echo " titre modifié avec succés";                              fclose($fichier);             }       ?>

Le hic c'est que ce prog me renvoie 2 pages.html .Il garde l'ancienne page avec le vieux titre et me réecrit toute cette page à la suite de la première avec mon titre modifié.
   je ne pige pas pourquoi, fputs comme fwrite sont censés écrire dans  
un fichier pas réecrire tout le fichier a la suite l'autre.
j'ai tenté un unlink() mais win ne le prend pas en charge(o.s pouilloux);..
         Si vous avez une idée, merci de me la communiquer.

  a+
Hors ligneAnthony Le 05/01/2006 à 19:42 Profil de Anthony Configuration de Anthony

Admin
Salut,

mets un w+ à la place du r+ ça fera ça de moins à te soucier. Ensuite tu peux remplacer

$titre2 = eregi_replace ("<title>(.*)</title>","<title>$ecrancrt</title>",$page);//remplace le titre par la variable ecrancrt               fputs ($fichier,$titre2); //ecrit dans le fichier

par $page = eregi_replace ("<title>(.*)</title>","<title>$ecrancrt</title>",$page);//remplace le titre par la variable ecrancrt               fputs ($fichier,$page); //ecrit dans le fichier

a +
--

Hors ligneTakai Le 06/01/2006 à 09:45 Profil de Takai Configuration de Takai

salut ,
j'ai testé ce que tu m'as conseillé mais sans grand résultat.

Toujours pareil, avec w+ il m'efface tout le fichier,avec r+ j'ai le meme  prob qu'avant : est-ce qu'il n y aurait pas un probleme de rafraichissement de la page ou peut-etre que c'est tout simplement pô
possible de le faire directement comme ca ?
    

<?php                    $file="C:\\Program files\\EasyPHP\\www\\Nouveau dossier\\ecran_crt.html";           if (is_writable($file))               {echo "yes";}                else                 {echo"no";}                   $fichier = fopen ("$file","r+");//lecture fichier a la racine du serveur                 if (!$fichier)           { echo "il n'y a pas de fichier";}                if (!$fichier)           { echo "il n'y a pas de fichier";}               else {               while (!feof($fichier))//parcours des lignes               {              $page .= fgets($fichier,4096);//lit le contenu               }             $page = eregi_replace ("<title>(.*)</title>","<title>$ecrancrt</title>",$page);//remplace le titre par la variable            fputs ($fichier,$page); //ecrit dans le fichier             echo "titre modifié avec succés";                     }          fclose($fichier);            ?>
Hors ligneFhx Le 07/01/2006 à 22:55 Profil de Fhx Configuration de Fhx

C'est un problème avec fopen.

Donc, tu va faire un tour à la doc de php en ligne sur la fonction fopen().
Et ... oh miracle ! Que vois-je ?

'r'      Open for reading only; place the file pointer at the beginning of the file.
'r+'      Open for reading and writing; place the file pointer at the beginning of the file.
w'      Open for writing only; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.
'w+'      Open for reading and writing; place the file pointer at the beginning of the file and truncate the file to zero length. If the file does not exist, attempt to create it.
'a'      Open for writing only; place the file pointer at the end of the file. If the file does not exist, attempt to create it.
'a+'      Open for reading and writing; place the file pointer at the end of the file. If the file does not exist, attempt to create it.
(et je passe x et x+)

Et à ton avis... qu'elle est le bon mode ?
Moi perso... un petit a+ l'aurais bien fait non ?
Hors ligneAnthony Le 07/01/2006 à 22:58 Profil de Anthony Configuration de Anthony

Admin
Si j'ai bien lu son post il veut remplacer un fichier par un nouveau non ?
--

Hors ligneTakai Le 10/01/2006 à 14:13 Profil de Takai Configuration de Takai

salut fhx,
     en recherchant bien tu aurais trouvé la meme en francais ,c'est plus sympa pour comprendre.Sinon tu penses bien que j'ai testé a+
     mais le probleme n'est pas l'ouvetrure du fichier, le probleme est que j'obtiens 2 pages htlml alors que j'en ai une seule dont je dois modifier le tirtre. La premiere page est celle avant modification; et juste en dessous
j'obtiens une nouvelle page html avec mon titre modifié qui comporte les mêmes codes html que la premiere sauf le titre qui lui est modifié.
   ma question est pourquoi????
Hors ligneAnthony Le 10/01/2006 à 19:59 Profil de Anthony Configuration de Anthony

Admin
Parce que tu n'ouvres pas le fichier avec le bon mode, ou alors tu le concatènes (tu l'ouvres tu récupères le contenu dans une variable et tu concatènes le tout que tu fous dans un fichier, et donc ça fait la merde qu'il y a actuellement).
--

Hors ligneTakai Le 11/01/2006 à 12:05 Profil de Takai Configuration de Takai

salut
  je pige pas pourquoi quand meme si tu sais ce qui cloche dans mon prog
ou si t'as 1 idée, ce serait sympa, mon stage se termine vendredi et je pars sur autre chose après.
    En tout cas merci d'avoir répondu a mes messages, je referais du developpement web d'ici un mois ou deux pour mon site sur l'aviation et l'espace que je vais préparer.
             términé ce prog title
     unlink $file
  refopen par la suite en ecriture
  fwrite(newfile,file) et ca marche nickel....
  
        4 semaines pour ca, c'est dur la prog....
    a bientôt et merci pour tout.!
Vous avez résolu votre problème avec VIC ? Faites-le savoir sur les réseaux sociaux !
Vulgarisation-informatique.com
Cours en informatique & tutoriels