ホームページ php教程 php手册 PHP のチュートリアルの例 8。

PHP のチュートリアルの例 8。

Jun 21, 2016 am 09:08 AM
counter int php quot str

チュートリアル|アプリケーション例

PHP で独自のカウンターをカスタマイズします
カウンターは、Web 訪問者に Web ページまたは Web サイトの人気指数を知らせる最も直接的な方法であると同時に、訪問者数は広告主への宣伝の最良の基準でもあります。多くの Web サイトでは無料のカウンターが提供されていますが、結局のところ、それらは自分で作成したものではなく、自分の特性を反映することはできません。以下では、PHP 環境でのカウンターの生成プロセスについて詳しく説明します。

訪問者カウンターのプロセスは次のとおりです:

最初のユーザーは特定のページを閲覧します。

サーバープログラムは、ページが閲覧された回数をデータベースまたはファイルから読み取ります。

番号を 1 つずつ保存して、最初のユーザーに送り返します。

次のユーザーがページを表示します。

サーバープログラムは、ページが閲覧された回数をデータベースまたはファイルから読み取ります。

カウントを 1 つずつ保存し、次のユーザーに送り返します。

PHP には直接のカウンター関数はありませんが、その強力な関数を使用すると、自分で簡単にカウンターを作成できます。カウンタの実装は 2 つの段階に分かれています。1 つはカウントを実現する段階、もう 1 つは数値の表示を実現する段階です。カウントを実装するには 2 つの方法があります。1 つはファイルベースのカウントで、もう 1 つはデータベースベースのカウントです。数値の表示方法も 2 つあり、1 つは通常のテキスト表示、もう 1 つはグラフィック表示です。以下、この4つの状況を一つずつ紹介していきます

1. カウンティングの実現

1.ファイルベースのカウント

原則: Web ページにアクセスしたときに、以前の訪問者数をテキスト ファイルに記録し、ファイルを開いて以前の訪問者数を読み取り、1 を追加して最新の訪問者数を取得し、さらに追加します。最新の訪問数は、訪問者数を記録するファイルに書き戻されます。
実装;


$counterFile = "counter.txt";
if (!file_exists($counterFile)) {
//ファイルが存在するか判定
$fp = fopen($counterFile, "w " );
fputs($fp, "0");
fclose($fp);
}
//ファイルを読み取る
$n=10;
$fp = fopen($counterFile, "r");
$ str1 = fgets($fp,$n);
$str1++;
fclose($fp);
//ファイルを書き戻す
$fp = fopen($counterFile, "w");
fputs($fp, $str1 ) ;
fclose($fp);

?>


プログラムの説明: このページを参照すると、PHP プログラムはまず counter.txt ファイルが存在するかどうかを検索し、存在しない場合はカウンターを作成します。 .txt ファイルを作成し、ファイルに 0 を書き込みます。次に、counter.txt ファイルの内容を読み取り、読み取った数値に 1 を加えて、ファイルに書き戻します。

2. データベースベースのカウント

原則: Web ページにアクセスしたときに、データベースから以前の訪問者数を読み取り、1 を加算して最新の訪問者数を取得します。最新の訪問者数を追加します。アクセス数がデータベースに書き戻されます。

実装: データベースが XinXiKu という名前の MySQL データベースであると仮定します。まず、テーブル フィールドに、訪問者数を記録するフィールド カウンターが 1 つだけあります。


//データを接続します
$db=mysql_connect("localhost","root","");
mysql_select_db("XinXiKu",$db);
//訪問者数を更新します
$result =mysql_query("update count set counter=counter+1",$db);

?>


プログラムの説明: 訪問者がこのページを参照すると、まずデータベースに接続し、元の値を使用します。 count フィールド 値に 1 を加算して更新操作を実行し、アクセス数を増やします。

2. カウントの表示

1. 通常のテキストモードでの表示

この表示方法は非常に簡単で、カウントを表示する必要がある場所に直接出力するだけです。上記の例をそれぞれ説明します:

ファイルのカウントに基づいて、変数 str1 の内容を直接出力するだけです。
データベース数に基づいて、最初にデータベースから読み取り、次に出力します。


//データベースをクエリします
$sql="select * from count";
$result=mysql_query($sql,$db);
//レコードセットを取得します
$record=mysql_fetch_array( $result );
//訪問者数を取得します
$str1=$record["counter"];
echo $str1;

?>


同様に、 出力数値が変更されます。テキスト表示の利点は、ダウンロード時間が短縮され、閲覧速度が速いことです。欠点は、表示方法が十分に活発ではないことです。

2. グラフィック表示

原則: 読み込んだアクセスデータを標準形式に整形し、PHP が提供する画像処理機能を使用して数値を画像形式に出力します。このようにして、数値の表示形式を自由に制御でき、数値の特性を忠実に反映できます。

実装:

Header("Content-type: image/gif");
//出力を画像タイプとして定義します
$n=10;
//変数 $n は表示数です数字

/ /上記のメソッドで訪問者数を取得し、変数$str1に代入します(プログラムは省略します)
$str1=訪問者数の値を取得
$str2 = "";
/ / $n 桁が足りない場合は、前に 0 を追加します
$len1 = strlen($str1);
for ($i=1;$i<=$n;$i++) {
$str2 = "0".$str2;
};
//$n ビットを取得 0
$len2 = strlen($str2);
//訪問者の桁数を計算します
$dif = $len2 - $len1;
$rest = substr($str2, 0, $dif);
$string = $rest.$str1;
//数値桁数 if $n 桁が足りない場合は、前に 0 を追加します
for ($i=0;$i<=$n-1;$i++) {
$str[$i]=substr($string, $i,1);
};
//各桁を配列に格納
$font = 4;
//フォントサイズを定義
$im = imagecreate($n*11-1,16);
//新しい画像を作成します
$black = ImageColorAllocate( $im, 0,0,0);
$white = ImageColorAllocate($im, 255,255,255);
//色を定義します
imagefill($im, 0,0,$black );
//カウンターの背景色を黒に設定します
ImageString($im,$font,1,0,$str[0],$white);
for ($i=1;$i<=$ n-1;$i++) {
imageline($im, $i*11-1,0,$i*11-1,16, $white);
ImageString($im,$font,$i*11+ 1,0,$str[$i],$white);
};
//画像に各ビットを書き込み、縦線で区切る
ImageGif($im);
//画像出力
ImageDestroy($im );
//画像を削除します
? >


出力グラフィックは図に示すとおりです:


関数の説明:

imagecreate(int x_size, int y_size): 完全に空のグラフィックを作成します。パラメータ x_size と y_size はグラフィックのサイズ (ピクセル単位) です。

imagecolorallocate(int im, int red, int green, int blue): 他の描画関数で使用するグラフィックの色を一致させるために使用されます。パラメータ im はグラフィックのハンドルを表します。パラメータの赤、緑、青は三原色であり、その値の範囲は 0 ~ 255 です。

imagefill(int im, int x, int y, intcol): 画像の座標 (x, y) が位置する領域に色を付けます。パラメータcolは、ペイントされる色を表します。

imagestring(int im, int font, int x, int y, string s, intcol): 画像上に水平方向の文字列を描画します。パラメータ font はフォントであり、1 ~ 5 に設定するとデフォルトのフォントを使用することを意味します。パラメータ x と y は、文字列の開始点の座標です。文字列の内容はパラメータに配置されます。パラメータcolは文字列の色を表します。

imageline(int im, int x1, int y1, int x2, int y2, intcol): グラフ上に実線を描きます。グラフの左上隅を原点 (0,0) として、x1、y1 から x2、y2 に接続します。パラメータcolは実線の色です。

imagegif(int im, string [filename]): GIF 形式のグラフィックを作成します。パラメータ im は、ImageCreate() を使用して作成された画像コードです。

imagedestroy(int im): 画像ハンドルを分解し、メモリ空間に解放します。

3. 結論

1. 上記のコードがファイルヘッダーに直接配置されている場合、誰かがそのページにアクセスしている限り、Web サイトの他のページからこのページにジャンプしているかどうかにかかわらず、カウント値は1 ずつ増加すると、ホームページのカウントの信頼性が失われます。この問題を解決するには、非常に簡単な方法が 2 つあります。


a. リンク上のパラメーター フラグをページに渡します (例:index.php?flag=1)。カウントする前に、まずフラグ変数に値が割り当てられているかどうかを確認します。割り当てられていない場合は、カウンターが増加します。 1までに。それ以外の場合は追加しないでください。

if(empty($flag)){
$counter+=1;
}

b. カウントする前に、フラグに値が割り当てられているかどうかを確認します。割り当てられていない場合は、カウントが行われます。 1 をインクリメントし、フラグに値を割り当てます。それ以外の場合、カウンターは変更されません。

if (!isset($flag))
{
//カウンタに1を加算する文の処理
...
//フラグの割り当て
session_start();
session_register("flag");
$flag =1 ;
}


2. 便宜上、カウンターを関数 MyCounter() として使用できるため、ホームページの先頭に require("filename") を追加するだけで MyCounter() になります。必要に応じて、カウンターが必要な場所に を追加して表示します。

3. グラフィックを使用してカウンターを表示する場合は、必要な場所に を直接挿入します。ただし、PHP の画像処理機能を使用するには、PHP に GD ライブラリがインストールされている必要があることに注意してください。




このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Ubuntu および Debian 用の PHP 8.4 インストールおよびアップグレード ガイド Dec 24, 2024 pm 04:42 PM

PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 PHP 開発用に Visual Studio Code (VS Code) をセットアップする方法 Dec 20, 2024 am 11:31 AM

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、

今まで知らなかったことを後悔している 7 つの PHP 関数 今まで知らなかったことを後悔している 7 つの PHP 関数 Nov 13, 2024 am 09:42 AM

あなたが経験豊富な PHP 開発者であれば、すでにそこにいて、すでにそれを行っていると感じているかもしれません。あなたは、運用を達成するために、かなりの数のアプリケーションを開発し、数百万行のコードをデバッグし、大量のスクリプトを微調整してきました。

PHPでHTML/XMLを解析および処理するにはどうすればよいですか? PHPでHTML/XMLを解析および処理するにはどうすればよいですか? Feb 07, 2025 am 11:57 AM

このチュートリアルでは、PHPを使用してXMLドキュメントを効率的に処理する方法を示しています。 XML(拡張可能なマークアップ言語)は、人間の読みやすさとマシン解析の両方に合わせて設計された多用途のテキストベースのマークアップ言語です。一般的にデータストレージに使用されます

JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 JSON Web Tokens(JWT)とPHP APIでのユースケースを説明してください。 Apr 05, 2025 am 12:04 AM

JWTは、JSONに基づくオープン標準であり、主にアイデンティティ認証と情報交換のために、当事者間で情報を安全に送信するために使用されます。 1。JWTは、ヘッダー、ペイロード、署名の3つの部分で構成されています。 2。JWTの実用的な原則には、JWTの生成、JWTの検証、ペイロードの解析という3つのステップが含まれます。 3. PHPでの認証にJWTを使用する場合、JWTを生成および検証でき、ユーザーの役割と許可情報を高度な使用に含めることができます。 4.一般的なエラーには、署名検証障害、トークンの有効期限、およびペイロードが大きくなります。デバッグスキルには、デバッグツールの使用とロギングが含まれます。 5.パフォーマンスの最適化とベストプラクティスには、適切な署名アルゴリズムの使用、有効期間を合理的に設定することが含まれます。

母音を文字列にカウントするPHPプログラム 母音を文字列にカウントするPHPプログラム Feb 07, 2025 pm 12:12 PM

文字列は、文字、数字、シンボルを含む一連の文字です。このチュートリアルでは、さまざまな方法を使用してPHPの特定の文字列内の母音の数を計算する方法を学びます。英語の母音は、a、e、i、o、u、そしてそれらは大文字または小文字である可能性があります。 母音とは何ですか? 母音は、特定の発音を表すアルファベットのある文字です。大文字と小文字など、英語には5つの母音があります。 a、e、i、o、u 例1 入力:string = "tutorialspoint" 出力:6 説明する 文字列「TutorialSpoint」の母音は、u、o、i、a、o、iです。合計で6元があります

PHPでの後期静的結合を説明します(静的::)。 PHPでの後期静的結合を説明します(静的::)。 Apr 03, 2025 am 12:04 AM

静的結合(静的::) PHPで後期静的結合(LSB)を実装し、クラスを定義するのではなく、静的コンテキストで呼び出しクラスを参照できるようにします。 1)解析プロセスは実行時に実行されます。2)継承関係のコールクラスを検索します。3)パフォーマンスオーバーヘッドをもたらす可能性があります。

PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? PHPマジックメソッド(__construct、__destruct、__call、__get、__setなど)とは何ですか? Apr 03, 2025 am 12:03 AM

PHPの魔法の方法は何ですか? PHPの魔法の方法には次のものが含まれます。1。\ _ \ _コンストラクト、オブジェクトの初期化に使用されます。 2。\ _ \ _リソースのクリーンアップに使用される破壊。 3。\ _ \ _呼び出し、存在しないメソッド呼び出しを処理します。 4。\ _ \ _ get、dynamic属性アクセスを実装します。 5。\ _ \ _セット、動的属性設定を実装します。これらの方法は、特定の状況で自動的に呼び出され、コードの柔軟性と効率を向上させます。

See all articles