probleme d'ordre d'affichage des messages dans un livre d'or en php sans mysql

bol2ry
Invité n'ayant pas de compte PHPfrance

18 févr. 2008, 16:00

bonjour,
Je me permet de vous renvoyé sur le wall suivant afin de ne pas surcharger le forum par un post trop long :
http://phpdebutant.org/wall4696.php

J'ai vu des liens vers les tutoriaux de phpdebutant et je n'ai pas vu qu'il ne fallait pas mettre de lien vers un autre wall, cependant si c'est interdit, je referais un autre wall sur ce site :)

merci d'avance

ViPHP
ViPHP | 4039 Messages

18 févr. 2008, 17:05

Permets-moi une explication de r+:

J'ai une chaine simple dans un fichier: ABCDEF.

Je veux écrire GHI.

Pour le placer à la fin, avec a+, ça donne:

Code : Tout sélectionner

ABCDEFGHI.
Mais, pour placer au début, ça foire, puisque r+ donne:

Code : Tout sélectionner

GHIDEF
Qu'est-ce qui s'est passé ? En r+, le fichier est ouvert au début certes, mais le texte n'est pas "inséré", en poussant le texte précedent en avant, mais l'ancien texte est remplacé par le nouveau, au fur et à mesure. (un peu comme le mode refrappe de la touche insert)

Pour ajouter en début de texte, le plus simple serait de lire ta données dans une variable, de concaténer, et de remettre le tout dans le fichier. Ou alors, plus complexe mais plus efficace, utiliser du xhtml qui te permettra de traiter ta page comme un object xml.
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

bol2ry
Invité n'ayant pas de compte PHPfrance

18 févr. 2008, 17:11

Ah d'accord ! je ne savais pas que r+ "insérait" au lieu d ajouter !
MERCI beaucoup ! ca fait 3 jours que je me prends la tete la dessus :p

bon alors il ne me reste plus qu'a changer de methode, mais ca va pas etre facile parce que je suis super debutant et donc "lire ta données dans une variable, de concaténer, et de remettre le tout dans le fichier", ça ne me parle pas du tout :p et le xml n'en parlons pas...
Merci !

d0m
Mammouth du PHP | 1141 Messages

18 févr. 2008, 17:45

Tu mets ta ligne que tu veux ajouter dans une chaine de caractère :
$document = $ma_ligne_a_ajouter;
Ensuite, tu ouvres le fichier.
En le parcourant, au lieu d'afficher les lignes tu les concatènes avec la chaine de caractère :
$document .= $ligne_du_fichier;
Ensuite tu écris la chaine dans le document.

bol2ry
Invité n'ayant pas de compte PHPfrance

18 févr. 2008, 17:50

merci je vais essayer ca :)
par contre ne serais-ce pas possible avec la fonction w au lieu de r+ ?
du genre :

Code : Tout sélectionner

<?php //on lit le contenu $ancien=file_get_contents("messages.htm"); //on ouvre en écriture $rec_message = fopen("messages.html", "w"); //on concatène $nouveau=$contenue.$ancien; //on écrit et on ferme fputs($rec_message, $nouveau); fclose($rec_message); ?>