|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Autodidacte Inscription : juillet 2006 Messages : 140 ![]() |
Bonjour,
Voilà je réalise actuellement un chat, pour économiser des ressources j'inscrit le log dans un fichier texte. Comme je souhaite garder un historique du chat il me faudrais ressortir juste les dernières 40/50 lignes du fichier. J'eu pour idée, détrompez-moi si je me penche sur une solution trop lourde comparée à ce qu'elle pourrait être, de compter toute les lignes du fichier et d'incrémenter une variable "$i" à chaques lignes pour pouvoir obtenir le numéro totale des lignes. Ensuite il me faudrait placer le curseur à la ligne "$i -40" et à partir de là ressortir toutes les lignes suivantes. Pour celà on m'a gentiment conseillé de transformer les chaines en array et de trier via la fonction explode, je trouve cette solution intérressante mais bien trop lourde, car si mon fichier contient plus de 10 000 lignes il me faudrait créer un array de 10 000 lignes J'ai certes chercher des fonctions me permettant de placer le curseur à la ligne désirée mais je n'en ai hélas pas trouvé, ce qui me parait étonnant vu l'utilité d'une telle fonction. Donc je venais solliciter votre expérience afin d'y voir plus clair et de me décider sur le système à adopter. Je vous remercie pour votre attention. |
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Salut,
le principe serait de parcourir le fichier à l'envers à la recherche des sauts de lignes. Il y a plusieurs exemples sur la page de fseek() http://www.php.net/manual/fr/function.fseek.php Bye |
|
|
00
|
|
|
#3 |
|
Invité(e)
Messages : n/a ![]() |
comme l'indique Djakisback tu va rentrer dans une boucle donc tu incrementes un compteur et tu auras tes 50 dernères lignes lignes
tu comptes le nombre total de lignes et tu commences a les lire a ( nlignes - 50 ) mais bon pour faire ce genre de projets mieux vaut utiliser une base de données t auras moins de souci si c'est pour les performances que tu t'inquietes avant que tu ais 500 visiteurs en ligne tu auras eu le temps de voir venir .... + |
00
|
|
|
#4 |
|
Nouveau Membre du Club
![]() Autodidacte Inscription : juillet 2006 Messages : 140 ![]() |
Bonjour Djakisback,
Merci de m'avoir répondu aussi rapidement mais hélas ta solution parle peu pour le débutant que je suis. J'ai certes regardé la page que tu m'as conseilél mais je n'y comprend rien Pourrais-tu prendre le temps de m'expliquer plus en détail s'il te plait afin d'éclairer ma lanterne ? Merci ![]() Bonjour gseverin, Nos messages se sont croisés, le système sous base de données sql marche et est opérationnel à ce niveau là. Mais aimant l'optimisation à l'extrême je préfère dors et déjà m'y mettre et de plus ça n'en rendras mon apprentissage, même s'il est bien plus ardu, bien plus intérressant |
|
|
00
|
|
|
#5 |
|
Invité(e)
Messages : n/a ![]() |
sinon tu charges tous tes enregistrements dans un tableau à deux dimensions puis tu le tries en descending , ensuite t affiches les 50 premieres lignes.
a toi de trouver un systeme pour epurer ton fichier |
00
|
|
|
#6 |
|
Nouveau Membre du Club
![]() Autodidacte Inscription : juillet 2006 Messages : 140 ![]() |
Merci pour ces conseils, pour le moment je suis trop claqué pour y réflechir je vois
Je vais passer une bonne nuit reposante et visualiserais demain la situation, en prenant en compte vos conseils et serait plus apte à englober tout celà. Je vous remercie et vous souhaite une bonne soirée, pour un suivi du sujet et pour ceux qui aimerais savoir qu'elle direction j'ai pris je metterais à jour ce sujet selon les diverses étapes que je pourrais rencontrer. Bien sûr si elles ne sortent pas du cadre du sujet. |
|
|
00
|
|
|
#7 | ||
|
Nouveau Membre du Club
![]() Autodidacte Inscription : juillet 2006 Messages : 140 ![]() |
Bon et bien voilà...
J'ai honte de moi car en recherchant de quoi résolure mon problème j'ai trouvé une solution toute prête et qui apparement conviendrais tout à fais ce que je cherchais... Je suis content car c'est un gain de temps, temps qui m'est actuellement très précieux, mais mécontent car ce n'est pas la meileure manière d'apprendre. Enfin bon, comme promit je poste la solution : Code :
|
||
|
|
00
|
|
|
#8 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Salut, ca résoud pas ton problème d'optimisation car tu mets tout le fichier en mémoire dans un array ^^.
|
|
|
00
|
|
|
#9 | ||
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Pour un fichier de 10000 lignes cela prend 10 fois plus de temps que le parcours du fichier en ne mettant que les lignes en mémoire :
Code :
|
||
|
|
00
|
|
|
#10 |
|
Nouveau Membre du Club
![]() Autodidacte Inscription : juillet 2006 Messages : 140 ![]() |
Bonjour Djakisback,
Je n'avais pas du tout comprend le script ainsi, je pensais qu'il ne se contentait que de mettre les dernières lignes en mémoire... En y regardant de plus prêtje pense avoir compris qu'il crée deux array, en en créant un avec les lignes à exclure et un avec les dernières lignes désirées, je me trompe ? Comme je débute ll est possible que je ne comprenne pas et je m'en excuse. Je te remercie pour ton code, je vais l'analyser afin de bien le comprendre avant de l'utiliser. |
|
|
00
|
|
|
#11 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
En fait non, il crée un array avec toutes les lignes du fichier et un string avec le contenu concaténé des lignes désirées.
|
|
|
00
|
|
|
#12 |
|
Nouveau Membre du Club
![]() Autodidacte Inscription : juillet 2006 Messages : 140 ![]() |
Ah d'accord, bon et bien je suis loin d'être au point...
Je ne dois pas avoir le niveau pour réaliser un tel script vu que je ne suis même pas capable de le comprendre... Mais je vais travailler encore plus dur ! Mon projet est à but lucratif (c'est pour un "client"), puis-je quand même utiliser ton script, modifié, pour le chat de ce projet s'il te plait ? Quoi qu'il en soit je te remercie. |
|
|
00
|
|
|
#13 |
|
Membre Expert
![]() Inscription : février 2005 Messages : 1 797 ![]() |
Oui, pas de problème, de toute façon je me suis fortement inspiré de la page que je t'ai donnée
|
|
|
00
|
|
|
#14 |
|
Nouveau Membre du Club
![]() Autodidacte Inscription : juillet 2006 Messages : 140 ![]() |
Et bien encore une fois je t'en remercie
Je vais devoir l'adapter à ma fonction, qui utilise XajaX, ça me permettras de travailler dessus afin de me familliariser. Bon et bien je vais de ce pas continuer ce chat et espère pouvoir un jour te rendre la pareille, même si ça risque d'être dans très très longtemps... Bon courage à toi |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com