2017-04-18 28 views
0

私は、訪問者のIPアドレス、ポート、日付、ブラウザ名をtxtファイルに記録できるPHPコードを作成しました。しかし、最新の訪問者の詳細は一番上には表示されません。だから毎回私はユーザーの詳細を見るために多くをスクロールする必要があります。 log.txtファイルの上部に訪問者の詳細を表示する方法はありますか?毎回スクロールする必要はありませんか?ウェブサイト訪問者の詳細

<?php 
    $protocol = $_SERVER['SERVER_PROTOCOL']; 
    $ip = $_SERVER['REMOTE_ADDR']; 
    $port = $_SERVER['REMOTE_PORT']; 
    $agent = $_SERVER['HTTP_USER_AGENT']; 
    $ref = $_SERVER['HTTP_REFERER']; 
    $hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']); 
    $dateTime = date('Y/m/d G:i:s'); 

    $fh = fopen('log.txt', 'a'); 
    fwrite($fh, 'IP Address: '."".$ip ."\n"); 
    fwrite($fh, 'Hostname: '."".$hostname ."\n"); 
    fwrite($fh, 'Port Number: '."".$port ."\n"); 
    fwrite($fh, 'User Agent: '."".$agent ."\n"); 
    fwrite($fh, 'HTTP Referer: '."".$ref ."\n"); 
    fwrite($fh, 'Date: '."".$dateTime ."\n\n"); 
    fclose($fh); 
    ?> 
+0

'$ _SERVER ['HTTP_REFERER']'はそれに依存しません。 –

+0

dbはスマートになりますが、Googleアナリティクスはより良いデータを提供します。あなたがログに記録したものはアクセスログから削除することはできません。 – nogad

答えて

3

ここで重要なのは、fopen機能上の2番目のパラメータは次のとおりです。ここでは、完全なPHPコードです。あなたが使用しているhttp://php.net/manual/en/function.fopen.php

ルック:

$fh = fopen('log.txt', 'a'); 

を意味..

オープンだけ書き込むため、ファイルポインタをファイルの最後に置きます。ファイルが存在しない場合は、作成してください。このモードでは、fseek()は効果がなく、書き込みは常に追加されます。

任意のオプションを選択できます。

たとえば、R +の意味:読み書き用

開きます。ファイルポインタをファイルの先頭に置きます。

これが役に立ちます。

0

次のことが可能です。

  1. $toFile = IP; $toFile .= file_get_contents('log.txt'); file_put_contents('log.txt', $toFile);
  2. あなたが変数にファイルの内容全体をロードしたくない場合は、PHPのStreams機能を使用することができます

関連する問題