簡単なカウンターの作り方(PHP)




簡単なテキストカウンタを作ってみましょう。ウェブを見るたびに「あなたは、○人目のお客様です。」とか表示されるよく見るやつです。まず、今日使うメインの関数『fopen』から勉強しましょう。
ファイルポインタというものが重要になるので、注意してみてください。

fopen

『基本』
説明 ファイルまたはURLを開く
区分 ファイル関数

『書式』
fopen(filename,mode,use_include_path) 
記載例:fopen(‘count.txt,’r+’)

『引数』
filename ファイル名称
mode ファイルを開くときのモードの指定

『返値』
成功時 ファイルポインタ
失敗時 FALSE(ファイルを開くのを失敗した時)

『引数modeの設定値』
r 読み込みのみ。ファイルポインタは先頭。
r+ 読み書き可能。ファイルポインタは先頭。
w 書き込のみ。ファイルポインタは先頭。ファイルサイズは0。ファイルが存在しない場合は、新規作成。
w+ 読み書き可能。ファイルポインタは先頭。ファイルサイズは0。ファイルが存在しない場合は、新規作成。
a 追加書き込み。ファイルポインタは終端。ファイルが存在しない場合は、新規作成。
a+ 追加書き込み可能で、読み取りが可能。ファイルポインタは終端。ファイルが存在しない場合は、新規作成。
x 書き込みのみで開く。ファイルポインタは先頭。ファイルが存在する場合fopen関数は失敗し、E_WARNINGレベルエラーを返す。ファイルが存在しない場合は、新規作成。
x+ 読み込み、書き込み可能。ファイルポインタは先頭。ファイルが存在する場合fopen関数は失敗し、E_WARNINGレベルエラーを返す。ファイルが存在しない場合は、新規作成。

『関連関数』
fclose ファイルポインタを閉じる
fwrite fputsと同様(エイリアス)
fgets ファイルから1行取得
file ファイルの内容を全部取得して、配列に格納
fread 長さ(省略可能)
ファイルを読み込む(バイナリーモード)

下記が今日学習するソースです。簡単に流れを記載します。
1.ファイルポインタを開く
2.現在の数値を読み込む
3.数値を1つ増やす
4.ファイルポインタを先頭に戻す
5.新しい数値を書き込む
6.ファイルポインタを閉じる
このような流れでプログラムは作られています。 

[2行目] まず、ファイルポインタを変数とします。今回は変数を『$fpt』にします(これは好きに決めてOKです)。
fopenで開くファイル名を指定します。今回は『count.txt』とします。モードは読み書き可能である『r+』を指定します。

[3行目] 『fgets』は、指定したファイルから1行読み込む関数です。今回7と設定しているので、先頭から6バイトを読み込みます。
『設定した数値-1』が読み込むバイト数になるので、注意してください。

[4行目] count++は数値を1つUPします。例えば[3行目]で取得した値が『3』であるならば、ここでは『4』になります。

[5行目] 『rewind』は引数で指定したファイルポインタの位置を先頭に戻します。これが結構重要で、rewindをしないと、横に数字がどんどん並んでしまいます。例)012345・・・。つまり数字の後ろにポインタがある状態が続くのです。rewindをお忘れなく!!

[6行目] 『fputs』でファイルに数字を書き込みます。fputs(ファイルポインタ,文字列)の形式です。ファイルポインタは『$fpt』書き込みたい数字は『$count』ですね。『fputs』と『fwrite』は同じ意味なのでどちらを使ってもOKです。

[7行目] ファイルポインタを閉じましょう。『fclose』を使います。ここで注意が必要なのは閉じるのはポインタです。ファイル名を指定しないようにしてください。ポインタは『$ftp』ですね。

[8行目] 最後に『echo』を使って、結果を表示させてみましょう。



人気記事一覧


関連記事一覧

This entry was posted in PHPのプログラム and tagged , , , , , , , , , , . Bookmark the permalink.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">