begin process at 2012 05 30 15:02:07
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

Débutants

 > 

Lire un .txt mais gerer plusieur lignes


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Lire un .txt mais gerer plusieur lignes

lundi 18 avril 2005 à 12:46:05 | Lire un .txt mais gerer plusieur lignes

ooiimm

Salut

J'ai une gallerie dans laquelle j'ai fait un compteur de clic pour un genre de cote de popularité de chaque image.

Je sais faire fonctionner le compteur avec un fichier, mais j'ai environ 200 photos alors je voudrai faire un seul fichier qui comptabilise tous les clics de toutes les images.

Pour le moment j'utilise ces codes :
Pour lire le fichier
Affiché <b>
 <?php
$fichier = 'clic/04.txt'; // on déclare le nom du fichier à ouvrir

$taille = filesize($fichier); //donne la taille du fichier

$fp = fopen($fichier,'r'); //ouverture du fichier en lecture seule

while(!feof($fp)) //feof indiquera la fin du fichier, donc dans cette boucle, le fichier est parcouru jusqu 'à la fin
{
$ligne = fgets($fp,$taille); //lecture du fichier et stockage dans la variable ligne

print $ligne.''; //affiche la ligne à l'écran, n'oubliez pas le <br> qui est le retour à la ligne html
}
fclose($fp); //pensez à refermer à la fin du script
?> </b>fois.

Et pour écrire un clic de plus :
<?
$fichier = 'clic/'.$_GET['id'].'.txt';
$fp = file($fichier);// ici j'utilise file()cette fonction stock le contenu du fichier sous forme d'un tableau (array) dans la variable $fp
$compteur = $fp[0] + 1; // on ajoute 1 au compteur actuel
$nouveau = fopen($fichier,'w+'); //on ouvre le fichier en écriture
fwrite($nouveau,"$compteur \n"); // on écrit le nouveau numéro de compteur dans le fichier, en supprimant les anciennes données, le fichier est créé s'il n'existe pas
fclose($nouveau); //on referme le fichier
?>
Deux codes que j'ai trouvé sur le web.

Quelqu'un peux m'expliquer comment utiliser qu'un seul fichier avec 200 lignes, et pouvoir naviguer dans ce fichier pour lire les clics ?

Mes photos s'appellent Image01 Image02 etc donc il serai facile de s'y retrouver Premiere ligne > Image 1 etc etc

Merci d'avance!

[OiM]
lundi 18 avril 2005 à 13:36:59 | Re : Lire un .txt mais gerer plusieur lignes

JoJo738

Membre Club
Lu,
euh, je te conseil vivement MySQL. Sinon tu peux le faire grace à des regex.
Tu mets tous dans un fichier .txt, lignes par lignes.
Tu fais une regex du genre :
preg_replace('`(' . $numero_de_img . ') = ([0-9]+);`', '$1 = ' . $nouveau numero . ';', $fichier_entier)
Ou bien avec une regex callback. Tu fais la meme regex, sauf que la tu change un peu :
function ma_function($matche)  {
    return $matche[0] . ' = ' . ($matche[1]+1) . ';' // je ne sais plus si il faut faire 0 puis 1, ou 1 puis 2, il faut voir la doc
}
pre_replace_callback'`(' . $numero_de_img . ') = ([0-9]+);`', 'ma_fonction', $fichier_entier);


Si ma reponse te convient, merci de l'accepter !
lundi 18 avril 2005 à 13:45:32 | Re : Lire un .txt mais gerer plusieur lignes

malalam

Administrateur CodeS-SourceS
Hello,

ca ne va pas etre super pratique...une bdd serait mieux.

mais si tu y tiens...
D'abord, comme tu vas modifier n'importe quel endroit de ton fichier texte, je te conseille de separer chaque "ligne" avec un retour chariot, par exemple, ou un autre caractere.
Le mieux etant meme un truc du genre :
image0001:5;image0002:15
etc...
Ensuite tu lis ton fichier, et tu l'explode (explode() ) sur ce caractere. Ainsi tu auras chaque image et clic dans une entree d'un tableau.
genre $tab[0] = 'image0001:5';
ensuite il est facile de modifier avec un substr() ton clic. Quant a trouver la bonne ligne, c'est simple aussi : la clef 0 sera ton image 1, la clef 2 ton image 3 etc...(mais tu peux aussi cvhanger ca evidemment).

Puis tu fais un implode() de ton tableau avec le separateur choisi, et tu reecris ton fichier (completement, en l'ecrasant).

Idem pour lire, evidemment.

A mon avis, c'est une solution lourde. Une base serait bien mieux.

lundi 18 avril 2005 à 13:46:47 | Re : Lire un .txt mais gerer plusieur lignes

malalam

Administrateur CodeS-SourceS
Hello,

plus rapide le Jojo .-)

Mais une regex sur un fichier de 200 lignes, ce n'est surement pas une bonne idee... ;-)
lundi 18 avril 2005 à 14:08:37 | Re : Lire un .txt mais gerer plusieur lignes

malalam

Administrateur CodeS-SourceS
mais bon je n'en suis pas convaincu parce que la solution du tableau est lourde aussi.
lundi 18 avril 2005 à 14:51:23 | Re : Lire un .txt mais gerer plusieur lignes

JoJo738

Membre Club
Pas telement ...
Si tu fais :
<?php

$numero_de_img = '01'; // numero de l'image à modifier
$fichier = 'fichier.txt';

$data = file_get_contents($fichier); // Mieux de implode() + file()

function up_point($matche)  {
    return
$matche[1] . ' = ' . ($matche[2]+1) . ';';
}

$futur_fichier = preg_replace_callback('`(' . $numero_de_img . ') = ([0-9]+);`', 'up_point', $data);

// ou
//
// function up_point($a, $b)  {
//     return $a . ' = ' . ($b+1) . ';';
// }
//
// $futur_fichier = preg_replace('`(' . $numero_de_img . ') = ([0-9]+);`', up_point('$1', '$2'), $data);

$fp = fopen($fichier, w+);
fwrite($fp, $futur_fichier);
fcolse($fp);
?>



Si ma reponse te convient, merci de l'accepter !
lundi 18 avril 2005 à 15:20:23 | Re : Lire un .txt mais gerer plusieur lignes

malalam

Administrateur CodeS-SourceS
Cette solution est sans doute mieux oui, je suis d'accord :-)
lundi 18 avril 2005 à 18:22:08 | Re : Lire un .txt mais gerer plusieur lignes

ooiimm

Oki, merci pour tout ca devrais etre bon =)

[OiM]
lundi 18 avril 2005 à 18:35:45 | Re : Lire un .txt mais gerer plusieur lignes

Anthomicro

Salut,

lol, tu fais une ligne par image.

Ton fichier a cette forme :

imagemachin
image2machin
image3machin

Ensuite pour mettre les éléments dans un tableau tu fais ceci pour ouvrir ton fichier :

$fichier=file('fichier.txt');

echo $fichier[0]; //affiche "imagemachin"
echo $fichier[1]; //affiche "image2machin"

a +




    Cette discussion est classée dans : fichier, ligne, lire, compteur, fp


    Répondre à ce message

    Sujets en rapport avec ce message

    lire un fichier texte de la ligne 10 à 25 par ex [ par caviar ] salut ...j'ai un petit problème ...j'essaye de récupérer ligne par ligne les données d'un fichier texte mais sans utiliser  une fonctionwhile (!feof($ Compteur de visite [ par caramelle974 ] Salut,J'aurai besoin d'un coup de pouce.. Je dois réaliser une page en PHP qui affiche le nombre de visites.Mais lors de la réécriture ca ne fonctionn path relatif [ par OneHacker ] Bonjour, voici le code qui me pose problème :$host  = $_SERVER['HTTP_HOST'];$dir = dirname($_SERVER['PHP_SELF']);$fp = fopen("http://$host$dir/../Comp Lire un fichier txt ligne par ligne en php [ par stefane26 ] BonjourJe possède une station météo automatique connectée à un PC qui enregistre les données toutes les minutes.Un logiciel traite ces données et enre copier les lignes d'un fichier dans un autre fichier ! [ par zabou31 ] Bonjour, je voudrais realiser un code qui prends les données dans un fichier texte pour les reinplanter dans un autre fichier texte. Je pense que sa n appeler une fonction php "compteur.php" [ par bshaka ] Bonjour à tous,Je suis débutant, je cherche à afficher le résultat de ce code ($nbvisites) dans ma page html, ce code se trouve dans le fichier "compt Problème de lecture d'un fichier [ par NicoIRIS ] Bonjour, Je souhaiterai lire un fichier de configuration (toto.cfg) écrit en XML. En ligne de commandes je l'ouvre sans problème et je visualise bien Je précise ma question: [ par lelougarou ] Bonjour,Pourriez-vous me dire si vous connaisez une méthode pour lire un fichier HTML sur un serveur quelconque, en retenir une partie (de telle ligne ecriture dans fichier [ par Malabarix ] Bonjour tout le monde!Voila, je fais un programme qui doit générer des pages html via une page type sauf qu'il doit changer certains titres et autres Lire fichier texte une ligne sur deux [ par gilou33 ] Bonjour,je dois afficher la liste des membres connéctés sur mon chat. Comment faire pour lire un fichier texte une ligne sur deux car mon fichier text


    Nos sponsors


    Sondage...

    CalendriCode

    Mai 2012
    LMMJVSD
     123456
    78910111213
    14151617181920
    21222324252627
    28293031   

    Consulter la suite du CalendriCode

    A découvrir



     
    Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
    CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
    CodeS-SourceS.com© est une marque déposée tous droits réservés

    Google Coop CodeS-SourceS Google Coop CodeS-SourceS
    Temps d'éxécution de la page : 0,390 sec (4)

    Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales