Rintracciare i vostri ospiti, usando PHP

| by Dennis Pallett | November 14, 2004
Il y a beaucoup de différents outils d'analyse de trafic, s'étendant des compteurs simples pour accomplir des analyseurs du trafic. Bien qu'il y ait quelque libre, la plupart d'entre eux vient avec une étiquette des prix. Pourquoi pas il vous-même ? Avec PHP, vous pouvez facilement créer un dossier de notation dans des minutes. En cet article je vous montrerai comment !

Obtenir l'information

La partie la plus importante obtient l'information de votre visiteur. Avec reconnaissance, il est extrêmement facile faire ce dans PHP (ou toute autre langue scripting pour cette matière). PHP a un $_SERVER appelé variable global spécial qui contient plusieurs variables d'environnement, y compris des informations sur votre visiteur. Pour obtenir toute information que vous voulez, employer simplement le code suivant : /obtenant information$ipaddress = $_SERVER [« REMOTE_ADDR »] ; $page = « http:// {$_SERVER [« HTTP_HOST »]} {$_SERVER [« PHP_SELF »]} » ; $page. = iif (! vider ($_SERVER [« QUERY_STRING »]), » ? {$_SERVER [« QUERY_STRING »]} », "") ; $referrer = $_SERVER [« HTTP_REFERER »] ; $datetime = mktime () ; $useragent = $_SERVER [« HTTP_USER_AGENT »] ; $remotehost = @getHostByAddr ($ipaddress) ;

Comme vous pouvez voir la majorité d'information vient de la variable de $_SERVER. Le mktime () (http://nl2.php.net/mktime) et getHostByAddr () (des fonctions de http://nl2.php.net/manual/en/function.gethostbyaddr.php) sont employées pour obtenir des informations additionnelles sur le visiteur.

Note : J'ai employé une fonction dans l'exemple ci-dessus appelé l'iif (). Vous pouvez obtenir cette fonction chez http://www.phpit.net/code/iif-function.

Notation de l'information

Maintenant que vous avez toute information que vous avez besoin, il doit écrire à un dossier de notation ainsi vous pouvez plus tard le regarder, et créez les graphiques et les diagrammes utiles. Pour faire ceci vous avez besoin de la fonction simple de quelques PHP, comme fopen (http://www.php.net/fopen) et fwrite (http://www.php.net/fwrite).

Ci-dessous le code créera d'abord une ligne complète hors de toute information. Alors il ouvrira le dossier de notation dans « apposent » le mode, et s'il n'existe pas encore, le créent.

Si erreur ne s'est pas produite, il écrira le nouveau logline au dossier de notation, au fond, et ferme finalement le dossier de notation encore./crée la notation line$logline = $ipaddress. ''. $referrer. ''. $datetime. ''. $useragent. ''. $remotehost. ''. $page. «  n » ; /écrire à la notation file:$logfile = « /some/path/to/your/logfile.txt » ; /ouvrir le dossier de notation dans « apposent » le modeif (! $handle = fopen ($logfile, « a+ »)) {matrice (« n'ouvre pas le dossier de notation ») ;}/écrire $logline à notre logfile.if === (de fwrite ($handle, $logline) FAUX) {la matrice (« n'écrit pas au dossier de notation ») ;} fclose ($handle) ;

Maintenant vous avez entièrement un module de notation de fonction. Pour commencer à dépister des visiteurs sur votre site Web simplement pour inclure le module de notation dans vos pages avec l'inclure () fonctionner (http://www.php.net/include):include (« log.php ») ;

Ok, maintenant je veux regarder mon dossier de notation

Après un moment vous voudrez probablement regarder votre dossier de notation. Vous pouvez facilement faire ainsi en employant simplement un éditeur de texte standard (comme le bloc-notes sur Windows) pour ouvrir le dossier de notation, mais c'est loin de désiré, parce qu'il est dans dur-à-a lu le format.

Employons PHP pour produire des vues d'ensemble utiles pour est. La première chose qui doit être faite est obtiennent le contenu à partir du dossier de notation dans un variable, comme ainsi : /notation ouverte file$logfile = « /some/path/to/your/logfile.txt » ; si (file_exists ($logfile)) {$handle = fopen ($logfile, « r ») ; $log = fread ($handle, filesize ($logfile)); fclose ($handle) ;} autrement {matrice (« le dossier de notation n'existe pas !  ») ;}

Maintenant que le dossier de notation est dans une variable, il est le meilleur si chaque logline est dans une variable séparée. Nous pouvons faire ceci qui emploie la fonction d'éclater () (http://www.php.net/explode), comme ainsi : /Seperate chaque logline$log = éclatent («  n », équilibre ($log)); Ensuite qu'il peut être utile d'obtenir chaque partie de chaque logline dans une variable séparée. Ceci peut être fait en faisant une boucle par chaque logline, et en utilisant éclater encore : /Seperate chaque partie dans chaque loglinefor ($i = 0 ; $i < count="">

Maintenant le dossier de notation complet a été analysé, et nous sommes prêts à commencer à produire d'une certaine substance intéressante.

La première chose il est très facile faire qu'obtient le nombre de pageviews. Employer simplement le compte () (http://www.phpit.net/count) sur la rangée de $log, et là vous l'avez ; compte d'écho ($log). les « gens ont visité ce site Web.  » ;

Vous pouvez également produire d'une vue d'ensemble complète de votre dossier de notation, en utilisant une boucle simple et des tables de foreach. Par exemple : /exposition une table du logfileecho « <table> » ; écho « IP address </th> de <th> » ; écho « <th>Referrer</th> » ; écho « <th>Date</th> » ; écho « <th>Useragent</th> » ; écho « <th>Remote Host</th> » ; foreach ($log comme $logline) {écho « <tr> » ; écho « <td> ». $logline [« 0 »]. « </td> » ; écho « <td> ». urldecode ($logline [« 1 »]). « </td> » ; écho « <td> ». date (« d/m/Y », $logline [« 2 »]). « </td> » ; écho « <td> ». $logline [« 3 »]. « </td> » ; écho « <td> ». $logline [« 4 »]. « </td> » ; écho « </tr> » ;}écho « </table> » ;

Vous pouvez également employer des fonctions faites sur commande pour filtrer dehors des moteurs et des chenilles de recherche. Ou créer les graphiques en utilisant des diagrammes de PHP/SWF (http://www.maani.us/charts/index.php). Les possibilités sont sans fin, et vous pouvez faire tout sortes de choses !

En conclusion…

En cet article je vous ai montré que doivent créer un module de notation pour votre propre site Web de PHP, pas en utilisant rien davantage que PHP et ses fonctions intégrées. Regarder le dossier de notation que vous devez l'analyser employant PHP, et le montrent alors dans quelque manière vous aimiez. Il l'appartient toi pour créer un analyseur du trafic de donner un coup de pied-âne.

Si vous préférez toujours employer un analyseur pré-construit du trafic, aller voir http://www.hotscripts.com.

Article Source: http://www.articleset.com



About the Author

Dennis Pallett is a young tech writer, with much experience in ASP, PHP and other web technologies. He enjoys writing, and has written several articles and tutorials. To find more of his work, look at his websites at http://www.phpit.net, http://www.aspit.net and http://www.ezfaqs.com. » Read more articles by Dennis Pallett
You are welcome to publish or reprint this article free of charge, provided: