Remplacer une ligne de longueur différente

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Remplacer une ligne de longueur différente

Re: Remplacer une ligne de longueur différente

par xTG » 30 juil. 2012, 17:48

function confIntForm($chemin,$ligne,$old,$newValue){
  $tab = file($chemin);
  foreach($tab as $index => $valeur){
    if( $index == $ligne ){
      $tab[$index] = $newValue;
      break;
    }
  }
  file_put_contents(implode("\r\n",$tab));
}
;)

Re: Remplacer une ligne de longueur différente

par Lisbeth » 30 juil. 2012, 14:03

Merci !

Pourrais-tu juste me donner une exemple pour remplacer la ligne avec file () une fois l'index récupéré?

Re: Remplacer une ligne de longueur différente

par xTG » 30 juil. 2012, 13:49

Regardes plutôt du côté de file().
Cela te renvoie un tableau avec un index pour chaque ligne.

Remplacer une ligne de longueur différente

par Lisbeth » 30 juil. 2012, 13:03

Bonjour à tous,

J'ai crée une fonction qui permet d'écrire de remplacer des lignes dans un fichier. Seul problème une de mes lignes à remplacer concerne un e-mail et n'aura donc pas toujours la même taille...Comment le gérer?

Voici un sample :

Code : Tout sélectionner

function confIntForm($chemin,$ligne,$old,$newValue){ $this->chemin=$chemin; $fp=fopen(addslashes($chemin),"r+"); if(!$fp = fopen(addslashes($chemin),"r+")) { echo "Echec de l'ouverture du fichier"; } else{ $i = 1; while (!feof($fp)&&$i<$ligne -1) { $page .= fgets($fp); $i ++; } fputs($fp,$old.$newValue); fclose($fp); } }
Par avance, merci !