存储 PHP HTML 函数 Color
<?php// 访客计数器函数function counter() { !empty($_GET['weburl']) || die('weburl不能为空'); $weburl = $_GET['weburl']; $file = '/usr/local/apache/htdocs/MyTests/counter.txt'; if (! file_exists($file)) { $num = 1; $cf = fopen($file, 'w'); fwrite($cf, $weburl.' '.$num); fclose($cf); } else { $cf = fopen($file, 'rw'); $num = fgets($cf); $num = substr($num, 15); fclose($cf); ++$num; $cf = fopen($file, 'w'); fwrite($cf, $num); fclose($cf); }}?>访客计数器 欢迎访问
您是第<?php //echo counter() ?>位访客
我想实现一个输入不同的IP地址并提交后,在“您是第...位访客”中显示相应IP访问了多少次。。。我用一个TXT文件存储IP地址与浏览次数,格式如下:
例:
192.168.0.22 5
192.168.5.44 10
......
这个程序应该如何修改?
回复讨论(解决方案)
<?php// 访客计数器函数function counter() { !empty($_GET['weburl']) || die('weburl不能为空'); $weburl = trim($_GET['weburl']); $pattern = "/((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)/"; //对录入的ip格式进行判断 if(! preg_match($pattern,$weburl)) die('IP地址格式不正确;'); //使ip长度固定 $arr = explode('.',$weburl); for($i=0;$i<4;$i++){ $arr[$i] = str_pad($arr[$i],3,' ',STR_PAD_LEFT); } $weburl = join('.',$arr); $file = 'counter.txt'; if (! file_exists($file)) { $num = 1; $cf = fopen($file, 'w'); fwrite($cf, $weburl.'-'.$num); fclose($cf); return $num; } else { $cf = fopen($file, 'r+'); while(!feof ($cf)){ $str1 = fgets($cf); $str2 = substr($str1,0,strpos($str1,'-')); if($weburl == $str2){ $len = strlen($str1); $num = (int) trim(substr($str1,strpos($str1,'-')+1)); $num++; $str1 = $weburl.'-'.$num; //如果存在则把指针返回到该行前,覆盖写入内容,实现修改 fseek($cf,-$len,SEEK_CUR); fwrite($cf,$str1); fseek($cf,$len,SEEK_CUR); fclose($cf); return $num; } } //未找到则在末尾换行增加一行记录 fwrite($cf, "\r\n".$weburl.'-1'); return 1; }}?>访客计数器 欢迎访问
您是第<?php echo counter(); ?>位访客
<?php// 访客计数器函数function counter() { !empty($_GET['weburl']) || die('weburl不能为空'); $weburl = trim($_GET['weburl']); $pattern = "/((25[0-5]|2[0-4]\d|1?\d?\d)\.){3}(25[0-5]|2[0-4]\d|1?\d?\d)/"; //对录入的ip格式进行判断 if(! preg_match($pattern,$weburl)) die('IP地址格式不正确;'); //使ip长度固定 $arr = explode('.',$weburl); for($i=0;$i<4;$i++){ $arr[$i] = str_pad($arr[$i],3,' ',STR_PAD_LEFT); } $weburl = join('.',$arr); $file = 'counter.txt'; if (! file_exists($file)) { $num = 1; $cf = fopen($file, 'w'); fwrite($cf, $weburl.'-'.$num); fclose($cf); return $num; } else { $cf = fopen($file, 'r+'); while(!feof ($cf)){ $str1 = fgets($cf); $str2 = substr($str1,0,strpos($str1,'-')); if($weburl == $str2){ $len = strlen($str1); $num = (int) trim(substr($str1,strpos($str1,'-')+1)); $num++; $str1 = $weburl.'-'.$num; //如果存在则把指针返回到该行前,覆盖写入内容,实现修改 fseek($cf,-$len,SEEK_CUR); fwrite($cf,$str1); fseek($cf,$len,SEEK_CUR); fclose($cf); return $num; } } //未找到则在末尾换行增加一行记录 fwrite($cf, "\r\n".$weburl.'-1'); return 1; }}?>访客计数器 欢迎访问
您是第<?php echo counter(); ?>位访客
多谢