PHP は非常に強力な画像処理機能を備えており、Web 画像を簡単かつ動的に生成できます。
以下はphpを使用して作成した簡単なカウンターです。
1. 一般的なアイデア:
Web ページにアクセスしたら、ファイルを開いて以前の訪問者数を読み取り、1 を加算して最新の訪問者数を取得します。 , そして、数値を標準形式にフォーマットし、画像処理関数を呼び出して数値を画像に出力し、訪問者数を記録するファイルに新しい訪問数を書き込みます。
2. プログラムで使用される関数の説明:
A. 関連するファイル操作:
関数のプロトタイプ: int fopen(string filename, string mode); function ファイル ストリーム ポインタを返します。それ以外の場合は FALSE(0) を返します。
パラメータの説明:
string filename -- 開かれるファイルの名前は文字列の形式である必要があります。
例: "zzm.txt"、"..zzm.txt" など。 O 文字列モード - ファイルを開く方法は文字形式である必要があります。
'r'、読み取り専用形式。ファイル ポインターはファイルの先頭を指します。 out being out out out out out out over to ファイルが存在しない場合は、試みが行われますファイルを作成します。 '' W+'、読み取りおよび書き込み可能、ファイル ポインターはファイルの先頭を指し、ファイルの長さを 0 にカットします。
ファイルが存在しない場合は、ファイルの作成を試みます。
'a'、追加形式 (書き込みのみ可能)、ファイル ポインターはファイルの末尾を指します。ファイル
ファイルが存在しない場合は、ファイルの作成が試行されます。
'a+'、読み取りおよび書き込み可能、ファイル ポインタはファイルの末尾を指します。
ファイルが存在しない場合は、ファイルの作成が試行されます。
例: 現在のディレクトリの下にある「zzm.txt」を読み取り専用形式で開きます
$fp = fopen("zzm.txt", "r");
b. ファイルを閉じます:
関数プロトタイプ: int fclose( int fp );
戻り結果: 成功した場合は 1 が返され、失敗した場合は 0 が返されます
パラメーターの説明: int fp は、fopen 関数によって返されたファイル ストリーム ポインターです。
例: fopen で開いたばかりの zzm.txt ファイルを閉じます。
文字列の長さがファイルの終わりに達すると、EOF (End Of File) が返されます。
パラメータの説明:
文字数。実際に読み取られる文字数は長さ -1 です。 例: $fp から 9 文字を読み取ります $str1 = fgets($fp,10); 書き込みファイル:
関数プロトタイプ: int fputs(int fp, string str, int [ length]);
戻り結果: fclose と同じ
パラメータの説明:
int fputs (int fp, string str, int [length]) - ファイルに書き込まれる文字列。T int length - 書き込みの長さ。オプション。長さを指定しない場合は文字列全体が書き込まれ、それ以外の場合は長さを書き込みます。
例:「0000000001」を$ fpに書き込みます。
$len2 = strlen( $str);
b. 文字列の追加: を使用して 2 つの文字列を接続します。
例: $str1 と $str2 を追加します
$str = $str1.$str2
C. 関連するグラフィック関数:
関数のプロトタイプ: int imagecreate(int x_size, int y_size);結果: 空の画像のサイズを持つ空の画像識別番号 (ImageID) を返します $ImageID = imagecreate(88, 31);
b. 画像に色を割り当てます:
関数プロトタイプ: int imagecolorallocate(int im, int red) , int green, int blue);
戻り結果: assign image ($im) は RGB カラー識別番号を返します
パラメーターの説明: int im 画像識別番号
int red、green、blue は赤、緑、青の成分ですそれぞれ青で、値の範囲は 0 ~ 255 です
例: 画像 $im に識別番号を割り当てます $ White 白色、白の RGB は (255,255,255) です
$ White = ImageColoraCate ($ IM, 255, 255); int iM int 塗りつぶしの色
(0,0) は画像の左上隅を表します
intcol、色の識別番号
例: 画像 (つまり画像全体) の左上隅から始めて黒 (色) で塗りつぶします黒の識別は imagecolorallocate 関数で定義されています
番号は $black です)。
use using using using through using ’ の out through through ’ の to ‐ ‐‐‐‐‐‐‐‐ im, 0, 0, 0, $black);
: int im,画像の識別番号。
例: 画像 $im の幅を計算します
$px = imagex($im);
e. 画像内に横書きテキストを書き込みます:
関数プロトタイプ: int imagestring(int im, int font, int x, int y, string s, int col)
戻り結果: 成功した場合は 1 を返し、それ以外の場合は 0 を返す
パラメータの説明: int im、画像識別番号
int font、フォント識別番号、内蔵フォント 1 ~ 5、ユーザーは imageloadfont( )
字 字 フォント。
int x、int y、フォントの座標 (0,0) を画像の左上隅として書き始めます。 , String S, 書き込む文字列
int color, フォントの色認識番号
例:画像(3,3)の位置で、フォントサイズは3、色は白の文字列「E&J Counter」識別番号 $white)
スルー‐ 色識別番号が $white である文字列 "E&J Counter" を介して int imageline(int im, int x1, int y1, int x2, int y2, int col);
戻り値: 成功した場合は 1 を返し、それ以外の場合は 0 を返す
パラメータの説明: int im, 画像の識別番号
Int x1, int y1 ,線の開始座標 int x2、int y2、線の終了座標 int col、線の色識別番号
例: 画像内に (1,14) から (85,14) まで線を描画します $ im $white の直線
use using using using using using using through using ‐ ‐オフ ‐ ‐‐ . 結果: 正常に 1 を返し、それ以外の場合は 0 を返します パラメータの説明: int im、画像識別番号
文字列ファイル名、名前を生成します画像、オプション、ファイル名が空の場合、直接?画像 $im をファイル名 "image1.gif" の画像に変換します
Imagegif($im, "image1 .gif"); イメージを解放します:
関数プロトタイプ: int imagedestroy(int im); : 成功した場合は 1 を返し、それ以外の場合は 0 を返します。
パラメーターの説明: int im、解放されるイメージ識別番号。この関数は、識別番号 im のイメージと、イメージによって占有されているシステム リソースを解放します。
例: イメージ $im を解放します。
Imagedestroy($im);
3. このカウンターをインストールする方法:
A. システムには PHP インタープリターがインストールされている必要があります。 PHP は http://www.php.net/ からダウンロードできます。このサイトには、閲覧またはダウンロードして読むことができる詳細な技術情報も多数あります。 PHP のインストール方法については、独自の手順を参照してください。
B. 次のプログラム リストを拡張子 php のファイルにコピーし、php スクリプトを実行できるディレクトリに置きますか?
そして、そのディレクトリの下に zzm.txt という名前のプレーン テキスト ファイルを作成します。このファイルの目的は、過去の訪問者数を記録することです。カウンタの初期値 (5000 など) を事前に設定できます。
C. Web ページでこのカウンターを呼び出す方法は?次の方法で呼び出すことができます:
添付ファイル: 完全なプログラム リスト
<
Header("Content-type: image/gif") ;
‐ ‐ ’ s ‑ ‑ ‑ ‑ ‑ ‑ d ,
// このカウンターが記録できる訪問者の最大数は 999999999 です
$str1++;
//カウンターを追加します fclose($fp);
//ファイルを閉じます
$fp = fopen("zzm.txt", "w") //記録するファイル zzm.txt を開きます
を書くことで訪問者数を fputs($fp, $str1);
// 最新の訪問者数をファイルに書き込みます
fclose($fp) // ファイルを閉じます
/ *
以下は訪問者数のフォーマットされた出力です。訪問者数が9桁では足りない場合、たとえば5000(4桁)、
次に訪問者数を000005000に変換して出力します。方法は、訪問者数の桁数を計算し、000000000の桁数(9桁)と比較して桁の差を求め、数字の前に0を追加します。たとえば、5000 の長さは 000000000 とは 5 異なるため、5000 の前に 5 つのゼロを追加する必要があります。
*/
$len1 = strlen($str1);
// 訪問者数を計算する // カウンターの最大カウントを定義します
$dif = $len2 - $len1 // を計算します2 つの桁の差、つまり前に追加する 0 の数
$rest = substr($str2, 0, $dif);补 // 0 をテストします
$ String = $ REST. Str1;
// 前 0
$ font = 4 // 新しい画像を作成します $black = ImageColorAllocate($im, 0,0,0); // 白い画像を定義しますfill($im, 0, 0,$black);
//カウンターの背景色を黒に設定します
$px = (imagesx($im)-8.3*strlen($string))/2; //文字列の長さに応じて、文字列の書き込みが開始される水平座標を計算します。その目的は、文字列を水平方向に中央揃えにすることです
ImageString($im,3,$px,2,"E&J Counter",$white)
// image 「E&J Counter」と書くような感じ
imageline($im, 1, 14, 85, 14, $white)
//水平線を描画します
ImageString($im,$font,$px,15.5,$string) 、$ white);
http://www.bkjia.com/PHPjc/316134.html
www.bkjia.com
true
http://www.bkjia.com/PHPjc/316134.html
技術記事
PHP は非常に強力な画像処理機能を備えており、Web 画像を簡単かつ動的に生成できます。 以下はphpを使用して作成した簡単なカウンターです。 1. 一般的なアイデア: 過去は捨ててください...