begin process at 2012 05 31 17:44:41
  Trouver un code source :
 
dans
 
Accueil > Forum > 

PHP

 > 

Divers

 > 

Général

 > 

Suppression ligne fichier texte


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Suppression ligne fichier texte

mercredi 17 novembre 2010 à 10:17:34 | Suppression ligne fichier texte

abdinfo6

Bonjour,

j'ai un fichier texte contenant un mot par ligne (machin 1, truc, machin2 ...) et je n'arrive pas à supprimer l'élément
voulu. Mon fichier texte apparait dans une liste déroulante. Le mot à supprimer est donc sélectionné et doit être
supprimé par l'action du clic sur le bouton "supprimer".

J'ai donc ce code la :

Code PHP :
	if (isset($_POST[supprimer])) // si l'utilisateur a appuyer sur le bouton supprimer
		{
			$valeur_eff = $_POST[liste]; // récupère la valeur à supprimer			
			$tab = file($fic);			
			$cpt = 0;
			$fp = fopen($fic, 'w');

			while (($cpt < count($tab)) && ($valeur_eff != trim($tab[$cpt]))) // tant qu'on a pas la valeur
			{
				fputs($fp, $tab[$cpt]);
				fputs ($fp , "\r\n");				
				$cpt++;			
			}
			
			while ($cpt < count($tab))
			{
				$valeur_sup = $tab[$cpt++];
				fputs ($fp, $valeur_sup);
				fputs ($fp , "\r\n");
			}
			fclose ($fic);		
			header('Location: suppression.php');
		}



Merci car je jette l'éponge là ...

abdinfo6
mercredi 17 novembre 2010 à 10:55:16 | Re : Suppression ligne fichier texte

cod57

Bonjour

Tu devrais utiliser str_replace();
si tu veux supprimer un bout du fichier, tu remplaces dans le fichier ce bout par rien.
mercredi 17 novembre 2010 à 11:15:16 | Re : Suppression ligne fichier texte

cod57

http://www.phpcs.com/forum/sujet-MODIFIER-CHAINE-FICHIER-TEXTE_1477174.aspx

un ancien post ...
mercredi 17 novembre 2010 à 12:21:20 | Re : Suppression ligne fichier texte

neigedhiver

Salut,

Moi je ferais pas comme ça.
Dans ma liste HTML, pour chaque mot, la valeur de l'option serait son numéro de ligne dans le fichier en question.
Pour la créer, un truc dans le genre :
Code PHP :
<?php
echo '<select name="supprimer">';
foreach ($file = file($fic) as $num => $line) {
  echo sprintf('<option value="%s">%s</option>', $num, $line);
}
echo '</select>';
?>


Ensuite, pour sauvegarder le fichier :
Code PHP :
<?php
// Avec des guillemets autour de 'supprimer', sinon on obtient une erreur de type E_NOTICE
if (isset($_POST['supprimer'])) {
  $file = file($fic);
  // On s'assure que le numéro de la ligne est compris entre 0 et count($file)
  if ($num >= 0 && $num < count($file) {
    // On supprime la ligne en question
    array_splice($file, $num, 1);
    // On écrit le fichier
    // On peut utiliser \r\n comme retour à la ligne sur Windows
    file_put_contents($fic, implode("\n", $file));
  }
}
?>


C'est pas parce que c'est de moi, mais je trouve que c'est plus élégant.

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
mercredi 17 novembre 2010 à 12:53:53 | Re : Suppression ligne fichier texte

neigedhiver


Des fois j'écris des énormités...
Au lieu de echo sprintf()... on peut utiliser simplement printf() lol

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)
mercredi 17 novembre 2010 à 13:04:52 | Re : Suppression ligne fichier texte

jeca

Bonjour,

Je pense que les <option> de ton <select> sont mal construits. La fonction "file()" retourne un tableau. Tu doit mettre la clé de chaque ligne dans l'attribut "value".
Copie les lignes ci-dessous dans un fichier "test.txt" :

ligne N° 1
ligne N° 2
ligne N° 3
ligne N° 4
ligne N° 5
ligne N° 6
ligne N° 7
ligne N° 8
ligne N° 9
ligne N° 10
ligne N° 11
ligne N° 12
ligne N° 13
ligne N° 14
ligne N° 15
ligne N° 16
ligne N° 17
ligne N° 18
ligne N° 19
ligne N° 20


Génération des options et affichage du formulaire :
Code PHP :
<?php
  function creeSelect($ligne)
  {
    //-- génération de <option> du <select> ------------------------------------
    $option = '';
    foreach ($ligne as $cle => $valeur)
    {
      $option .= '<option value="' . $cle . '">' . trim($valeur) . '</option>';
    }
    return $option;
  }

  //----------------------------------------------------------------------------
  //----------------------------------------------------------------------------
  //----------------------------------------------------------------------------
  $fichier = 'test.txt';
  $ligne = file ($fichier);
?>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    <script type="text/javascript">
    </script>
  </head>
  <body>
    <form name="formulaire" method="post" action="essai.php">
      <select name="ligne">
        <?php echo creeSelect($ligne) ?>
      </select>
      <br />
      <input type="submit" name="sup" value="supprimer" />
    </form>
  </body>
</html>

Suppression de la ligne sélectionnée et réécriture de "test.txt" :
Code PHP :
//-- essai.php --------
<?php
  if (isset($_POST['sup']))
  {
    $aSupprimer = $_POST['ligne'];
    $fichier = 'test.txt';
    $ligne = file ($fichier);
    unset($ligne[$aSupprimer]);
    file_put_contents ( $fichier , $ligne);
  }
?>


Cordialement.

JC
Code PHP :
mercredi 17 novembre 2010 à 13:06:18 | Re : Suppression ligne fichier texte

jeca

Damned, grillé par neigedhiver.

Cordialement.

JC
mercredi 17 novembre 2010 à 13:52:44 | Re : Suppression ligne fichier texte

neigedhiver


Jeca, tu as fait une erreur dans l'utilisation de file_put_contents : si tu y colles directement le tableau, ça va pas aller... Il faut concaténer toutes les lignes entre elles, avec une nouvelle ligne (\n) entre chaque, avec implode par exemple ;)

--
Neige

Souvent la réponse à votre question se trouve dans la doc. Commencez par là ;)


Cette discussion est classée dans : valeur, supprimer, tab, fp, cpt


Répondre à ce message

Sujets en rapport avec ce message

Suppresion de table jointe ?? [ par jordangj ] Bonjour je voudrais supprimer tt les valeur d'une requette:select * FROM visiteur v LEFT JOIN page p ON v.code = p.code WHERE idmb = '3' AND v.date LI afficher une pub flash [ par crazykamel ] Bonjour à tous ! J'ai un ptit souci, grace au code ci-dessous, j'affiche une pub aléatoirement. //à chaque d Compteur de visite [ par caramelle974 ] Salut,J'aurai besoin d'un coup de pouce.. Je dois réaliser une page en PHP qui affiche le nombre de visites.Mais lors de la réécriture ca ne fonctionn php function somme [ par fredo35m ] Bonjour,j'ai une fonction qui calcul différentes valeurs pour chaque point, j'aimerais faire la moyenne des valeurs si la valeur est différente de 0 o changer la valeur d'une variable dans un fichier - avec "ereg" [ par hAdEsS ] Bonjour à tous,voila j'aimerais pouvoir changer la valeur d'une variable dans un fichier javascript :blabla{......                xmlhttp.send(data);  Insertion et suppression dans un tableau multi-dimension [ par baallrog ] Bonjour à tous! Voilà jai un petit problème en php : j'ai un tableau à deux dimension donc je voudrai ssupprimer et/ou insérer des lignes ! voici mon supprimer des doublons [ par pfeisig ] Bonjour,je veux supprimer des lignes ajouté a une table(enchere) par une requete sql ,en fait je veux supprimer chaque 2 ou plusieurs lignes il suffit Modifier le mode de rangement [ par scrodofus ] Bonjour, voila j'ai un ami qui ma creer ce script suivant : [code=php]\n\n"; $tab=array(); if ($handle = opendir('mp3')) { while ($file = readdir Probleme plusieurs tableau lié. [ par shilom54 ] Bonjour a tous, je vais essayer de vous expliquer clairement mon problème : dans mon code j'ai 4 tableaux organisés de la façon suivante : [code=p affichage de valeur d'une zone de texte à un autre [ par info1234 ] salut! je suis entrain de faire un site de location de voiture. mais ilya un probléme dont le passage de la valeur d'une zone de text d'un formulaire


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,357 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales