Page 1 sur 1

Garder les X derniers éléments d'un fichier texte.

Posté : 01 juil. 2005, 21:43
par maxmaxmax12
Bonjour :)

J'aimerais gérer un fil RSS dynamiquement mais sans Base de Données, le tout étant stocké dans un fichier texte.

A chaque fois que j'ajoute une news sur mon site, celle-ci est copiée dans ledit fichier.

Tout est prêt, mais il y a encore un petit problème : si j'envoie 100 news, il y aura 100 news dans mon fichier RSS, c'est assez ennuyeux. :P

Donc j'aimerais savoir comment garder les 20 (par exemple) derniers <item> de mon fil et supprimer les anciens quand c'est nécessaire.

Pouvez-vous m'aider ? :)


D'avance merci,

maxmaxmax12.

Posté : 01 juil. 2005, 23:26
par kmeleon
Je connais pas très bien les RSS, mais je pense pouvoir t'aider. Donne-nous un exemple de ton fichier RSS et précise en indiquant tout ce qu'il faut.

Bonne soirée

Posté : 02 juil. 2005, 00:20
par maxmaxmax12
Merci beaucoup :)

Alors voilà "Canal.php" :
<?php

header('Content-Type: text/xml; charset=iso-8859-1');
echo('<?xml version="1.0" encoding="iso-8859-1" ?>'); 

?>

<rss version="2.0">
	<channel>

<title></title>
<link></link>
<description></description>
<language>fr</language>
<docs>http://blogs.law.harvard.edu/tech/rss</docs>
<image>
	<url></url>
	<title></title>
	<link></link>
	<description></description>
	<width>16</width>
	<height>16</height>
</image>
<category>Site Personnel</category>
<ttl>1500</ttl>

<?php

include 'donnees.txt';

?>

	</channel>
</rss>
"donnees.txt" se présentant sous la forme :

Code : Tout sélectionner

<item> <title>Système non fonctionnel pour le moment !</title> <link></link> <description>Le système de fil RSS n'est pas encore actif. Je vous remercie pour votre patience !</description> <author>[email protected]</author> </item>
Le résultat est visible :)

Si j'ajoute une news, j'aimerais que l'actuelle reste.
De même si j'en ajoute 2, 3, 4, ..., 19.

Mais j'aimerais fixer une limite de 20 ; ainsi, si mon fichier devait se retrouver à 21 <item>, il faudrait supprimer le plus ancien pour pouvoir rester à 20 en permanence :)


Bonne soirée,

Posté : 02 juil. 2005, 11:04
par kmeleon
Ta news s'ajoute en début ou en fin de fichier ?
Si c'est au début, le reste devient très simple. Il te suffit de conter les <item></item, et dès que t'arrive à 20 tu supprime toutes les autres lignes.
Si c'est à la fin, tu compte tous les items une première fois. Tu fait la différence:
$diff = $total-20;
et tu relis le fichier en supprimant $diff fois tous ce qu'il y a entre <item> et </item> de façon à ce qu'il te reste 20 groupe de <item></item>...

Ok c'est un peu compliqué, mais si tu n'a pas compris je me ferai un plaisir de te le rééxpliquer :twisted: lol.

Bonne journée !

Posté : 02 juil. 2005, 16:20
par maxmaxmax12
J'y suis arrivé ! :D
(avec les news qui s'ajoutent au début).

Un tout grand merci à toi :D


(edit) Oui, c'est résolu, je suis désolé d'avoir oublié :oops: ... ça devait être mon euphorie :P

Posté : 02 juil. 2005, 16:20
par Cyrano
Alors c'est [Résolu] :?: