[PHP] Ecrire dans un TXT

killerscraft Messages postés 41 Date d'inscription   Statut Membre Dernière intervention   -  
 Alain42 -
Bonjour, j'aimerais savoir si il est possible d'écire sur un fichier mais d'ércrire au début, je parle de PHP, je vous explique cela plus clairement : je suis en train de faire un livre d'or, mais ne voulant pas utiliser une base de donnée MYSQL, j'utilise un fichier *.txt et donc mon script écrit dessus, mais pas dans l'ordre que je souhaiterais : http://jonstock.olympe-network.com/guestbook.php voyez par vous meme,

Voici le script qui écris sur le *.txt :

<?

//Ouverture du fichier en écriture

$fp = fopen("guesttbook.txt",a);



//On convertit les caracteres html

$nom = htmlspecialchars($_POST['nom']);

$site = stripslashes(nl2br(htmlentities($_POST['site'])));

$mail = htmlspecialchars($_POST['mail']);

$message = stripslashes(nl2br(htmlentities($_POST['message'])));

$d = date ( "d/m/Y H:i:s" );



$page = "";

$lemail = "<a href=\"mailto:$mail\">$mail</a> - <a href=\"http://$site\">http://$site</a>";

$page .= "<b>$nom</b> (".$lemail.") - $d<br><br>$message<br><hr>\n";



//On rajoute le message

fwrite($fp,"$page" ,strlen("$page"));



//fermeture du fichier

fclose($fp);



//On affiche le message enregistré

echo "Merci $nom, nous avons enregistré votre message : <br>";

echo "E-mail : $mail <br> Message : $message";



?>



<p><a href="guestbook.php">Retour au guestbook</a>

</p>


Voila, pouvez vous m'aider svp, merci d'avance et bonne journée :)
A voir également:

2 réponses

Alain42
 
Essaye en lisant ton fichier par la fonction file(), elle te met les lignes dans un array.

tu pourras ensuite rajouter ta nouvelle ligne au début de cet array et le réecrire ans le fichier par fputs.
0
killerscraft Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ta réponse, mais j'avoue ne pas etre assez calé pour comprendre ^^
0
killerscraft Messages postés 41 Date d'inscription   Statut Membre Dernière intervention  
 
Merci de ta réponse, mais j'avoue ne pas etre assez calé pour comprendre ^^
0
Alain42
 
Avec file() pas besoin de fopen

tu essayes:

$array_fichier=file("guesttbook.txt");

array_unshift($array_fichier,$page); // empile $page au début de l'array


if($f=fopen("guesttbook.txt,"w")){
for ($k=0; $k<sizeof($array_fichier);$k++ ) {
$ecrit=-1;
if (fputs($f,$array_fichier[$k])) $ecrit=1 ; // ecrire ligne par ligne
}
}
fclose($f);

if($ecrit==1){echo "Ecriture reussie"; } else { echo "Pb ecriture fichier";}

attention ton fihier doit avoir les droits suffisants ( 777 )
0