Précédent   Forum des professionnels en informatique > PHP > Langage > Fichiers
Fichiers Forum d'entraide sur les fichiers avec PHP. Avant de poster -> FAQ fichiers et Sources fichiers
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 26/04/2007, 06h07   #1
Invité de passage
 
Inscription : avril 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 7
Points : 0
Points : 0
Par défaut Ecrire à un endroit précis d'un fichier texte

Slt les développeurs!

Voila jsui pas du tout calé niveau php, donc j'en appelle à vous!

Voici le blem:

J'ai une page HTML sur laquelle figure 3 liens, google, yahoo et msn (par exemple). Je voudrais savoir combien de fois chaque lien a été cliqué. Et mettre le tout dans un fichier txt.

Et pour faire les choses simplement (histoire de garder une liste des 3 sites répertoriés+leurs nombres de clics dans une seul petit fichier txt), j'ai eu l'idée (ché pa si elle est bonne) de rédiger un fichier texte (listesites_et_clics.txt) contenant à chaque ligne, le nom de chaque site.
Le fichier texte sera alors de ce type:
www.google.fr
www.yahoo.fr
www.msn.fr

et c'est la que le php intervient: dans le fichier txt, à coté de chaque site, je voudrais inscrire et incrémenter au fur et à mesure le nb de clics auxquels chaque site correspond.


Concrètement, si il y a 10 internautes qui clic sur google, 5 sur yahoo et 2 sur msn, le script php inscrira et incrémentera les valeurs au bon endroit, ce qui donnera dans le fichier txt:
www.google.fr 10
www.yahoo.fr 5
www.msn.fr 2

C un peu dur a expliquer, mais j'espère que vous avez compris...

La difficulté pour moi, c'est que pour faire ceci (si c'est possible), il faut savoir écrire (et incrémenter) à un endroit précis du fichier txt, c'est à dire juste en face du site sur lequel l'internaute à cliqué.

ouf!

Au fait si vous connaissez une autre méthode pour obtenir le même résultat, n'hésitez pas à m'en faire part!

Merci de votre aide!
sisco97 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 10h26   #2
Membre chevronné
 
Inscription : janvier 2006
Messages : 918
Détails du profil
Informations forums :
Inscription : janvier 2006
Messages : 918
Points : 735
Points : 735
Je ne sais pas comment faire avec ta méthode, mais puisque tu es intéressé, je te propose de stocker ton nombre de clicks dans une base de données.
Avantages : plus facile d'y écrire, plus facile d'y lire
Inconvénient : besoin d'une base (évidemment), le fichier n'est pas lisible directement comme un .txt
guidav est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 14h19   #3
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
Code du fichier clicks.php (a la création, il s'étoffera plus tard)
Code :
1
2
3
4
5
<?php
 
$clicks = array();
 
?>
A mettre en haut de ton fichier
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
$filename = 'clicks.php';
 
include($filename);
 
function ajouter_click($site)
{
    global $clicks;
 
    if( exists($clicks[$site]) )
        $clicks[$site]++;
    else
        $clicks[$site] = 1;
}
 
function sauvegarder_clicks()
{
    global $filename;
 
    ob_start();
    echo("<?php\n\n");
    echo('$clicks = ');
    var_export($clicks);
    echo(";\n\n?>");
    $code = ob_get_clean();
    file_put_contents($filename, $code);
}
Apres, tu appel ajouter_click(nomDuSite);
Et tu fini toujours par sauvegarder_clicks();
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/04/2007, 17h56   #4
Invité de passage
 
Inscription : avril 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 7
Points : 0
Points : 0
Merci pour les réponses!

Mais je voudrais savoir où je dois mettre (appeler) la fonction ajouter_click(nomdusite) et sauvegarder_clicks.

Et aparement cette méthode n'utilise pas de fichier txt ,non?

Est ce que le code que tu m'as donné est bon tel quel ou je doi faire quelques modifs? je l'ai testé, mais il ne retourne rien, j'ai du loupé un truc...

Si vous avez d'autres méthodes je sui preneur! avc un minimum dexplications quand même! jdébute!lol

Merci!
sisco97 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 09h38   #5
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
Le principe est d'enregistrer dans un fichier php sous la forme d'un tableau. Ainsi, tu pourras facilement ajouter supprimer à nimporte quelle ligne et ce très rapidement.

Donc tout dabord tu cré le fichier (pour la premiere utilisation) avec un fichier php contenant un tableau vide.

Ensuite, tu inclus ce fichier. le tableau se retrouve alors dans la liste de tes variables.

La fonction ajouter_click va récuperer ce tableau (global $clicks) et ajouter 1 click au site que tu lui donne en parametres. Si le site n'est pas dans la tableau, la fonction ajoute une ligne avec le site et met 1 en nombre de clicks.

la fonction sauvegarder_clicks va creer un tampon d'écriture (pour te détailler tout le code). Dans ce tampon, j'affiche plein de chose (echo, var_export) mais rien ne sortira vers ton écran (étrange hein ?! mais c'est voulu ^^). A la fin, je récupere ce que j'ai affiché (a savoir du texte qui correspond à du code php) et je l'enregistre dans le meme fichier que tu as chargé au début. Ainsi, les clicks sont sauvegardés.

Donc au début tu ajoute le nom du fichier de clicks (que je t'ai donné). Tu l'inseres, tu défini les fonctions. Apres, à chaque fois que tu veux, tu fais un ajouter_click($nom_du_site); et tout à la fin de ta page, tu fait un sauvegarder_clicks();

Besoin de plus d'infos ? ^^
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 17h48   #6
Invité de passage
 
Inscription : avril 2007
Messages : 7
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 7
Points : 0
Points : 0
hmmm...ok ok...

Donc en résumé, j'ai un lien google.fr, par quelle balise je doit l'encadrer pour que le script s'exécute? et que le tableau soit incrémenter d'un clic?

Thanx!
sisco97 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/04/2007, 19h44   #7
Membre chevronné
 
Avatar de Korko Fain
 
Étudiant
Inscription : août 2005
Messages : 632
Détails du profil
Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : août 2005
Messages : 632
Points : 632
Points : 632
ajouter_click('google.fr'); ^^
Korko Fain est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 01h58.


 
 
 
 
Partenaires

Hébergement Web