Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/08/2011, 14h37   #1
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

Informations professionnelles :
Activité : Stagiaire
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
Par défaut ecrire dans un fichier.txt

Bonjour,

je veux generer un fichier.txt qui contient des valeurs generer par une formulaire en php mnt j'arrive a generer ce fichier mais le probleme c'est que je veux ce fichier ne ferme pas pour que je puisse chaque fois ajouter des contenus je vais detailler le probleme,j'ai une formulaire qui contient 5 radio boutton quand je clique sur une de ces radio il me redirige vers la page ou il ya la formulaire correspond a radio boutton selectionner,je remplis la formulaire,ensuite j'enregistre les donnees dans une base de donnée et je recuperer ces données dans un fichier.txt qui a ete generer automatiquement lors de l'enregistrement des données et ensuite je refais meme chose pour les autres radio boutton mais mon souci c'est que je dois continuer l'enregistrement des données des autres formulaires dans meme fichier.txt c'est pas de generer pour chaque formulaire un fichier.txt je crois vous voyer mon probleme maintent n'esitez pas de m'aidez voila mon code qui genere le fichier.txt:
Code :
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
49
50
51
52
53
	<?php    
include('connection.php');	
 
$q = mysql_query("SELECT * FROM qc_xml ORDER BY id_qc DESC limit 1;") or die('Erreur de la requête MySQL'); 
 
	$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>'."\r\n";
	while ($row = mysql_fetch_array($q)) {
		$xml .= '<Endpoint UseAsQuery="'.$row["Query"].'">'."\r\n";
		$xml .= '<Type>'.'QC'.'</Type>'."\r\n";
		$xml .= '<EpName>'.$row['Epname'].'</EpName>'."\r\n";
		$xml .='<ConnectionData>'."\r\n";
		$xml .= '<Username>'.$row['Username'].'</Username>'."\r\n";
		$xml .= '<password encrypted="'.$row['radio'].'" value="'.$row['valeur'].'"/>'."\r\n";
		$xml .= '<Properties>'."\r\n";
		$xml .= '<property name="Domain" value="'.$row['domain'].'"/>'."\r\n";
		$xml .= '<property name="Project" value="'.$row['project'].'"/>'."\r\n";
		$xml .= '</Properties>'."\r\n";
		$xml .= '</ConnectionData>'."\r\n";
 
		$xml .= '<Filters>'."\r\n";
		//$xml .= '<filter field="'.$row['filter_field'].'" value="'.$row['valeur'].'"/>'."\r\n";
		// ----
		$array_filter_operator = explode('<br />',nl2br($row['filter_field']));
		$array_field = explode('<br />',nl2br($row['valeur_c']));
 
		foreach($array_filter_operator as $key => $val) {
			$xml .= '<filter field="'.trim($array_filter_operator[$key]).'" value="'.trim($array_field[$key]).'" />'."\r\n";
		}
		// ----
		$xml .= '</Filters>'."\r\n";
 
		$xml .= '<FieldToGet IDName="'.$row['idname'].'">'."\r\n";
		// ----
		$array_field = explode('<br />',nl2br($row['field']));
		foreach($array_field as $key => $val) {
			$xml .= '<Field>'.trim($array_field[$key]).'</Field>'."\r\n";
		}
		// ----
		$xml .= '</FieldsToGet>'."\r\n";
 
 
 
 
	} // fin while
	$xml .= '</Endpoint>'."\r\n";
	$file = "D:/CQIET/wamp/www/projet_NDS/configuration/fichier_xml/".$fichier.".txt";
  $current= $xml;
  file_put_contents($file,$current);
 
?> 
 
 <script language="javascript">
alert("enregister"); </script> <?php  include("QC_xml.php");exit;
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 14h50   #2
Modérateur
 
Avatar de FirePrawn
 
Homme Sébastien
Ingénieur réalisateur
Inscription : mars 2011
Messages : 772
Détails du profil
Informations personnelles :
Nom : Homme Sébastien
Âge : 24
Localisation : France, Haut Rhin (Alsace)

Informations professionnelles :
Activité : Ingénieur réalisateur
Secteur : Industrie

Informations forums :
Inscription : mars 2011
Messages : 772
Points : 2 329
Points : 2 329
Bonjour,

Si j'ai bien compris, il te suffit de reprendre le même nom de fichier et d'écrire à la fin de celui-ci.
Pour plus d'informations sur la manipulation des fichiers cherches sur Google
__________________
- Avant toute chose : lire le mode d'emploi du forum et ses règles.
- avant de poster
- Je ne réponds pas aux questions techniques en MP.
FirePrawn est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 15h02   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Hello

Si c'est pour écrire du XML dans un fichier (quelle que soit ton extension) tu devrais utiliser le DOM: http://php.net/manual/en/book.dom.php
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/08/2011, 15h09   #4
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

Informations professionnelles :
Activité : Stagiaire
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
Merci pour ta reponse @FirePrawn mais comment je peux garder le nom de fichier.

Merci@Benjamin mais j'arrive a creer mon fichier sans utiliser dom
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 15h11   #5
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

Informations professionnelles :
Activité : Stagiaire
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
le nom de fichier doit generer lors de la premiere selection de radio boutton ensuite je clique que sur next pour continue la remplissage dans le fichier a partir des autres formulaires
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/08/2011, 16h07   #6
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Citation:
Envoyé par Miss kouka Voir le message
Merci pour ta reponse @FirePrawn mais comment je peux garder le nom de fichier.

Merci@Benjamin mais j'arrive a creer mon fichier sans utiliser dom
Suis les instructions fournies par FirePrawn, il faut spécifier un mode d'ouverture a+ (pour lecture/ecriture par ajout).

Code :
1
2
$handle = fopen('myfile.txt', 'a+');
fwrite($handle, "Une phrase");
Si je te conseille d'utiliser DOM plutôt que de créer les nodes à la main c'est pour obtenir plus de sécurité: un XML invalide (par exemple un tag fermant oublié) est complétement inutilisable.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 18/08/2011, 10h48   #7
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

Informations professionnelles :
Activité : Stagiaire
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
Bonjour,

j'ai mis le code pour l'ecriture dans un fichier mais il remplace l'ancien enregistrement et moi je veux qu'il cherche la fin de fichier et continue l'ecriture voila mon code:
Code :
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
	<?php    
include('connection.php');	
 
$q = mysql_query("SELECT * FROM cq_xml ORDER BY id_cq DESC limit 1;") or die('Erreur de la requête MySQL'); 
 
	$xml = '<?xml version="1.0" encoding="ISO-8859-1"?>'."\r\n";
	while ($row = mysql_fetch_array($q)) {
		$xml .= '<Endpoint UseAsQuery="'.$row["Query"].'">'."\r\n";
		$xml .= '<Type>'.'CQ'.'</Type>'."\r\n";
		$xml .= '<EpName>'.$row['Epname'].'</EpName>'."\r\n";
		$xml .='<ConnectionData>'."\r\n";
		$xml .= '<Username>'.$row['Username'].'</Username>'."\r\n";
		$xml .= '<password encrypted="'.$row['radio'].'" value="'.$row['valeur'].'"/>'."\r\n";
		$xml .= '<Properties>'."\r\n";
		$xml .= '<property name="Repository" value="'.$row['database'].'"/>'."\r\n";
		$xml .= '<property name="DataBase" value="'.$row['repository'].'"/>'."\r\n";
		$xml .= '</Properties>'."\r\n";
		$xml .= '</ConnectionData>'."\r\n";
 
		$xml .= '<Filters>'."\r\n";
		$xml .= '<operator name="'.$row['operator'].'" parent="'.$row['parent'].'" BoolOp="'.$row['boolop'].'"/>'."\r\n";
		// ----
		$array_filter_operator = explode('<br />',nl2br($row['filter_operator']));
		$array_field = explode('<br />',nl2br($row['field']));
		$array_compop = explode('<br />',nl2br($row['compop']));
		$array_valeur_c = explode('<br />',nl2br($row['filter_operator']));
		foreach($array_filter_operator as $key => $val) {
			$xml .= '<filter operator="'.trim($array_filter_operator[$key]).'" field="'.trim($array_field[$key]).'" CompOp="'.trim($array_compop[$key]).'" value="'.trim($array_valeur_c[$key]).'"/>'."\r\n";
		}
		// ----
		$xml .= '</Filters>'."\r\n";
 
		$xml .= '<FieldToGet IDName="'.$row['Idname'].'">'."\r\n";
		// ----
		$array_field = explode('<br />',nl2br($row['Balises_field']));
		foreach($array_field as $key => $val) {
			$xml .= '<Field>'.trim($array_field[$key]).'</Field>'."\r\n";
		}
		// ----
		$xml .= '</FieldsToGet>'."\r\n";
 
		$xml .= '<PIMT server="'.$row['server'].'">'."\r\n";
 
		$xml .= '<property name="password" value="'.$row['pass'].'"/>'."\r\n";
		$xml .= '<property name="project" value="'.$row['Project'].'"/>'."\r\n";
		$xml .= '<property name="group" value="'.$row['Group'].'"/>'."\r\n";
		$xml .= '<property name="graph" value="'.$row['Graph'].'"/>'."\r\n";
		$xml .= '<property name="description" value="'.$row['Description'].'"/>'."\r\n";
		$xml .= '<property name="implicit" value="'.$row['Implicit'].'"/>'."\r\n";
		$xml .= '<property name="date" value="'.$row['Date'].'"/>'."\r\n";
		$xml .= '<property name="item" value="'.$row['Item'].'"/>'."\r\n";
		$xml .= '<property name="states" value="'.$row['states'].'"/>'."\r\n";
 
		$xml .= '</PIMT>'."\r\n";
	} // fin while
	$xml .= '</Endpoint>'."\r\n";
	//if (feof($fichier)) 
 
  $file = "D:/CQIET/wamp/www/projet_NDS/configuration/fichier_xml/".$fichier.".xml";
 // $current= $xml;
  //file_put_contents($file,$current);
// $f = 'exemple.txt'; 
//$text = "ma chaine de caractères"; 
 
$handle = fopen($file,"w+"); 
if (feof($file)) {
// regarde si le fichier est accessible en écriture 
if (is_writable($file)) { 
// Ecriture 
    if (fwrite($handle, $xml) === FALSE) { 
      echo 'Impossible d\'écrire dans le fichier '.$file.''; 
      exit; 
    } 
 
    echo 'Ecriture terminé'; 
 
    fclose($handle); 
 
} 
else { 
      echo 'Impossible d\'écrire dans le fichier '.$file.''; 
    }
?> 
 
 <script language="javascript">
alert("enregister"); </script> <?php  include("CQ_xml.php");exit; 
 
	echo 'Export XML effectue !<br><a href="carnetMysqlToXml.xml">Voir le fichier</a>';
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/08/2011, 11h35   #8
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 984
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 984
Points : 5 011
Points : 5 011
Tu as spécifié w+ en mode d'ouverture du fichier, ce qui signifie read + write + truncate.
Comme je l'ai pourtant mentionné plus haut: le mode dont tu as besoin est a+, qui signifie read + write + append.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 19/08/2011, 13h34   #9
Futur Membre du Club
 
Femme kaoutar
Stagiaire
Inscription : août 2009
Messages : 148
Détails du profil
Informations personnelles :
Nom : Femme kaoutar
Localisation : France

Informations professionnelles :
Activité : Stagiaire
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : août 2009
Messages : 148
Points : 16
Points : 16
merci ca marche mais j'ai un soucis lors de la generation de fichier xml il m'aficche qu'une seul ligne pour la fonction voila mon code:
Code :
1
2
3
4
5
6
7
8
9
10
$xml .= '<mapfunctions>'."\r\n";
		$array_name = explode('<br />',nl2br($row['name_function']));
		$array_comment = explode('<br />',nl2br($row['comment']));	
		$array_value = explode('<br />',nl2br($row['value_function']));		
		foreach($array_name as $key => $val) {
 
 
		$xml .= '<function name="'.trim($array_name [$key]).'" />'."\r\n"
		.'<arg comment="'.trim($array_comment [$key]).'" value="'.trim($array_value[$key]).'" />'."\r\n";	
			}
moi je veux pour chaque fonction il y a plusieurs comment et value.

voila l'affichage:
Code :
1
2
3
4
5
<mapfunctions>
<function name="f1" />
<arg comment="aa" value="bb" />
</function>
</mapfunctions>
et voila ce que je veux:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
<mapfunctions>
<function name="f1" />
<arg comment="aa" value="bb" />
<arg comment="a" value="b" />
<arg comment="c" value="c" />
</function>
<function name="f2" />
<arg comment="u" value="u" />
<arg comment="a" value="u" />
<arg comment="e" value="u" />
</function>
 
</mapfunctions>
Miss kouka est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 09h24.


 
 
 
 
Partenaires

Hébergement Web