Modifier et supprimer dans un fichers en php [Résolu]

Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
- - Dernière réponse : jordane45
Messages postés
26757
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2019
- 5 nov. 2019 à 17:59
Bonjour,
Je travaille sur les fichiers en ce moment et j'essaie qu'on puisse modifier mon fichier mais aussi pouvoir supprimer quelque chose a l'intérieur, malheureusement ca fais quelques jours que j'essaye cela mais je n'y arrive toujours pas.

Merci

fa23
Afficher la suite 

4 réponses

Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
0
Merci
Voici mon code au complet
<!DOCTYPE html>
<html>
<head>
	<title>Les fichiers PHP</title>
</head>
<body>
	<form method="POST">
		<b><br /><p><font size="10">Les fichiers en PHP</p></font></p><br /></b>
		<b>Nom : </b><input type="text" name="nom" required="required"><br /><br />
		<b>Prénom : </b><input type="text" name="prenom" required="required"><br /><br />
		<b>Numéro de téléphone : </b><input type="tel" name="numtel" required="required"><br /><br />
		<input type="submit" name="envoi" value="Envoyez">

		<?php  
			error_reporting(E_ALL & ~E_NOTICE);
			$nom = $_POST['nom'];
			$prenom = $_POST['prenom'];
			$num = $_POST['numtel'];

			if ($nom && $prenom && $num)
			{

				$ouvre = fopen("fichier.txt", "a+");
				$nom.="*";
				$prenom .="*";
				$num .= "*";
				fwrite($ouvre, $nom);
				fwrite($ouvre, $prenom);
				fwrite($ouvre, $num);
				fclose($ouvre);
			}
		?>
	
	</form>
	<br/><a href="affichecontact.php" >Afficher les contacts</a><br /><br />
	<a href="accueil.php">Accueil</a>

</body>
</html>
fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
<!DOCTYPE html>
<html>
<head>
 <title>Affichage des contacts</title>
</head>
<body>
 <table border='30' cellpadding="12" cellspacing="2" width="10%" align="CENTER">
 <form>
 <?php 

 $ouvre = fopen("fichier.txt","r"); 
 
 while (!feof ($ouvre)) 
  { 

   $lecture = fgets ($ouvre, 4096); 
   $donnee = explode ("*",$lecture); 
   $combien = count ($donnee)-1; 
   $compteur = 0;
  
   $fichier = file("fichier.txt"); 

   sort($fichier, SORT_NATURAL | SORT_FLAG_CASE);

   foreach ($fichier as $ligne)
   {
       
       $donnee = explode ("*", $ligne); 
       foreach ($donnee as $valeur);
          echo "$valeur";

   }

   echo "<tr><th>Nom</th>";
   echo "<th>Prenom</th>";
   echo "<th>Numéro de téléphone</th>";
   echo "</tr>";
   echo "<tr>"; 
  
   
   for ($i=0;$i<$combien;$i++) 
    { 

     
     $compteur++;
   
   echo "<td>"; 
     echo $donnee[$i], "<br />";
     echo "</td>";

     if ($compteur == 3)
     {
      $compteur = 0;
      echo "<tr></tr>";
     }

    }
   echo "</tr>";

   
 }

 fclose($ouvre); // fermeture

 ?>

 


</form>
</table>
</body>
<footer>
 <br /><center><a href="fichiers.php" >Ajouter un contact</a><br /><br />
 <a href="accueil.php">Accueil</a></center>
</footer>
</html>
Commenter la réponse de fa23
Messages postés
26757
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2019
1880
0
Merci
Bonjour,

Avant tout, commence par activer l'affichage des erreurs PHP et suis les quelques conseils donnés ici.
http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code


Ensuite, si tu ne parviens toujours pas à réaliser ton script, poste le nous ( en utilisant les balises de code )
Explications concernant les balises de code : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

Pense également à expliquer en détail ( code à l'appui ) le souci rencontré et ce que tu cherches à faire.
pour l'instant.. ta question ne permet pas de comprendre ton problème.



fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
Désolé quand tu était en train de me répondre, j'étais en train d'insérer mon code justement que tu peux retrouver juste au dessus et donc mon problème c'est que j'aimerais qu'on puisse modifier le prénom, le nom ou le numéro de téléphone dans le fichier et aussi pouvoir supprimer quelque chose dans le fichier
jordane45
Messages postés
26757
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2019
1880 > fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
J'ai bien vu que tu avais mis le code pendant que je répondais.
Mais comme tu as pu le lire dans ma réponse.... je t'ai donné des liens à suivre.

Concernant ton code, hormis lire et écrire il ne fait rien d'autre.
Où as tu essayé de faire la modification ou la suppression ?
Car pour modifier ou supprimer... tu vas devoir recharger la totalité de ton fichier dans un array ou dans une string, faire une "recherche" puis retirer cette ligne de ta variable avant de réécrire complètement le fichier.

Mais quit à stocker des données dans un fichier, utilise un format facilement exploitable tel que le JSON

ou alors.. si tu veux faire un CSV ... utilise un "vrai" séparateur comme la virgule. A ce moment là, tu auras des fonctions php spécialement prévues pour fonctionner avec du csv.
Commenter la réponse de jordane45
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
0
Merci
La première partie du code sert a écrire dans le fichier et la deuxième partie sert a afficher le contenu du fichier
Commenter la réponse de fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
0
Merci
Voici mon code pour la modification que j'ai essayer de faire, en ce qui concerne la suppression je prefere faire la modification avant

<!DOCTYPE html>
<html>
<head>
 <title>Modifier un contact</title>
</head>
<body>

Que voulez vous remplacer ? <input type="text" name="remplace">
    
  <form method="POST"> 
  
  <?php 
error_reporting(E_ALL);
ini_set('display_errors', TRUE);
ini_set('display_startup_errors', TRUE);
$ouvre=fopen("fichier.txt","r"); 

  $remplacer = $_POST['remplace'];
   
   while (!feof ($ouvre)) 
   {  
    $lecture = fgets($ouvre, 4096); 
    $donnee = explode("*",$lecture); 
    $combien = count($donnee)-1; 
   
    for ($i=0;$i<$combien;$i++) 
    {  
     
     if (ereg("$lecture",$donnee[$i])) 
      {
       $donnee[$i]=str_replace("$remplacer", "2°", $donnee[$i]);
      }
       
     $liste_modif.=$donnee[$i]."*"; 
    }

  } 

  fclose($ouvre); // fermeture 
  
  $ouvre=fopen("fichier.txt","w+"); 
  fwrite($ouvre,$liste_modif); 
  fclose($ouvre); 

  ?>
   
   

</form>
</body>
</html>
jordane45
Messages postés
26757
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2019
1880 > fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
Toi tu n'as pas lu comment fonctionne str_replace
str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] ) : mixed

$search => VALEUR CHERCHEE (celle que tu veux remplacer )
$replace => VALEUR A UTILISER POUR LE REMPLACEMENT
$subject => TEXTE QUI CONTIENT EVENTUELLEMENT LA VALEUR A RECHERCHER/REMPLACER

Pour l'instant tu n'as qu'un seul input .... qui, d'après ce que je comprend, est la valeur à remplacer....... mais tu veux le remplacer par quoi ?
fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
En gros, je demande a l'utilisateur qu'est ce qu'il veut remplacer soit le nom , le prénom ou le numéro de téléphone. Ensuite, je demande quel nom, prénom ou numéro de téléphone qui veut remplacer et ensuite par quoi il veut le remplacer et après une fois que cela est fait je veux que la modification soit fait aussi dans le fichier
jordane45
Messages postés
26757
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2019
1880 > fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
sauf que...il n'y à pas toutes ces étapes dans ton code....
fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
Ouais c'est parce que j'ai pas réussir a le faire et quand ça fonctionne pas je supprime
jordane45
Messages postés
26757
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
13 novembre 2019
1880 > fa23
Messages postés
44
Date d'inscription
lundi 20 juin 2016
Statut
Membre
Dernière intervention
10 novembre 2019
-
Ouais.. ben.. si tu ne nous montres que du code partiel... on ne peut pas t'aider à le corriger.
Donc reviens nous voir avec ton code complet et en ayant bien pris soin d'appliquer les conseils données ici : http://www.commentcamarche.net/faq/48399-php-gestion-des-erreurs-debogage-et-ecriture-du-code

Et j'insiste... pourquoi faire un fichier text avec des séparateurs "*" alors que :
Il existe le format CSV
Il existe (encore mieux) le format JSON
Il existe ( encore encore encore mieux....) les Bases de données...
Commenter la réponse de fa23