テキスト データベースには IP が記録されます。IP が既に存在する場合は追加されません。専門家に相談してください。
ファイル 1:
$now_time=time ();//現在時刻
$ipfile="./images/ip.txt";//テキストデータ保存ファイル
$old=ファイル($ipfile);
$num=count($ old);
for ($i=0;$i<$num;$i++){
list($txtusre,$txtzzip,$) txttime)=explode("|",$old[$i] ; else{
//存在しない場合は記録します
if (get_magic_quotes_gpc()) {
if (!$fp = fopen($ipfile, "a+")) {
die(" ファイルの作成に失敗しました。権限があるか確認してください。");
}
$line = $now_time."|"。 $REMOTE_ADDR."|".$now_time."rn";
$old= file($ipfile);
$num=count($old);
$fp=fopen($ipfile, " w");
flock($fp,2);
if( $num<100){//100 レコードのみを記録します。100 レコードを超えると、最後の 100 レコードより前のレコードが削除されます
fputs($fp,$line);
for ($i=0;$i<$num; $i++){
fputs($fp,$old[$i]);
}}else{
fputs($fp,$line);
for($i=0;$ i<99;$i++){
fputs($fp,$old[$i] );
}}
fclose($fp);
}}}
?>
テキスト データ ファイル ip.txt:
1348308290|127.0 .0.1|1348308290
1348308289|127.0.0.1|1348308289
1348308275|127. 0.0.2|1348308275
レコードが 1 つしかない場合、 IPはすでにあります存在し、存在しない IP を追加し続けることができます
レコードが 2 つある場合、IP が既に存在すると判断して重複した IP を記録することは無効になります。
望ましい効果は、訪問者の IP データ ファイルが存在しない場合、エントリを追加することです。存在する場合は、追加しないでください。
専門家による修正にご協力ください。ありがとうございます。 🎜>
-----解決策----------------------------
変数 $REMOTE_ADDR の値を自分で取得する必要があります。
$now_time=time();//この行は削除できます。
------解決策------------------
PHP コード
$ip = $_SERVER['REMOTE_ADDR'];
$time = 時間();
$ipfile = "./images/ip.txt";
$s = ファイル_get_contents($ipfile);
if(strstr($s, "|$ip|")) return; //存在すれば終了
$ar = preg_split("/[rn]+/", $s);
$ar = array_slice($ar, 0, 99) //最初の 99 個の項目を取得します。
$ar[] = "$time|$ip|$time"; // 新しいデータを追加します
file_put_contents($ipfile, join(PHP_EOL, $ar)) //ファイルを書き戻す