Page 1 sur 1

[RESOLU]Rajouter une ligne en fin de fichier text

Posté : 02 nov. 2010, 16:54
par lovebzh
Bonjour,

Le but de mon script est de rajouter en fin de fichier texte une ligne.
<form action='' method='post'>
					<h2>Liste Blanche</h2>
						<?php if (isset ($_POST['addblanc']))
							{ 
							$aj = $_POST['addblanc'];
							$nom_fichier='dans/exceptionsitelist';
							$liste=file($nom_fichier); 
							array_push($liste, "$aj");
							file_put_contents($nom_fichier, implode("\n",$liste));
							var_dump($liste);


							} ?>
						<p>

							<label for="addblanc">Site &agrave; ajouter</label>

							<input name="addblanc" type="text" id="addblanc" size="13" maxlenght="20" />

						</p>
						<p>
							<input type='submit' name='Submit' value='Ajouter' />
						</p>
				</form>
Je dois avouer que je ne comprend pas ce qui coince.
Si je pars d'un fichier vide, les deux premières entrées que je vais rajouter à mon fichier texte vont être bien rempli.
Ligne1
Ligne2
Une fois que je rajoute une troisième entrée, j'obtiens ceci :
Ligne1
Ligne2

Ligne3
Si je pars d'un fichier avec déjà quelques lignes, ca ne fonctionne pas mieux.
J'ai le droit à un retour chariot entre chaque ligne.

Je suppose que cela doit être tout bête, mais après avoir lu et relu les docs des fonctions utilisées, je ne vois vraiment pas d'ou vient l'erreur.
A noté que mon serveur web utilise php 4.3.9.

Merci de votre attention

Re: Rajouter une ligne en fin de fichier text

Posté : 02 nov. 2010, 18:39
par AB
Ce serait plus simple d'utiliser file_put_contents avec le flag FILE_APPEND

C'est l'exemple 2 du manuel sur ce lien http://fr.php.net/file_put_contents

Re: Rajouter une ligne en fin de fichier text

Posté : 02 nov. 2010, 20:45
par lovebzh
Merci beaucoup AB.
Je ne connaissais, ou plutôt n'avais pas compris l'intérêt de ce flag.
Ca simplifie effectivement beaucoup les choses.
Si cela peut éviter à quelqu'un de gagner des cheveux blancs, voici le script corrigé et fonctionnel.
<form action='' method='post'>
					<h2>Liste Blanche</h2>
						<?php if (isset ($_POST['addblanc']))
							{ 
							$aj = $_POST['addblanc'];
							$maj = $aj."\n";
							$nom_fichier='dans/exceptionsitelist';
							file_put_contents($nom_fichier, $maj, FILE_APPEND);
							} ?>
						<p>

							<label for="addblanc">Site &agrave; ajouter</label>

							<input name="addblanc" type="text" id="addblanc" size="13" maxlenght="20" />

						</p>
						<p>
							<input type='submit' name='Submit' value='Ajouter' />
						</p>
				</form>

Re: Rajouter une ligne en fin de fichier text

Posté : 06 juin 2012, 00:36
par Invité
Ce serait plus simple d'utiliser file_put_contents avec le flag FILE_APPEND

C'est l'exemple 2 du manuel sur ce lien http://fr.php.net/file_put_contents

Merci grandement pour ce lien , après beaucoup de recherche et étant débutant en language php , ceci m'as beaucoup aidé et m'as parru beaucoup plus CLAIR que tout autre débat à ce sujet sur les autres forums ou les gens ne penses pas forcement à utiliser les constantes, qui sont pourtant à mon avis LA MEILLEURE DES SOLUTIONS pour éviter certaines erreures, encore merci à vous.