PHP modifier une colonne d'un fichier txt

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 : PHP modifier une colonne d'un fichier txt

[Résolu]

par Invité » 15 juil. 2009, 22:58

merci beaucoup Fred!

le code est trés bien expliqué.

Je ne connaissais pas la fonction foreach, maintenant je peux me passer d'une BDD; enfin pour des données en petite quantité.



André

par micetf » 15 juil. 2009, 16:42

j'ai déjà lu et relu la doc, mais j'avoue que je suis cancre..
Alors peut-être peux-tu essayer de comprendre ceci
qui n'est qu'une solution parmi d'autres :
<?php
$fichierProduits='test.txt';

if (file_exists($fichierProduits)) {

  $produits = file($fichierProduits);
  
  // Ouvre en écriture seule ; place le pointeur de fichier au début du fichier et réduit la taille du fichier à 0.
  $pFichier=fopen($fichierProduits,'w');

  foreach ($produits as $produit) {
  
	// Coupe $tableau[$i]  en segments (délimiteur=#)
	$description=explode("#",$produit);

	// Ajoute 10 au contenu de $infos[1]
	$description[1]+=10;

	// Ecriture de la ligne reconstruite avec la nouvelle info
	fwrite($pFichier,implode("#",$description));
  }
  
  // Fermeture du fichier
  fclose($pFichier);
}
Fred

par andremodus » 15 juil. 2009, 15:46

merci de me répondre
j'ai déjà lu et relu la doc, mais j'avoue que je suis cancre..

par micetf » 15 juil. 2009, 15:41

Deux petites idées pour t'aider à avancer :

Ne pas confondre :
== est un opérateur de comparaison.
= est un opérateur d'affectation
Consulter la doc pour les fonctions :
implode(), fopen() et la liste des modes, fwrite()

Fred

par andremodus » 15 juil. 2009, 14:13

Oui pour les bases de données je sais que c'est plus simple; mais je ne veux pas payer plus cher d'hébergement et sur le serveur Sqlite n'est pas installé.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par andremodus » 15 juil. 2009, 14:11

Merci d'avoir pris le temps de me répondre

non je n'ai plus d'idée, et cela fait un moment que je cherche (sur les forums..ect).
Peut être dois je refaire une boucle:

Code : Tout sélectionner

for($i=0;$i<sizeof($tableau);$i++){ { fputs($nv_prix,$tableau[1]);
mais je ne sais plus.

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

par Calimero » 15 juil. 2009, 00:10

Bonjour,

Bizarre ton code : tu avais bien commencé, mais sur la fin on dirait que t'as tout bâclé histoire de partir en week-end plus vite :-*
if (file_exists($Fnm)) {
  $tableau = file($Fnm);
  for($i=0;$i<sizeof($tableau);$i++){
    $infos=explode("#",$tableau[$i]);

    // à partir d'ici
    $nv_prix==$infos[1]+10;

    fputs($nv_prix,$tableau[1]);
    // et jusque là, rien ne va plus !
  }
  fclose($inF);
}
Pour l'exercice, est-ce que tu as des idées sur ce qui cloche là dedans ?

Et sinon, code mis à part et pour info, sais-tu que les bases de données sont un outil mieux adapté pour le stockage et le genre d'opération que tu veux réaliser qu'un simple fichier texte ? En effet, si tu avais utilisé une bdd, tu aurais pu obtenir le même effet avec une requête sql simple ;)

PHP modifier une colonne d'un fichier txt

par andremodus » 14 juil. 2009, 23:55

Bonjour

Je voudrais modifier la deuxième colonne d'un fichier texte (txt) donc voici un aperçu

fromage#15#bleu
fromage#12#tome
yaourt#5#fraise

ce serai pour rajouter 10 à 15,12,et 5.
J'arrive à remplacer ligne par ligne mais pas tout le fichier

Merci d'avance

voici mon code qui ne fonctionne pas

Code : Tout sélectionner

if (file_exists($Fnm)) { $tableau = file($Fnm); for($i=0;$i<sizeof($tableau);$i++){ $infos=explode("#",$tableau[$i]); $nv_prix==$infos[1]+10; fputs($nv_prix,$tableau[1]); } fclose($inF); }
:lol:

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]