PHP Webページカウンタの原理

WBOY
リリース: 2016-06-21 08:58:25
オリジナル
1039 人が閲覧しました

カウンター|ウェブページ

訪問者カウンターは、Web 訪問者に Web ページまたは Web サイトの人気指数を知らせる最も直接的な方法です。特にウェブページからお金を稼ぎたい人にとって、訪問者数は広告主を見つけるための最良の根拠となります。もちろん、Webサイトの訪問者数を統計レポートに書き込むこともできますが、結局は直接見るのが一番だと常々思っています。


上図において、訪問者カウンターの流れは以下の通りです。

1.. 最初のユーザーがあるページを閲覧します。
2.. サーバー プログラムは、ページが閲覧された回数をデータベースまたはファイルから読み取ります。
3.. カウントに 1 を加えた値を保存し、最初のユーザーに送り返します。
4.. 2 番目のユーザーがページを表示します。
5.. サーバー プログラムは、ページが閲覧された回数をデータベースまたはファイルから読み取ります。
6.. カウントを 1 つずつ保存し、2 番目のユーザーに送り返します。
PHP には特別な訪問者カウンター関数はありませんが、PHP の強力な機能を使用して訪問者カウンター関数を自分で作成することができます。

次の関数は、訪問者カウンターのプロトタイプであり、David W. Bettis によって提供され、作者によってわずかに変更されました。




🎜>/*
php3 用の単純なアクセスカウンター
(c)1998 David W. Bettis
dbettis@eyeintegrated.com
Wilson Peng によるメディファイ
* /

$counterFile = "/tmp/counter.txt";

function displayCounter($counterFile) {
$fp = fopen($counterFile,"rw"); $num = fgets($fp,5);
$num += 1;
print "あなたは "."num"." 退屈な人です"; counterFile");
exec( "echo $num > $counterFile");
}

if (!file_exists($counterFile)) {
exec( "echo 0 > $counterFile");
}

displayCounter($counterFile);

?>




Copyright ? 1998 David W. Bettis

このページを読むとき、PHP プログラムは最初に /tmp/counter.txt ファイルが存在するかどうかを確認し、存在しない場合はカウンターを作成します。 .txt ファイルを作成し、そのファイルに 0 を書き込みます。次に、プレーン テキスト ファイルである counter.txt ファイルの内容を読み取り、テキスト内の数値を $num 変数に格納します。 $num 変数がブラウザに表示される前に、ユーザーが値を増やすことができるように変数を追加するアクションがあります。もちろん、やりすぎた場合は、1つ追加するときに2つまたは3つ追加するだけですが、自分を誤魔化しても無駄です。最後に、訪問者数を /tmp/counter.txt
に保存し直せば問題ありません。

もちろん、このように全ページに書くのは非常に面倒です。現時点では、PHP が提供する require() 関数を使用してカウンタを関数にまとめることができ、より使いやすくなります。

まず、Apache 設定ファイル (httpd.conf) を PHP インクルード ファイルのパスに追加します。たとえば、すべてのインクルード ファイルが http://abcdefghijk.com.tw/include に配置されるように設定する場合は、次の例を httpd.conf

php3_include_path .:./include: に追加できます。 ./include

新しいインクルード パスを有効にするために、Apache サーバーを再起動することを忘れないでください。

./apachectl restart

次に、次のファイルをサーバーの.../include ディレクトリに配置し、ファイル名を
counter.inc

として保存します。以下は MyCounter() 関数です。読者が理解しやすいように、プログラム内の変数
$counterFile、$fp、$num は、David W. Bettis によって設定されたカウンター内の変数と同じ機能を維持しています。


file://--------------------------
/ / 訪問者カウンター関数 MyCounter()
// 著者: Wilson Peng
// Copyright (C) 1999
file://--------------- -- ----------
function MyCounter() {
$counterFile="/tmp".$GLOBALS["PHP_SELF"];
if (!file_exists($counterFile) ) {
if (!file_exists(dirname($counterFile))) {
mkdir(dirname($counterFile), 0700)
}
exec("echo 0 > $counterFile") ; 🎜>}
$fp = fopen($counterFile,"rw");
$num = fgets($fp,5);
$num += 1; ;
echo $counterFile;
exec("rm -rf $counterFile");
; >

著作権 ? 1999, Wilson Peng

もちろん、使用したい場合は、MyCounter() 関数をホームページに埋め込む必要があります。


require("counter.inc")
?>
title>/title>

あなたは MyCounter()<



著作権 1999、Wilson Peng

この MyCounter() 関数を使用するには、まず、ホームページの先頭に require() 関数を追加し、ホームページの一部となる MyCounter() 関数を導入します。次に、カウンターが必要な場所に
function MyCounter() {
:
:

}
関数を作成するときは、上記の形式を使用する必要があります。カスタム関数名の前に関数文字列を追加します。

MyCounter() を使用するすべてのホームページは、/tmp の後にページのパスを追加します。これは、$PHP_SELF 変数を使用して実現できます。

$counterFile="/tmp".$GLOBALS["PHP_SELF"];

もちろん、/tmp を別のディレクトリに変更することもできます。それ以外の場合は待ちます。 SUN サーバーの場合、再起動すると /tmp 内のすべてが失われるため、再度カウントを開始する必要があります。どのディレクトリを使用すればよいかわからない場合は、/var/log/counter ディレクトリを使用し、他のログや他の変更データと一緒に置くことをお勧めします。

if (!file_exists($counterFile)) {
if (!file_exists(dirname($counterFile))) {
mkdir(dirname($counterFile),
}
exec("echo 0 > $counterFile");
}

これらの 5 行は主に $counterFile が存在するかどうかを確認するためのもので、ファイルが存在しない場合はディレクトリが存在するかどうかを確認します。ディレクトリを作成するかどうかを決定します。次にファイルを作成し、0を書き込みます。

$fp = fopen($counterFile,"rw");
$num = fgets($fp,5);
$num += 1; ;
echo $counterFile;

これらの 5 行は、カウンターに保存されているファイルを開き、蓄積された結果をブラウザーに送信します。

exec("rm -rf $counterFile");
exec("echo $num > $counterFile");

最後にカウンター ファイルを削除し、新しいカウンター ファイルを作成します。これで、このファイルベースのプレーンテキストカウンターが完成しました。



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