さまざまな IP アドレスのビュー数の統計を実装する方法

WBOY
リリース: 2016-06-23 14:18:45
オリジナル
1258 人が閲覧しました

Store 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);	}}?><html>	<head>		<title>访客计数器</title>	</head>	<body>		<center>			<h1>欢迎访问</h1><br />			<form action="counter()" name="url-form" method="get">				<div>					<input type="text" name="weburl" size="15" />					 					<input type="submit" name="Submit" value="提交" />				</div>			</form>			<hr />			<font size="7" color="red">				您是第<?php //echo counter() ?>位访客			</font>		</center>	</body></html>
ログイン後にコピー





異なるIPアドレスを入力して送信すると、該当IPアドレスへの訪問回数が「You are the.. . 番目の訪問者」。 。 。 IP アドレスとビュー数を保存するために TXT ファイルを使用します。形式は次のとおりです。
例:
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;	}}?><html>	<head>		<title>访客计数器</title>	</head>	<body>		<center>			<h1>欢迎访问</h1><br />			<form action="" name="url-form" method="get">				<div>					<input type="text" name="weburl" size="15" />					 					<input type="submit" name="Submit" value="提交" />				</div>			</form>			<hr />			<font size="7" color="red">				您是第<?php echo counter(); ?>位访客			</font>		</center>	</body></html>
ログイン後にコピー
ログイン後にコピー

<?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;	}}?><html>	<head>		<title>访客计数器</title>	</head>	<body>		<center>			<h1>欢迎访问</h1><br />			<form action="" name="url-form" method="get">				<div>					<input type="text" name="weburl" size="15" />					 					<input type="submit" name="Submit" value="提交" />				</div>			</form>			<hr />			<font size="7" color="red">				您是第<?php echo counter(); ?>位访客			</font>		</center>	</body></html>
ログイン後にコピー
ログイン後にコピー


ありがとうございます
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート