IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Modifier une ligne d'un fichier texte


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Par défaut Modifier une ligne d'un fichier texte
    Bonjour à tous et à toutes,

    Je vous parcourir un fichier text et modifier une line souhaité en ajoutant le symbole "#" au debut de la ligne en question. voici mon code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
     
    echo" <html><body>";
    //ouverture du fichier
    $fd=fopen("../fichierConfig/oo.txt","r+");
    echo"<form method=post>
    		<select name=fich>";
    					while($c=fgetcsv($fd,0,"="))
    					{
    							echo"<option value=$c[0]>$c[0]</option>";
    					}
    		echo "</select>";
    		echo"<input type=hidden value=$c[0]><input type=submit value=Activer>";
    echo "</form>";
     
    if(isset($_POST['fich']))
    {
    $fa=fopen("../fichierConfig/oo.txt","w+");
    			while($b=fgetcsv($fa,0,"="))
    			{
    							if($_POST['fich']==$b[0])
    							{
    							fseek($fa,0);
    							fputs($fa,"#");
    							}
    			}
    }
    echo"</body></html>";
    En gros j'ouvre mon fichier puis je recupere toutes les lignes que je stock dans un select avec un boutton dans un formulaire, ensuite lorsque l'utisateur click sur le bouton activer alors le programme ouvre le fichier et cherche la ligne selectionnée puis met un "#" au debut de cette dernière,mais j'y arrive pas, mon programme supprime plutot tout le contenu de mon fichier.

  2. #2
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ton 0 dans ta fonction fseek() c'est le debut du fichier, pas le début de la ligne.

    Plus simplement tu pourrais utiliser une expression régulière pour modifier l'ensemble du fichier.
    Attention tu n'as pas mis de "value" dans tes balises option.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  3. #3
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Par défaut
    Soyez un peu plus clair, je ne comprend pas. si vous pouvez mettré en code ce serait encore mieu!

  4. #4
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Je peux déjà t'expliquer la première phrase de Sabotage.
    Pas grave si tu comprends pas la suite.
    Tu es partie de la fonction fgetscsv, prends-donc la syntaxe des exemples du manuel PHP sur cette fonction.
    http://fr2.php.net/manual/fr/function.fgetcsv.php
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $row = 1;
    if (($handle = fopen("test.csv", "r")) !== FALSE) {
        while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            $num = count($data);
            echo "<p> $num champs à la ligne $row: <br /></p>\n";
            $row++;
            for ($c=0; $c < $num; $c++) {
                echo $data[$c] . "<br />\n";
            }
        }
        fclose($handle);
    }
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

  5. #5
    Membre actif
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2014
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2014
    Messages : 62
    Par défaut
    Au faite je recherche à modifier une ligne dans mon fichier par exemple j'ai trois lignes dans mon fichier comme suit:
    france=pays
    amerique=pays
    chine=pays
    Donc si la valeur selectionnée dans mon select est amerique alors le programme met un "#" au debut de cette ligne et le contenu du fichier devient:
    france=pays
    #amerique=pays
    chine=pays

  6. #6
    Membre Expert
    Avatar de Dendrite
    Femme Profil pro
    Développeuse informatique
    Inscrit en
    Juin 2008
    Messages
    2 129
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 59
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeuse informatique
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Juin 2008
    Messages : 2 129
    Billets dans le blog
    8
    Par défaut
    Je te propose plutôt cette fonction :
    A partir de ton csv, elle te construit un select, sans le modifier.
    Mais tu lui passes en paramètre 2 la valeur sélectionnée, s'il y en a une, et elle te l'affiche comme tu veux...
    Ca te va ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    function construitSelect($type,$selected=''){
    	$select='<select name="'.$type.'">'."\n";
    	$count = 1;
    	if (($handle = fopen("listes.csv", "r")) !== FALSE) {
    		while (($row = fgetcsv($handle, 1000, ",")) !== FALSE) {
    			$num = count($row);
    			$count++;
    			for ($c=0; $c < $num; $c++) {
    				//$temp[0]=france par exemple et $temp[1]=pays
    				$temp=explode('=',$row[$c]);
    				if($temp[1]==$type){
    					//la ligne sélectionnée, s'il y en a une
    					if($selected==$temp[0]){
    						$select.='<option value="'.$temp[0].'" selected>'.$temp[0].'</option>'."\n";
    					}
    					//la ligne ordinaire
    					else{
    						$select.='<option value="'.$temp[0].'">'.$temp[0].'</option>'."\n";
    					}
    				}
    			}
     
    		}
    		$select.='</select>'."\n";
    		fclose($handle);
    		return $select;
    	}
     
    }
    //Voici comment tu la convoques :
    $unSelect=construitSelect('pays','france');
    echo $unSelect;
    //et bien sûr, tu peux alimenter d'autres selects via ton csv
    /*
    Rome=capitale
    Paris=capitale
    New York=capitale
     
    se convoquerait ainsi
    $unSelect=construitSelect('capitale',''); si tu présentes le select pour la première fois ou $unSelect=construitSelect('capitale','Rome'); s'il y a déjà une séleciton par défaut
     
    */
    PDO, une soupe et au lit !
    Partir de la fin est un bon moyen de retrouver son chemin. Bibi - 2020

Discussions similaires

  1. Modifier une ligne dans un fichier text
    Par takizem dans le forum Programmation système
    Réponses: 0
    Dernier message: 07/10/2013, 19h29
  2. modifier une ligne dans un fichier texte
    Par junkie1986 dans le forum Tcl/Tk
    Réponses: 6
    Dernier message: 09/04/2013, 15h17
  3. [vb.net]Modifier une ligne d'un fichier texte
    Par Ykaar dans le forum VB.NET
    Réponses: 5
    Dernier message: 27/11/2008, 17h00
  4. Modifier une ligne d'un fichier texte?
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/05/2007, 18h51
  5. Modifier une ligne d'un fichier texte
    Par lauben dans le forum C
    Réponses: 2
    Dernier message: 27/05/2006, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo