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 :

Suppression d'une ligne dans un fichier


Sujet :

Langage PHP

  1. #1
    Nouveau membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2006
    Messages
    61
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2006
    Messages : 61
    Points : 38
    Points
    38
    Par défaut Suppression d'une ligne dans un fichier
    Salut tout le monde
    voila ma question
    je cherche un code qui me permet de supprimer une ligne dans un fichier.j'ai deja recuperé le numéro de la ligne
    exemple

    mon fichier

    aaaaaaaaaa
    bbbbbbbbbb
    cccccccccc
    dddddddddd


    apré je veux qu'il soit comme sa

    aaaaaaaaaaa
    ccccccccccc
    ddddddddddd

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    tu peux ouvrir le fichier avec la fonction http://php.net/file, ensuite tu supprimes la ligne avec http://php.net/unset et pour finir tu réécris le fichier avec la fonction http://php.net/file_put_contents

  3. #3
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par mathieu Voir le message
    tu peux ouvrir le fichier avec la fonction http://php.net/file, ensuite tu supprimes la ligne avec http://php.net/unset et pour finir tu réécris le fichier avec la fonction http://php.net/file_put_contents
    J'ai le même soucis et le naviguateur m'affiche : Fatal error: Call to undefined function: file_put_contents() in /homez.49/briansni/multisites/transfert_images_fond.php on line 184

    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
    $req = "SELECT id FROM image_fond where tetiere_file1='$tetiere_file1' and tetiere_file2='$tetiere_file2' and recherche_file='$recherche_file' and menu_file='$menu_file' and pub_file='$pub_file' and contenu_file='$contenu_file' and piedpage_file='$piedpage_file' and nom='$nom' ORDER BY nom";
     
    $ret = mysql_query ($req) or die (mysql_error ());
    $ret2 = mysql_query ($req) or die (mysql_error ());
    $ret3 = mysql_query ($req) or die (mysql_error ());
    $ret4 = mysql_query ($req) or die (mysql_error ());
    $ret5 = mysql_query ($req) or die (mysql_error ());
    $ret6 = mysql_query ($req) or die (mysql_error ());
    $ret7 = mysql_query ($req) or die (mysql_error ());
     
     
    $rep = mysql_fetch_array($ret);
    $rep2 = mysql_fetch_array($ret2);
    $rep3 = mysql_fetch_array($ret3);
    $rep4 = mysql_fetch_array($ret4);
    $rep5 = mysql_fetch_array($ret5);
    $rep6 = mysql_fetch_array($ret6);
    $rep7 = mysql_fetch_array($ret7);
     
      $fp = ".htaccess2";
      //$fichier = @fopen($fichier, "a+");
      $f1=file_get_contents($fp);
      $f1 .="ReWriteRule	".$tetiere_file1.".jpg	/apercu3.php?id=".$rep['id']."	[L]\n\n";
     
    	file_put_contents($fp, $f1);
    	file_put_contents($fp,FILE_APPEND | LOCK_EX, "ReWriteRule	".$tetiere_file2.".jpg	/apercu4.php?id=".$rep2['id']."	[L]\n\n");
    	file_put_contents($fp,FILE_APPEND | LOCK_EX, "ReWriteRule	".$recherche_file.".jpg	/apercu5.php?id=".$rep3['id']."	[L]\n\n");
    	file_put_contents($fp,FILE_APPEND | LOCK_EX, "ReWriteRule	".$menu_file.".jpg	/apercu6.php?id=".$rep4['id']."	[L]\n\n");
    	file_put_contents($fp,FILE_APPEND | LOCK_EX, "ReWriteRule	".$pub_file.".jpg	/apercu7.php?id=".$rep5['id']."	[L]\n\n");
    	file_put_contents($fp,FILE_APPEND | LOCK_EX, "ReWriteRule	".$piedpage_file.".jpg	/apercu8.php?id=".$rep6['id']."	[L]\n\n");
    	file_put_contents($fp,FILE_APPEND | LOCK_EX, "ReWriteRule	".$contenu_file.".jpg	/apercu9.php?id=".$rep7['id']."	[L]\n\n");
     
     
      fclose($fp);

  4. #4
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    où est l'intérêt de faire tourner 8 fois la même requête select ? récupérer 8 fois le même résultat ?

    Au passage file_put_contents n'existe qu'à partir de php 5. Donc, si tu es en php4 ça marchera pas...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  5. #5
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Celira Voir le message
    où est l'intérêt de faire tourner 8 fois la même requête select ? récupérer 8 fois le même résultat ?

    Au passage file_put_contents n'existe qu'à partir de php 5. Donc, si tu es en php4 ça marchera pas...
    Quelle fonction similaire en php4 pourrais je utiliser pour modifier mon fichier??,

  6. #6
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    La réponse est dans la question :
    file_put_contents
    Revient à appeler les fonctions fopen(), fwrite() et fclose() successivement.
    Donc ouvrir le fichier avec fopen, l'écrire avec fwrite et le refermer avec fclose
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  7. #7
    Membre actif Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Points : 233
    Points
    233
    Par défaut
    Tu dois faire un fopen pour ouvrir premièrement le fichier, plus avec fwrite tu écrit toutes tes données et enfin tu ferme le fichier avec fclose.

    Au passage, pas besoin de faire de fclose dans ton code vu que tu ne fais aucun fopen (les fonctions file_get_contents et file_put_contents ferment automatiquement le fichier).

  8. #8
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    Citation Envoyé par Alshten Voir le message
    Tu dois faire un fopen pour ouvrir premièrement le fichier, plus avec fwrite tu écrit toutes tes données et enfin tu ferme le fichier avec fclose.

    Au passage, pas besoin de faire de fclose dans ton code vu que tu ne fais aucun fopen (les fonctions file_get_contents et file_put_contents ferment automatiquement le fichier).
    Citation Envoyé par Celira Voir le message
    La réponse est dans la question :

    Donc ouvrir le fichier avec fopen, l'écrire avec fwrite et le refermer avec fclose


    Oui mais de cette manière je ne peux pas modifier un ligne, par exemple modifier cette ligne de mon fichier .htacces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReWriteRule	lion	/apercu3.php?id=46	[L]
    et mettre ça à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReWriteRule	lion2	/apercu3.php?id=46	[L]
    Je ne peux qu'ajouter une nouvelle ligne ça créera des doublons....

  9. #9
    Membre actif Avatar de Alshten
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2005
    Messages
    157
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 157
    Points : 233
    Points
    233
    Par défaut
    Citation Envoyé par samou38 Voir le message
    Oui mais de cette manière je ne peux pas modifier un ligne, par exemple modifier cette ligne de mon fichier .htacces
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReWriteRule	lion	/apercu3.php?id=46	[L]
    et mettre ça à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ReWriteRule	lion2	/apercu3.php?id=46	[L]
    Je ne peux qu'ajouter une nouvelle ligne ça créera des doublons....
    Cette technique permet juste de remplacer le file_put_contents, tout ce que tu peux faire avec file_put_contents, tu peux le faire avec cette méthode. Et d'ailleurs je vois pas en quoi tu ne peux pas ce traitement avec cette méthode ?

  10. #10
    Membre à l'essai
    Inscrit en
    Juin 2009
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 21
    Points : 15
    Points
    15
    Par défaut
    IL y a pas une manière de vérifier si la ligne à inserer dans le fichier est pas déjà présente parce que là comme je vous l'ai dis ça crée des doublons alors que le file_put_contents() permet de modifier le fichier c'est à dire ajouter une ligne ou modifier une ligne

Discussions similaires

  1. [Batch] Suppression d'une ligne dans un fichier
    Par maf dans le forum Scripts/Batch
    Réponses: 3
    Dernier message: 10/12/2012, 16h01
  2. suppression d'une ligne dans un fichier XML EN VBA
    Par newcodeur dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 10/07/2008, 16h00
  3. Suppression d'une ligne dans un fichier txt
    Par EvaristeGaloisBis dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 21/07/2007, 17h58
  4. Réponses: 3
    Dernier message: 26/03/2006, 20h45
  5. [VB6]Suppression d'une ligne dans un fichier
    Par Tyrael62 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 08/02/2006, 11h20

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