### 用 PHP 制作动态计数器

PHP是现在流行的服务器端脚本语言，它的功能非常强大，你可以利用它做几乎任何事。不需要复杂的变量和代码，你就可以非常迅速地做出漂亮的计数器来。下面，就让我们一步一步的来做。

其实，计数器的原理大家都知道，首先，确定一个记录文件，例如counter.txt或counter.log，每一次访问这个页面，就对这个文件加1，然后把结果显示出来。

因此，我们的PHP代码开始应该是这样的：

＜?PHP

§countfile = "js/counter.inf";

//定义计数器写入的文件是当前目录下JS目录中//counter.inf，然后我们应当测试该文件能否打开

if ((§fp = fopen(§countfile, "r+")) == false) { //用读写模式打开文件，若不能打开就退出

printf ("Open file %s failed!",§countfile);

exit;

}

else

{

//如果文件能够正常打开，就读入文件中的数据，假设是1

§count = fread (§fp,10);

//读取10位数据

§count = §count + 1;

//count ++

fclose (§fp);

//关闭当前文件

§fp = fopen(§countfile, "w+")

//以覆盖模式打开文件

fwrite (§fp,§count);

//写入加1后的新数据

fclose (§fp);

//并关闭文件

}

这时，整个计数工作就完成了，如果只是简单的文字计数的话，在这里就可以输出变量§count的值。下面是将§count转换为图片模式的代码：

§fp = fopen (§countfile, "r"); //以只读模式打开文件

§array_count = 1; //定义一个表示数组元素位置的变量，下面要用

while (! feof(§fp)) {

§current_number = fgetc(§fp);

§counter_array[§array_count] = §current_number;

§array_elements = count (§counter_array);

§array_count = §array_count + 1;

}

上面这个while循环的作用是把每一位数分离出来。它从counter.inf中由左到右逐位读取数值，并依次写入一个叫counter_array的数组中，这个数组的索引是从1开始的(§array_count)。如果现在counter.inf中的数字是158，那么数组§counter_array[]就像这样：§counter_array[1] = 1、§counter_array[2] = 5、§counter_array[3] = 8。有了上面这些工作，我们就可以方便地显示不同的数字图片了，显示代码如下：

echo ("＜table border="0" height="5" align="center"＞＜tr＞＜td bgcolor="#bab389" align="center"＞欢迎您，第");

for (§array_id = 1;§array_id＜§array_elements; ++ §array_id) {

echo ("＜img src="images\counter\§counter_array[§array_id].gif" align=absmiddle＞");

}

echo ("位客人＜/td＞＜/tr＞＜/table＞");

}

上面的代码很简单，就是画一个表格，并依次在表格中显示所需的图片。在imagesunter目录下有0.gif至9.gif十张图片，for循环遍历数组，从高位到低位给出每一位数相应的图片，直到数组的尾部。这样，一个完整的计数器就完成了。