我用frontpage 写了一个htm页面,然后在body 间写入
include "counter.inc.php"
最后将htm改名为test.php ,结果执行结果为显示
include "counter.inc.php"
我该怎么做阿,谢谢大家帮忙,我可是个初手。
counter.inc.php 代码如下
<?
#
# 访客计数器文件 counter.inc.php
# Author: Dallas Thunder
# Copyright (C) 2000
# 用法:
# 在需要被计数的页面中加入
# include "counter.inc.php"
# 然后调用MyCounter()即可计数,本函数不产生任何输出。
# 需要显示输出的话,可以在显示计数器值的地方这样调用:
# WriteCounter(MyCounter());
# 可以修改WriteCounter()函数以按照指定的格式输出
# 优点:
# 可以简单的给每个页面加入计数器,使用同一个计数文件,
# 便于管理并且可以加入注释,在需要的时候才显示计数器的值
# 缺点:
# 要进行大量磁盘读写操作,速度慢,不实用
#
# 计数文件名
$counterFile = "counter.txt";
# 计数文件格式:
# <页面名>:<计数值>
# 每个页面的记录为单独一行
# 取得本页面的名称,按每页的名称在计数文件中加入一条记录
$PageFile = $_SERVER["PHP_SELF"];
function MyCounter() {
global $PageFile, $counterFile;
# 如果计数文件不存在就生成一个
if( !file_exists( $counterFile ) ) {
$fp = fopen( $counterFile, "a+" );
# 为了用notepad查看文件,在换行前加回车
fwrite( $fp, "$PageFile:0\x0D\n" );
fclose($fp);
}
# 读取计数文件
$contents = file($counterFile);
$num = 0;
# 重写计数文件
$fp = fopen( $counterFile, "w" );
for( $i = 0; $i < count( $contents ); $i++ ) {
# 计数文件中以“#”开头的行为注释,原样写回
if( ereg( "^#", $contents[$i] ) ) {
fwrite( $fp, $contents[$i] );
continue;
}
$pieces = explode( ":", $contents[$i] );
# 如果不是本页面的记录,原样写回
if( $PageFile != $pieces[0] ) {
fwrite( $fp, $contents[$i] );
continue;
}
# 本页计数器加一(用$pieces[1] ++似乎不能自动转换类型,用+=1可以)
$pieces[1] += 1;
$num = $pieces[1];
# 将新值写入计数文件
fwrite( $fp, "$pieces[0]:$pieces[1]\x0D\n" );
}
# 如果没有本页的计数就添加一行,计数器为1
if( $num == 0 ) {
fwrite( $fp, "\x0D\n$PageFile:1" );
$num += 1;
}
fclose( $fp );
# 返回本页面计数器的新值
return $num;
}
# 简单的用蓝色显示六位计数器的值,用“0”补齐
function WriteCounter( $num ) {
printf( "<font color=blue>%06d</font>", $num );
}
?>
21 个解决方案
#1
should be:
<?php include "counter.inc.php" ?>
<?php include "counter.inc.php" ?>
#2
看有没有counter.txt这个文件。
#3
不用counter.txt...
# 如果计数文件不存在就生成一个
# 如果计数文件不存在就生成一个
#4
注释说得很清楚, 除了像KEBB(化石)那样使用外, 还需要自己调用WriteCounter()进行输出.
#5
谢谢大家,我式式先,待会揭帖。
#6
我安照化石的说法,写了test.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>include</title>
</head>
<body>
<?php include "counter.inc.php" ?>
</body>
执行了多次,没有任何错误提示,查看counter.txt,发现counter.txt没有任何变化,我暂时不需要输出,只要求在counter.txt里面有记录就可以了。
我的所有文件都放在一个目录下,且这个目录有读写权,我把counter.txt 清空
或写入 10000 ,浏览网页都没有变化,请教各位高手,问题可能出在那里?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>include</title>
</head>
<body>
<?php include "counter.inc.php" ?>
</body>
执行了多次,没有任何错误提示,查看counter.txt,发现counter.txt没有任何变化,我暂时不需要输出,只要求在counter.txt里面有记录就可以了。
我的所有文件都放在一个目录下,且这个目录有读写权,我把counter.txt 清空
或写入 10000 ,浏览网页都没有变化,请教各位高手,问题可能出在那里?
#7
在你的test.php 里面包含文件如下面的写法:
<?php include "counter.inc.php" ?>
确定文件的路径是否正确!
<?php include "counter.inc.php" ?>
确定文件的路径是否正确!
#8
需要调用里面的函数,这么写:
<?php
include "counter.inc.php";
MyCounter();
?>
<?php
include "counter.inc.php";
MyCounter();
?>
#9
谢谢,我又重新仔细的检查了几遍,发现文件名和路径完全正确。
我的计数器的代码是从
http://uh1.gz.163.com/cgi/readelite?i=10771
拷贝过来的,源代码里
# 计数文件名
$counterFile = "d:/wwwroot/counter/counter.txt";
而我的counter.txt 文件和我的php文件都放在同一目录下
所以我改成了
# 计数文件名
$counterFile = "counter.txt";
是不是这样就有问题了?
谢谢!
我的计数器的代码是从
http://uh1.gz.163.com/cgi/readelite?i=10771
拷贝过来的,源代码里
# 计数文件名
$counterFile = "d:/wwwroot/counter/counter.txt";
而我的counter.txt 文件和我的php文件都放在同一目录下
所以我改成了
# 计数文件名
$counterFile = "counter.txt";
是不是这样就有问题了?
谢谢!
#10
谢谢化石,我再式式:)
#11
路径我看不会有问题。
#12
还是不行,再请大家帮忙。
to:化石,谢谢您的关注。我php不行,不过看代码里好想计数器经有调用MyCounter();了,在test.php里面还要再写MyCounter();?
to:化石,谢谢您的关注。我php不行,不过看代码里好想计数器经有调用MyCounter();了,在test.php里面还要再写MyCounter();?
#13
我仔细看了看counter.inc.php
只有申明,没有调用呀。。。
我在本地测试一下。
只有申明,没有调用呀。。。
我在本地测试一下。
#14
谢谢化石,这段代码好想是windows下的php环境用的,我现在传到了
linux 主机上,会不会大小写有问题?
我已经给您留言了,我把网站和ftp用户密码都告诉您了,
看看代码有没有问题?
linux 主机上,会不会大小写有问题?
我已经给您留言了,我把网站和ftp用户密码都告诉您了,
看看代码有没有问题?
#15
没有问题啊。。。照上面说明用,完全正确的。
<?php
include "counter.inc.php";
WriteCounter(MyCounter());
?>
<?php
include "counter.inc.php";
WriteCounter(MyCounter());
?>
#16
这个是我上传到我LINUX服务器的程序:
http://be10.ods.org/knighte/test.php
需要注意的一点是,可能你服务器不允许新建文件,所以需要手动新建一个counter.txt文件。
其次,需要修改其属性。改666试试。
http://be10.ods.org/knighte/test.php
需要注意的一点是,可能你服务器不允许新建文件,所以需要手动新建一个counter.txt文件。
其次,需要修改其属性。改666试试。
#17
谢谢,我的文件读写属性都已经是666了。
刷新了多遍,结果计数器怎么还是1?
刷新了多遍,结果计数器怎么还是1?
#18
是否已经有counter.txt文件??
#19
是的,counter.txt 文件已经存在
#20
好想过了一段时间后再访问就可以变计数器了,多刷新几次没有效果。谢谢化石和其他朋友的帮忙。
#21
呵呵,
我试了一下可以
index.php
<?
include "counter.inc.php";
WriteCounter(MyCounter());
?>
————————————————————
counter.inc.php
<?
#
# 访客计数器文件 counter.inc.php
# Author: Dallas Thunder
# Copyright (C) 2000
# 用法:
# 在需要被计数的页面中加入
# include "counter.inc.php"
# 然后调用MyCounter()即可计数,本函数不产生任何输出。
# 需要显示输出的话,可以在显示计数器值的地方这样调用:
# WriteCounter(MyCounter());
# 可以修改WriteCounter()函数以按照指定的格式输出
# 优点:
# 可以简单的给每个页面加入计数器,使用同一个计数文件,
# 便于管理并且可以加入注释,在需要的时候才显示计数器的值
# 缺点:
# 要进行大量磁盘读写操作,速度慢,不实用
#
# 计数文件名
$counterFile = "counter.txt";
# 计数文件格式:
# <页面名>:<计数值>
# 每个页面的记录为单独一行
# 取得本页面的名称,按每页的名称在计数文件中加入一条记录
$PageFile = $_SERVER["PHP_SELF"];
function MyCounter() {
global $PageFile, $counterFile;
# 如果计数文件不存在就生成一个
if( !file_exists( $counterFile ) ) {
$fp = fopen( $counterFile, "a+" );
# 为了用notepad查看文件,在换行前加回车
fwrite( $fp, "$PageFile:0\x0D\n" );
fclose($fp);
}
# 读取计数文件
$contents = file($counterFile);
$num = 0;
# 重写计数文件
$fp = fopen( $counterFile, "w+" );
for( $i = 0; $i < count( $contents ); $i++ ) {
# 计数文件中以“#”开头的行为注释,原样写回
if( ereg( "^#", $contents[$i] ) ) {
fwrite( $fp, $contents[$i] );
continue;
}
$pieces = explode( ":", $contents[$i] );
# 如果不是本页面的记录,原样写回
if( $PageFile != $pieces[0] ) {
fwrite( $fp, $contents[$i] );
continue;
}
# 本页计数器加一(用$pieces[1] ++似乎不能自动转换类型,用+=1可以)
$pieces[1] += 1;
$num = $pieces[1];
# 将新值写入计数文件
fwrite( $fp, "$pieces[0]:$pieces[1]\x0D\n" );
}
# 如果没有本页的计数就添加一行,计数器为1
if( $num == 0 ) {
fwrite( $fp, "\x0D\n$PageFile:1" );
$num += 1;
}
fclose( $fp );
# 返回本页面计数器的新值
return $num;
}
# 简单的用蓝色显示六位计数器的值,用“0”补齐
function WriteCounter( $num ) {
printf( "<font color=blue>%06d</font>", $num );
}
?>
我试了一下可以
index.php
<?
include "counter.inc.php";
WriteCounter(MyCounter());
?>
————————————————————
counter.inc.php
<?
#
# 访客计数器文件 counter.inc.php
# Author: Dallas Thunder
# Copyright (C) 2000
# 用法:
# 在需要被计数的页面中加入
# include "counter.inc.php"
# 然后调用MyCounter()即可计数,本函数不产生任何输出。
# 需要显示输出的话,可以在显示计数器值的地方这样调用:
# WriteCounter(MyCounter());
# 可以修改WriteCounter()函数以按照指定的格式输出
# 优点:
# 可以简单的给每个页面加入计数器,使用同一个计数文件,
# 便于管理并且可以加入注释,在需要的时候才显示计数器的值
# 缺点:
# 要进行大量磁盘读写操作,速度慢,不实用
#
# 计数文件名
$counterFile = "counter.txt";
# 计数文件格式:
# <页面名>:<计数值>
# 每个页面的记录为单独一行
# 取得本页面的名称,按每页的名称在计数文件中加入一条记录
$PageFile = $_SERVER["PHP_SELF"];
function MyCounter() {
global $PageFile, $counterFile;
# 如果计数文件不存在就生成一个
if( !file_exists( $counterFile ) ) {
$fp = fopen( $counterFile, "a+" );
# 为了用notepad查看文件,在换行前加回车
fwrite( $fp, "$PageFile:0\x0D\n" );
fclose($fp);
}
# 读取计数文件
$contents = file($counterFile);
$num = 0;
# 重写计数文件
$fp = fopen( $counterFile, "w+" );
for( $i = 0; $i < count( $contents ); $i++ ) {
# 计数文件中以“#”开头的行为注释,原样写回
if( ereg( "^#", $contents[$i] ) ) {
fwrite( $fp, $contents[$i] );
continue;
}
$pieces = explode( ":", $contents[$i] );
# 如果不是本页面的记录,原样写回
if( $PageFile != $pieces[0] ) {
fwrite( $fp, $contents[$i] );
continue;
}
# 本页计数器加一(用$pieces[1] ++似乎不能自动转换类型,用+=1可以)
$pieces[1] += 1;
$num = $pieces[1];
# 将新值写入计数文件
fwrite( $fp, "$pieces[0]:$pieces[1]\x0D\n" );
}
# 如果没有本页的计数就添加一行,计数器为1
if( $num == 0 ) {
fwrite( $fp, "\x0D\n$PageFile:1" );
$num += 1;
}
fclose( $fp );
# 返回本页面计数器的新值
return $num;
}
# 简单的用蓝色显示六位计数器的值,用“0”补齐
function WriteCounter( $num ) {
printf( "<font color=blue>%06d</font>", $num );
}
?>
#1
should be:
<?php include "counter.inc.php" ?>
<?php include "counter.inc.php" ?>
#2
看有没有counter.txt这个文件。
#3
不用counter.txt...
# 如果计数文件不存在就生成一个
# 如果计数文件不存在就生成一个
#4
注释说得很清楚, 除了像KEBB(化石)那样使用外, 还需要自己调用WriteCounter()进行输出.
#5
谢谢大家,我式式先,待会揭帖。
#6
我安照化石的说法,写了test.php
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>include</title>
</head>
<body>
<?php include "counter.inc.php" ?>
</body>
执行了多次,没有任何错误提示,查看counter.txt,发现counter.txt没有任何变化,我暂时不需要输出,只要求在counter.txt里面有记录就可以了。
我的所有文件都放在一个目录下,且这个目录有读写权,我把counter.txt 清空
或写入 10000 ,浏览网页都没有变化,请教各位高手,问题可能出在那里?
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>include</title>
</head>
<body>
<?php include "counter.inc.php" ?>
</body>
执行了多次,没有任何错误提示,查看counter.txt,发现counter.txt没有任何变化,我暂时不需要输出,只要求在counter.txt里面有记录就可以了。
我的所有文件都放在一个目录下,且这个目录有读写权,我把counter.txt 清空
或写入 10000 ,浏览网页都没有变化,请教各位高手,问题可能出在那里?
#7
在你的test.php 里面包含文件如下面的写法:
<?php include "counter.inc.php" ?>
确定文件的路径是否正确!
<?php include "counter.inc.php" ?>
确定文件的路径是否正确!
#8
需要调用里面的函数,这么写:
<?php
include "counter.inc.php";
MyCounter();
?>
<?php
include "counter.inc.php";
MyCounter();
?>
#9
谢谢,我又重新仔细的检查了几遍,发现文件名和路径完全正确。
我的计数器的代码是从
http://uh1.gz.163.com/cgi/readelite?i=10771
拷贝过来的,源代码里
# 计数文件名
$counterFile = "d:/wwwroot/counter/counter.txt";
而我的counter.txt 文件和我的php文件都放在同一目录下
所以我改成了
# 计数文件名
$counterFile = "counter.txt";
是不是这样就有问题了?
谢谢!
我的计数器的代码是从
http://uh1.gz.163.com/cgi/readelite?i=10771
拷贝过来的,源代码里
# 计数文件名
$counterFile = "d:/wwwroot/counter/counter.txt";
而我的counter.txt 文件和我的php文件都放在同一目录下
所以我改成了
# 计数文件名
$counterFile = "counter.txt";
是不是这样就有问题了?
谢谢!
#10
谢谢化石,我再式式:)
#11
路径我看不会有问题。
#12
还是不行,再请大家帮忙。
to:化石,谢谢您的关注。我php不行,不过看代码里好想计数器经有调用MyCounter();了,在test.php里面还要再写MyCounter();?
to:化石,谢谢您的关注。我php不行,不过看代码里好想计数器经有调用MyCounter();了,在test.php里面还要再写MyCounter();?
#13
我仔细看了看counter.inc.php
只有申明,没有调用呀。。。
我在本地测试一下。
只有申明,没有调用呀。。。
我在本地测试一下。
#14
谢谢化石,这段代码好想是windows下的php环境用的,我现在传到了
linux 主机上,会不会大小写有问题?
我已经给您留言了,我把网站和ftp用户密码都告诉您了,
看看代码有没有问题?
linux 主机上,会不会大小写有问题?
我已经给您留言了,我把网站和ftp用户密码都告诉您了,
看看代码有没有问题?
#15
没有问题啊。。。照上面说明用,完全正确的。
<?php
include "counter.inc.php";
WriteCounter(MyCounter());
?>
<?php
include "counter.inc.php";
WriteCounter(MyCounter());
?>
#16
这个是我上传到我LINUX服务器的程序:
http://be10.ods.org/knighte/test.php
需要注意的一点是,可能你服务器不允许新建文件,所以需要手动新建一个counter.txt文件。
其次,需要修改其属性。改666试试。
http://be10.ods.org/knighte/test.php
需要注意的一点是,可能你服务器不允许新建文件,所以需要手动新建一个counter.txt文件。
其次,需要修改其属性。改666试试。
#17
谢谢,我的文件读写属性都已经是666了。
刷新了多遍,结果计数器怎么还是1?
刷新了多遍,结果计数器怎么还是1?
#18
是否已经有counter.txt文件??
#19
是的,counter.txt 文件已经存在
#20
好想过了一段时间后再访问就可以变计数器了,多刷新几次没有效果。谢谢化石和其他朋友的帮忙。
#21
呵呵,
我试了一下可以
index.php
<?
include "counter.inc.php";
WriteCounter(MyCounter());
?>
————————————————————
counter.inc.php
<?
#
# 访客计数器文件 counter.inc.php
# Author: Dallas Thunder
# Copyright (C) 2000
# 用法:
# 在需要被计数的页面中加入
# include "counter.inc.php"
# 然后调用MyCounter()即可计数,本函数不产生任何输出。
# 需要显示输出的话,可以在显示计数器值的地方这样调用:
# WriteCounter(MyCounter());
# 可以修改WriteCounter()函数以按照指定的格式输出
# 优点:
# 可以简单的给每个页面加入计数器,使用同一个计数文件,
# 便于管理并且可以加入注释,在需要的时候才显示计数器的值
# 缺点:
# 要进行大量磁盘读写操作,速度慢,不实用
#
# 计数文件名
$counterFile = "counter.txt";
# 计数文件格式:
# <页面名>:<计数值>
# 每个页面的记录为单独一行
# 取得本页面的名称,按每页的名称在计数文件中加入一条记录
$PageFile = $_SERVER["PHP_SELF"];
function MyCounter() {
global $PageFile, $counterFile;
# 如果计数文件不存在就生成一个
if( !file_exists( $counterFile ) ) {
$fp = fopen( $counterFile, "a+" );
# 为了用notepad查看文件,在换行前加回车
fwrite( $fp, "$PageFile:0\x0D\n" );
fclose($fp);
}
# 读取计数文件
$contents = file($counterFile);
$num = 0;
# 重写计数文件
$fp = fopen( $counterFile, "w+" );
for( $i = 0; $i < count( $contents ); $i++ ) {
# 计数文件中以“#”开头的行为注释,原样写回
if( ereg( "^#", $contents[$i] ) ) {
fwrite( $fp, $contents[$i] );
continue;
}
$pieces = explode( ":", $contents[$i] );
# 如果不是本页面的记录,原样写回
if( $PageFile != $pieces[0] ) {
fwrite( $fp, $contents[$i] );
continue;
}
# 本页计数器加一(用$pieces[1] ++似乎不能自动转换类型,用+=1可以)
$pieces[1] += 1;
$num = $pieces[1];
# 将新值写入计数文件
fwrite( $fp, "$pieces[0]:$pieces[1]\x0D\n" );
}
# 如果没有本页的计数就添加一行,计数器为1
if( $num == 0 ) {
fwrite( $fp, "\x0D\n$PageFile:1" );
$num += 1;
}
fclose( $fp );
# 返回本页面计数器的新值
return $num;
}
# 简单的用蓝色显示六位计数器的值,用“0”补齐
function WriteCounter( $num ) {
printf( "<font color=blue>%06d</font>", $num );
}
?>
我试了一下可以
index.php
<?
include "counter.inc.php";
WriteCounter(MyCounter());
?>
————————————————————
counter.inc.php
<?
#
# 访客计数器文件 counter.inc.php
# Author: Dallas Thunder
# Copyright (C) 2000
# 用法:
# 在需要被计数的页面中加入
# include "counter.inc.php"
# 然后调用MyCounter()即可计数,本函数不产生任何输出。
# 需要显示输出的话,可以在显示计数器值的地方这样调用:
# WriteCounter(MyCounter());
# 可以修改WriteCounter()函数以按照指定的格式输出
# 优点:
# 可以简单的给每个页面加入计数器,使用同一个计数文件,
# 便于管理并且可以加入注释,在需要的时候才显示计数器的值
# 缺点:
# 要进行大量磁盘读写操作,速度慢,不实用
#
# 计数文件名
$counterFile = "counter.txt";
# 计数文件格式:
# <页面名>:<计数值>
# 每个页面的记录为单独一行
# 取得本页面的名称,按每页的名称在计数文件中加入一条记录
$PageFile = $_SERVER["PHP_SELF"];
function MyCounter() {
global $PageFile, $counterFile;
# 如果计数文件不存在就生成一个
if( !file_exists( $counterFile ) ) {
$fp = fopen( $counterFile, "a+" );
# 为了用notepad查看文件,在换行前加回车
fwrite( $fp, "$PageFile:0\x0D\n" );
fclose($fp);
}
# 读取计数文件
$contents = file($counterFile);
$num = 0;
# 重写计数文件
$fp = fopen( $counterFile, "w+" );
for( $i = 0; $i < count( $contents ); $i++ ) {
# 计数文件中以“#”开头的行为注释,原样写回
if( ereg( "^#", $contents[$i] ) ) {
fwrite( $fp, $contents[$i] );
continue;
}
$pieces = explode( ":", $contents[$i] );
# 如果不是本页面的记录,原样写回
if( $PageFile != $pieces[0] ) {
fwrite( $fp, $contents[$i] );
continue;
}
# 本页计数器加一(用$pieces[1] ++似乎不能自动转换类型,用+=1可以)
$pieces[1] += 1;
$num = $pieces[1];
# 将新值写入计数文件
fwrite( $fp, "$pieces[0]:$pieces[1]\x0D\n" );
}
# 如果没有本页的计数就添加一行,计数器为1
if( $num == 0 ) {
fwrite( $fp, "\x0D\n$PageFile:1" );
$num += 1;
}
fclose( $fp );
# 返回本页面计数器的新值
return $num;
}
# 简单的用蓝色显示六位计数器的值,用“0”补齐
function WriteCounter( $num ) {
printf( "<font color=blue>%06d</font>", $num );
}
?>