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 :

[FTP] Lire et écrire dans un fichier [Débutant(e)]


Sujet :

Langage PHP

  1. #1
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut [FTP] Lire et écrire dans un fichier
    Bonjour,

    Je souhaite remplacer la valeur d'une ligne d'un fichier par une autre.

    J'ai un fichier dans lequel se trouve l'adresse ip d'un serveur FTP.
    J'ai également un formulaire qui permet à l'admin de modifier cette valeur.

    je récupère la nouvelle valeur avec un POST
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    $NewFTP=$_POST['txtFTP'];  //Récupération de la nouvelle adresse du FTP.		
    $fichier='variablesFTP.php';  //Fichier sur lequel on va travailler.
     
    $ouvre=fopen($fichier,"a+"); // ouverture en lecture ( a+)
    $contenu_array=file($fichier); //On enregistre le fichier variablesFTP.php dans un tableau, ligne par ligne
     
    print_r($contenu_array);
    fclose($ouvre);			// fermeture fichier
    Le print_r me renvoit un tableau vide

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    pour file(), tu n'as pas besoin de fopen()

  3. #3
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    Ok , j'arrive à récuperer un tableau contenant les lignes du fichier.
    Je modifie la ligne 2 du tableau

    mais je n'arrive toujours pas à réécrire le fichier.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    $NewFTP=$_POST['txtFTP'];  //Récupération de la nouvelle adresse du FTP.		
    $fichier='variablesFTP.php';  //Fichier sur lequel on va travailler.
     
    $contenu_array = file($fichier);
    $contenu_array[2]='$AccesDoc=ftp://'.$NewFTP.'/;';

  4. #4
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    PHP4 ou PHP5 ?

  5. #5
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    c'est du php 4

    j'ai vu qu'il fallait utiliser :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $fp=fopen($fichier,"w");
    fwrite($fp, "nouveau text");
    Mais je n'arrive pas à écrire le fichier à partir d'un tableau en fait.

  6. #6
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449

  7. #7
    Membre expérimenté
    Avatar de Anduriel
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2004
    Messages
    2 290
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Février 2004
    Messages : 2 290
    Points : 1 500
    Points
    1 500
    Par défaut
    Tu veux modifier une entrée dans le fichier variablesFTP ou ajouter la ligne?

  8. #8
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    Je n'y arrive toujours pas

    voici mon fichier variablesFTP.php :

    • <?
      //Chemin d'accès des documents de reprographie stockés sur le serveur.
      $AccesDoc="ftp://xxx.xxx.xxx.xxx/";

      //Variables de connection au Digipath (en FTP).
      $ftp_server=$AccesDoc;
      $ftp_user_name = 'user';
      $ftp_user_pass = 'pass';
      ?>


    Ce que je désire effectuer :

    Pouvoir modifier la ligne :
    • $AccesDoc="ftp://xxx.xxx.xxx.xxx/";


    Pour cela je récupère une variable par un formulaire (POST).
    J'arrive à récupérer la totalité du fichier texte dans un tableau (ligne par ligne).
    J'arrive à modifier la valeur de la ligne 2 (dans le tableau).
    Mais je n'arrive pas à tout réécrire dans le fichier variablesFTP.php

    merci d'avance.

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 049
    Points : 1 380
    Points
    1 380
    Par défaut
    $contenu_array=file($fichier);
    c'pas un tableau ça...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $contenu_array=array(file($fichier));
    ou alors j'ai rien comprite...

  10. #10
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    bah j'ai vu ça sur d'autres sites qui traitaient de l'écriture, lecture,.. dans des fichiers.

    Mais je crois bien que c'est un tableau, parce que je peux accéder à ses ligne de la manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    echo $contenu_array[2];

  11. #11
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Je t'ai aidé. Tu as testé ma dernière proposition ?

  12. #12
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    oui je l'ai testée, mais j'ai pas trop compris le but
    avec implode je ne vais pas pouvoir réécrire, si ?

    désolé j'ai du mal pourtant je cherche

  13. #13
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    A quoi sert implode() ? A quoi sert file() ?

  14. #14
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    bah file à ce que j'ai compris va mettre chaque ligne du fichier à traiter dans une nouvelle ligne du tableau
    exemple :
    $contenu_array=file($fichier);

    et implode ça va retourner une chaîne composée de tous les éléments du tableau.

    donc si dans mon tableau j'ai :

    ligne1;
    ligne2;
    ligne3;
    ça devrait me ramener : ligne1 ligne2 ligne3
    implode(",", $array); <= exemple de php.net
    mais je ne vois pas quel est le séparateur dans un tableau

  15. #15
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    Je viens de tester cela :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $fichier='variablesFTP.php';
    $contenu_array=file($fichier);
     
    echo "Test : ", implode(',', $contenu_array);
    mais ça ne me renvoit rien

    Pourtant, si je fais un print_r($contenu_array);

    j'obtient ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Array ( [0] => //Chemin d'accès des documents de reprographie stockés sur le serveur. [2] => $AccesDoc=ftp://test/; [3] => [4] => //Variables de connection au Digipath (en FTP). [5] => $ftp_server="test"; [6] => $ftp_user_name = 'user'; [7] => $ftp_user_pass = 'pass'; [8] => ?> )

  16. #16
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    relis bien ma proposition.

  17. #17
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    ta proposition hum
    il me semble que c'est de cela dont tu parles : implode('\n', $contenu_array);

    mais ça ne fonctionne pas non plus.

  18. #18
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 049
    Points : 1 380
    Points
    1 380
    Par défaut
    oui, pardon, file renvoie dans un tableau, exact.
    Donc tu veux sauvegarder ce tableau après modif dans un fichier .txt...?
    Il faut donc le transformer en chaine de caractères:
    -soit serialize() mais je crois que ça va pas coller avec file()
    -soit $chaine=valeur[0].valeur[1].valeur[2]...etc. Faut voir si y a pas une fonction qui fait ça, sinon faudra l'ecrire toi-même.

  19. #19
    Membre confirmé Avatar de dj-julio
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    745
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 745
    Points : 625
    Points
    625
    Par défaut
    j'ai fais le test suivant pour voir :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $contenu_array=array(1,2,3);
    echo "Test : ", implode('<br>', $contenu_array);
    et ça me renvoit bien :
    Test : 1
    2
    3
    Mais le problème (peut-être) c'est qu'en faisant file($fichier)
    je n'ai pas un tableau sous la forme array(1,2,3);
    mais sous la forme : array([0]=>1, [1]=>2, [2]=>3);

    ??? je suis sur que c'est trop une bétise en plus

  20. #20
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    Citation Envoyé par dj-julio
    ta proposition hum
    il me semble que c'est de cela dont tu parles : implode('\n', $contenu_array);

    mais ça ne fonctionne pas non plus.
    On y est presque. Il ne te reste plus qu'à relire ce que je t'ai proposer car il y a une différence (hormis le nom de la variable). On va y arriver. Cette erreur est récurrente chez tout développeur php.

    e n'ai pas un tableau sous la forme array(1,2,3);
    mais sous la forme : array([0]=>1, [1]=>2, [2]=>3);
    T'inquiète, c'est la meme chose.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. lire et écrire dans un fichier
    Par aroua dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 04/04/2008, 14h44
  2. Lire et écrire dans un fichier binaire
    Par poche dans le forum C
    Réponses: 17
    Dernier message: 19/03/2007, 16h52
  3. Lire et écrire dans un fichier bin!
    Par poche dans le forum C
    Réponses: 9
    Dernier message: 12/03/2007, 12h42
  4. lire et écrire dans un fichier
    Par karel dans le forum C
    Réponses: 15
    Dernier message: 18/01/2006, 17h24
  5. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48

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