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 :

Editer un fichier texte en php via html


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    diagnoticien
    Inscrit en
    Novembre 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : diagnoticien
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2014
    Messages : 86
    Points : 110
    Points
    110
    Par défaut Editer un fichier texte en php via html
    Bonjour,

    j'ai un fichier "Message.txt" avec:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <item><url>test1</url></item>
    je voudrais réussir a ceci et ajouter une balise en plus:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <playlist>
    <item><url>test1</url></item>
    <item><url>test2</url></item>
    <item><url>test3</url></item>...etc
    </playlist>
    je voudrais ajouter au fur et mesure plusieurs lignes similaire via le fichier add.php
    Le tout via une page html.
    fichier add.php:
    Code html : 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
    <?php
    if(isset($_POST['submitSave'])){
            require 'simplexml.class.php';
            $value = simplexml_load_file('Message.txt');
            $value->addChild('name', $_POST["value"]); 
            file_put_contents('Message.txt', $value->asXML());
            header('location: message.php');        
    }
    ?>
    <form method="post">
        <center><br><br><table cellpadding="2" cellspacing="2">
    	    <tr>
    		 <td>Adresse</td>
    	         <td><input type="text" name="value"></td>
    	  </tr>
    	    <tr>
    		  <td>&nbsp;</td>
    		  <td><input type="submit" name="submitSave" value="Save"></td>
    		</tr>		
    	</table>
    </form>
    <head>
      <style>
        body { background-color: #A4A4A4; }
      </style>
    </head>
    <body>
    </body>

    le fichier message.php qui affiche en forme de tableau la liste ajouter par le fichier add.php:

    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
    43
    44
    45
    46
    <?php
    if(isset($_GET['action'])){
    	$item = simplexml_load_file('Message.txt');
    	$value = $_GET['value'];
    	$index = 0;
    	$i = 0;
    foreach ($item->name as $name){
    	if($name['value']==$value){
    		$index = $i;
    		break;
    	}
    	$i++;
      }
      unset($item->name[$index]);
      file_put_contents('Message.txt', $item->asXML());
    }
    $item = simplexml_load_file('Message.txt');
    echo 'Liste nombre: '.count($item);
    echo '<br>Listing Information';
    ?>
     
    <br>
    <center><a href="add.php">Add new adresse</a>
    <br>
    <br>
    <center><table cellpadding="3" cellspacing="3" border="2">
        <tr>
    	<th>Adresse</th>
    	<th>Option</th>
        </tr>
        <?php foreach ($item->name as $name){ ?>
            <tr>
                <td><?php echo $name; ?></td>
    			<td align="center">
    			<a href="edit.php?value=<?php echo $name; ?>">Edit</a> 
    			<a href="message.php?action=delete&value=<?php echo $name; ?>" onclick="return confirm('vous etes sur?')">Delete</td>
            </tr>
        <?php } ?>
    </table>
    <head>
      <style>
        body { background-color: #A4A4A4; }
      </style>
    </head>
    <body>
    </body>
    Le fichier "Message.txt" sera utiliser par un autre programme en tant que playlist , mais il me faut ajouter la balise <playlist></playlist> au debut et à la fin , ça fait quelques jours que je cherche la solution mais mes connaissances en php sont encore trop basique.
    help

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    quel est le résultat du code de add.php à chaque fois que vous ajoutez un élément ? montrez nous le contenu de Message.txt à différentes étapes.

  3. #3
    Expert éminent Avatar de CosmoKnacki
    Homme Profil pro
    Justicier interdimensionnel
    Inscrit en
    Mars 2009
    Messages
    2 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations professionnelles :
    Activité : Justicier interdimensionnel

    Informations forums :
    Inscription : Mars 2009
    Messages : 2 858
    Points : 6 556
    Points
    6 556
    Par défaut
    Citation Envoyé par allan71 Voir le message
    j'ai un fichier "Message.txt" avec:
    <item><url>test1</url></item>
    je voudrais réussir a ceci et ajouter une balise en plus:
    <playlist>
    <item><url>test1</url></item>
    <item><url>test2</url></item>
    <item><url>test3</url></item>...etc
    </playlist>
    Pourquoi ne pas mettre toi même les balises <playlist>...</playlist> avec un éditeur de texte (ou autre) dés le départ? Ensuite tu n'auras plus qu'à ajouter d'autres items si tu le souhaites. Pourquoi te compliquer la vie avec une structure différente au départ? Est-ce une contrainte? D'où vient-elle?

    Aussi pourquoi ne pas nommer ton fichier correctement, ce n'est pas un "message", c'est une playlist, ce n'est pas du texte c'est du xml, donc: playlist.xml
    Brachygobius xanthozonus
    Ctenobrycon Gymnocorymbus

  4. #4
    Membre régulier
    Homme Profil pro
    diagnoticien
    Inscrit en
    Novembre 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : diagnoticien
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2014
    Messages : 86
    Points : 110
    Points
    110
    Par défaut
    Bonjour CosmoKnacki et Mathieu , merci pour votre aide , j'explique un peu en détails , le script me servait à la base pour ajouter des adresses de radio web à un player musique que j'avais depuis quelque année qui fonctionne encore aujourd'hui , j'ai un gendre qui joue a un jeu où on peu ajouter des adresses de différent circuit de voitures , j'herberge pour lui sur mon serveur la partie multijoureur , jusqu’à présent je rentrais les adresses avec un éditeur de texte , me suis dit que je pourrait adapter le script pour simplifier le tout , il aurait plus besoin de moi pour modifier le fichier "message.txt" qui été à la base "playlist.xml". Ceci dit cela fonctionne bien avec *.txt également.
    Citation Envoyé par CosmoKnacki Voir le message
    Pourquoi ne pas mettre toi même les balises <playlist>...</playlist> avec un éditeur de texte (ou autre) dés le départ?
    J'ai déjà tester cela mais y a un bug , et j'ai déjà fait pas mal de modif du script mais j'ai surement pas assez de connaissance en PHP pour trouver la solution:

    Citation Envoyé par mathieu Voir le message
    quel est le résultat du code de add.php à chaque fois que vous ajoutez un élément ? montrez nous le contenu de Message.txt à différentes étapes.
    voici la liste si tout est delete au départ:

    j'ajoute test1 puis test2 avec add.php:
    Le tableau visualiser avec "message.php
    Nom : Tableau.jpg
Affichages : 147
Taille : 9,2 Ko
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <item>
    <name>test1</name>
    <name>test2</name>
    <!-- #Tout est OK -->
    </item>

    J'ajoute ceci avec un editeur
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <playlist><item></item></playlist>

    j'ajoute test1 puis test2 avec add.php:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <playlist>
        <item/>
    	<name>test1</name>
        <name>test2</name>
    </playlist>
    <!-- il manque le </item> de fin et celui du début le / est pas au bonne endroit -->

    et si je delete le tout:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    <playlist><item/></playlist>
    Voila où j'en suis

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    au sujet de la redirection, je vous conseille de mettre un "exit" sinon le reste de la page va être exécuté et vous pouvez avoir des surprises.

    pour la création du contenu xml, vous pouvez démarrer avec le contenu <playlist></playlist> dans le fichier et ensuite essayez ce 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
    $fichier_playlist = "playlist.xml";
     
     
    if (isset($_POST['submitSave'])) {
     
    	$playlist = simplexml_load_file($fichier_playlist);
     
    	// ajout d'une balise item
    	$nouveau_item = $playlist->addChild("item");
     
    	// ajout d'une balise url dans la balise item
    	$nouveau_item->addChild("url", $_POST["value"]);
     
    	file_put_contents($fichier_playlist, $playlist->asXML());
     
     
    	header('Location: message.php');
    	exit();
     
    }

  6. #6
    Membre régulier
    Homme Profil pro
    diagnoticien
    Inscrit en
    Novembre 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : diagnoticien
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2014
    Messages : 86
    Points : 110
    Points
    110
    Par défaut
    J'ai tester votre code , il fonctionne ,merci beaucoup , j'optiens effectivement les balises comme voulu:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <playlist>
    <item><url>test1</url></item>
    <item><url>test2</url></item>
    </playlist>
    j'ai modifier également le fichier "message.php" , la liste du tableau restait vide ,
    j'ai modifier:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <?php foreach ($item->name as $name){ ?><?php foreach ($item->name as $name){ ?>
            <tr>
                <td><?php echo $name; ?></td>
    			<td align="center">
    			<a href="edit.php?value=<?php echo $name; ?>">Edit</a> 
    			<a href="message.php?action=delete&value=<?php echo $name; ?>" onclick="return confirm('vous etes sur?')">Delete</td>
            </tr>
        <?php } ?>
    par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?php foreach($item->xpath("//url") as $url){ ?>
            <tr>
                <td><?php echo $url->__toString(); ?></td>
    			<td align="center">
    			<a href="edit.php?value=<?php echo $url->__toString(); ?>">Edit</a> 
    			<a href="message.php?action=delete&value=<?php echo $url->__toString(); ?>" onclick="return confirm('vous etes sur?')">Delete</td>
            </tr>
        <?php }
     ?>
    J'ai a nouveau la liste qui est ajouter par "add.php"
    Il me reste encore a refaire fonctionne la fonction "unset" pour supprimer les balises ajouter par "add.php"
    un coup de pouce serai le bienvenue
    mon fichier"message.php qui ne fonctionne pas tout a fait pour le moment:
    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
    43
    44
    45
    46
    47
    48
    <?php
    if(isset($_GET['action'])){
    	$item = simplexml_load_file('Message.txt');
    	$value = $_GET['value'];
    	$index = 0;
    	$i = 0;
        foreach($item->xpath("//url") as $url){
    	if($url['value']==$value){
    		$index = $i;
    		break;
    	}
    	$i++;
      }
      unset($item->url[$index]);
      file_put_contents('Message.txt', $item->asXML());
    }
    $item = simplexml_load_file('Message.txt');
    echo 'Liste nombre: '.count($item);
    echo '<br>Listing Information';
     
    ?>
     
    <br>
    <center><a href="add.php">Add new adresse</a>
    <br>
    <br>
    <center><table cellpadding="3" cellspacing="3" border="2">
        <tr>
    		<th>Adresse</th>
    		<th>Option</th>
    	</tr>
    <?php foreach($item->xpath("//url") as $url){ ?>
            <tr>
                <td><?php echo $url->__toString(); ?></td>
    			<td align="center">
    			<a href="edit.php?value=<?php echo $url->__toString(); ?>">Edit</a> 
    			<a href="message.php?action=delete&value=<?php echo $url->__toString(); ?>" onclick="return confirm('vous etes sur?')">Delete</td>
            </tr>
        <?php }
     ?>
    </table>
    <head>
      <style>
        body { background-color: #A4A4A4; }
      </style>
    </head>
    <body>
    </body>

  7. #7
    Membre régulier
    Homme Profil pro
    diagnoticien
    Inscrit en
    Novembre 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : diagnoticien
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2014
    Messages : 86
    Points : 110
    Points
    110
    Par défaut
    >Après quelques jours de recherche , j'ai presque trouver la solution la fonction unset marche a présent mais supprime pas la ligne séléctionner mais supprime les lignes de haut en bas , en faite cela supprime de la premère à la dernière balise ajouter.
    Ancien code qui fonctionnait pas
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unset($item->url[$index]);
      file_put_contents('Message.txt', $item->asXML());
    Nouveau code mais qui ne supprime pas lla bonne ligne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
      unset($playlist->item[$index]);
      url_put_contents('message.txt', $playlist->asXML());
    exemple Test10 sélectionner cela supprime test1 puis test2...
    Nom : Tableau2.jpg
Affichages : 100
Taille : 15,1 Ko
    j'ai passer presque tout les jours sur des tuto , même suivie les cours php ici , j'ai déjà beaucoup appris a mon age mais bon ça suffit pas.A croire que je maitriserai le PHP avant ma retraite
    Bref la seul chose qui m'étonne s'est quand je regarde le code source de la page , cela affiche bien la valeur entre les balises a supprimer.
    Code html : 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
    <center><table cellpadding="3" cellspacing="3" border="2">
        <tr>
    		<th>Adresse</th>
    		<th>Option</th>
    	</tr>
            <tr>
                <td>test2</td>
    			<td align="center">
    			<a href="edit.php?value=test2">Edit</a> 
    			<a href="message.php?action=delete&value=test2" onclick="return confirm('vous etes sur?')">Delete</td>
            </tr>
                <tr>
                <td>test3</td>
    			<td align="center">
    			<a href="edit.php?value=test3">Edit</a> 
    			<a href="message.php?action=delete&value=test3" onclick="return confirm('vous etes sur?')">Delete</td>
            </tr>
    Donc le script de la page php est pas si mauvais?

  8. #8
    Membre régulier
    Homme Profil pro
    diagnoticien
    Inscrit en
    Novembre 2014
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : diagnoticien
    Secteur : Transports

    Informations forums :
    Inscription : Novembre 2014
    Messages : 86
    Points : 110
    Points
    110
    Par défaut
    Personne pour aider?

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

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 234
    Points : 15 531
    Points
    15 531
    Par défaut
    c'est une nouvelle question que vous posez donc il vaut mieux mettre cette discussion en résolu et créer une nouvelle discussion.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/03/2007, 11h13
  2. lire le contenu d'un fichier texte en php
    Par jgoguel dans le forum Langage
    Réponses: 4
    Dernier message: 04/01/2007, 17h48
  3. [VBA] Importer fichier texte d'un lien HTML dans ACCESS
    Par VICTOIRE44 dans le forum VBA Access
    Réponses: 3
    Dernier message: 04/12/2006, 10h58
  4. Réponses: 9
    Dernier message: 22/05/2006, 12h21
  5. [Cygwin] : comment éditer un fichier texte ?
    Par Invité dans le forum Autres éditeurs
    Réponses: 6
    Dernier message: 13/12/2005, 21h43

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