社区
ASP
帖子详情
如何让不支持ASP的空间可以使用计数器?有能用的代码更好,只要能简单计数就行
marry7
2003-10-17 05:28:03
帮帮忙吧。我这有的计数器都用不了。
不要求花费时间太长,我能马上就用的,否则太不值得了。谢谢各位
...全文
38
9
打赏
收藏
如何让不支持ASP的空间可以使用计数器?有能用的代码更好,只要能简单计数就行
帮帮忙吧。我这有的计数器都用不了。 不要求花费时间太长,我能马上就用的,否则太不值得了。谢谢各位
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
luok
2003-10-18
打赏
举报
回复
YAO Z照到一个支持ASP的空间才能
marry7
2003-10-18
打赏
举报
回复
不会吧,阿江的那些也都要有广告啊?
yzwxjun
2003-10-18
打赏
举报
回复
自己的不支持,只好用别人的罗,有广告是难免的啦,
yanzy
2003-10-18
打赏
举报
回复
呵呵,我以为没有办法了,还是人多力量大
marry7
2003-10-18
打赏
举报
回复
功能不用复杂的,只要好使就行
zhaoliangpat
2003-10-17
打赏
举报
回复
“<script src="http://www.xxxx.com/ip/mystat.asp"></script>”
建议用这种。
marry7
2003-10-17
打赏
举报
回复
最好要没有广告,可以长久用的。
不知阿江计数器是不是这样的?
purexu(星星) :FP里的计数器怎么用?
purexu
2003-10-17
打赏
举报
回复
如果服务器支持FP2000服务扩展,就用FP里的计数器
chense
2003-10-17
打赏
举报
回复
比如用阿江计数器,先把阿江计数器的文件放置在一台支持asp的服务器上,然后在不支持ASP的服务器上的页面中加入调用代码如
“<script src="http://www.xxxx.com/ip/mystat.asp"></script>”
http://www.xxxx.com为支持asp的服务器的网址。
PHP基础教程 是一个比较有价值的PHP新手教程!
标题:PHP基础教程 出处:风流的CG网络日志 时间:Mon, 28 Aug 2006 07:24:34 +0000 作者:yufeng 地址:http:///read.php?38 内容: 提供给新手学习的 PHP新手教程,是一个比较有价值的PHP新手教程! 一、PHP简介 PHP是一种易于学习和
使用
的服务器端脚本语言。只需要很少的编程知识你就能
使用
PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。 1.简介 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。 PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。安装过程很
简单
。 如果你的机器解决了2000问题,那么PHP也一样没有千年虫问题! 1.1 历史 三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常
简单
的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源
代码
自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。 PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。PHP4还处在BETA测试阶段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点(http://www.zend.com)了解更多。 PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP的先进之处 应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业
支持
,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点: - 学习过程 我个人更喜欢PHP的非常
简单
的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。 PHP的语法与C,Perl,
ASP
或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太
简单
了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很
简单
了。 你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP
代码
能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。 - 数据库连接 PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换
使用
的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。 - 可扩展性 就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。 - 面向对象编程 PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP
支持
构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。 - 更多特点 PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手:
ASP
,mod_perl,JSP 我当然不清楚
ASP
/JSP能做些什么。不过明确的是编写那样的
代码
有多
简单
,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。
ASP
只是一个一般的引擎,具有
支持
多种语言的能力,不过默认的并且是最常用的还是VBScript。 mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。 2.1 首要条件 你首先必须要有一个正在工作着的
支持
PHP的web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php3。 2.2 PHP的安装 生成一个名为test.php3的文件,含有以下内容: 然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装
使用
的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP
代码
和HTML
代码
。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以
使用
的方法: . . . 语句 与Perl和C一样,在PHP中用(;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。 注释 PHP
支持
C,C++和Unix风格的注释方式: /* C,C++风格多行注释 */ // C++风格单行注释 # Unix风格单行注释 Hello,World! 通过我们已经学过的知识,你可以编写一个最
简单
的程序输出一个也许是程序世界中最有名的词语: First PHP page 2.4 数据类型 PHP
支持
整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。 数值 数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值: $a = 1234; # 十进制数 $a = -123; # 负数 $a = 0123; # 八进制数 (等于十进制数的83) $a = 0x12; # 十六进制数(等于十进制数的18) $a = 1.234; # 浮点数"双精度数" $a = 1.2e3; # 双精度数的指数形式 字符串 字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\)可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # 产生 Hello World $full2 = '$first $second';# 产生 $first $second 可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。 数组与哈希表 数组与哈希表以同样的方法被
支持
。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有说明,但是你一样可以轻易的
使用
多维数组。 // 一个包含两个元素的数组 $a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 添加数组元素的
简单
方法 // 现在$a[2]被赋值为"third" echo count($a); // 打印出3,因为该是数组有3个元素 // 用一个语句定义一个数组并赋值 $myphonebook = array ( "sbabu" => "5348", "keith" => "4829", "carole" => "4533" ); // 噢,忘了教长吧,让我们添加一个元素 $myphonebook["dean"] = "5397"; // 你定义的carale元素错了,让我们更正它 $myphonebook["carole"] => "4522" // 我还没有告诉你怎样
使用
数组的相似
支持
方式吗?让我们看一看 echo "$myphonebook[0]"; // sbabu echo "$myphonebook[1]"; // 5348 其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。 对象
使用
new语句产生一个对象: class foo { function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); 改变变量类型 在PHP手册中提到:"PHP不
支持
(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了整数。" $foo = "0"; // $foo是字符串(ASCII 48) $foo++; // $foo是字符串"1" (ASCII 49) $foo += 1; // $foo现在是整数(2) $foo = $foo + 1.3; // $foo是一个双精度数(3.3) $foo = 5 + "10 Little Piggies"; // $foo是一个整数(15) $foo = 5 + "10 Small Pigs"; // $foo是一个整数(15) 如果想要强行转换变量类型,可以
使用
与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以
使用
外部变量,
使用
global语句。而你要将该变量的作用范围限制在该函数之内,
使用
static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样就可以声明全局变量了 } 更先进一些的是变量的变量表示。请参考PHP手册。这在有时会显得很有用。 PHP内置了许多已定义的变量。你也可以用define函数定义你自己的常量,比如define("CONSTANT","value")。 2.6 运算符 PHP具有C,C++和Java中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样
使用
"="。 算术和字符 以下只有一种运算符是有关字符的: $a + $b :加 $a - $b :减 $a * $b :乘 $a / $b :除 $a % $b :取模(余数) $a . $b :字符串连接 逻辑和比较 逻辑运算符有: $a || $b :或 $a or $b :或 $a && $b :与 $a and $b :与 $a xor $b :异或 (当$a或$b为true时为true,两者一样时为false) ! $a :非 比较运算符有: $a == $b :相等 $a != $b :不等 $a < $b :小于 $a $b :大于 $a >= $b :大于等于 与C一样PHP也有三重运算符(?:)。位操作符在PHP同样存在。 优先权 就和C以及Java一样! 2.7 控制流程结构 PHP有着与C一样的流程控制。我将在下面大概介绍。 if, else, elseif, if(): endif if (表达式一) { . . . } elseif (表达式二) { . . . } else { . . . } // 或者像Python一样 if (表达式一) : . . . . . . elseif (表达式二) : . . . else : . . . endif ; Loops. while, do..while, for while (表达式) { . . . } do { . . . } while (表达式); for (表达式一; 表达式二; 表达式三) { . . . } //或者像Python一样 while (expr) : . . . endwhile ; switch switch是对多重if-elseif-else结构的最好的替换: switch ($i) { case 0: print "i equals 0"; case 1: print "i equals 1"; case 2: print "i equals 2"; } break, continue break中断当前的循环控制结构。 continue被用来跳出剩下的当前循环并继续执行下一次循环。 require, include 就像C中的#include预处理一样。你在require中指定的那个文件将替代其在主文件中的位置。在有条件的引用文件时,可以
使用
include()。这样就使得你可以将复杂的PHP文件分割成多个文件并且在不同需要时分别引用它们。 2.8 函数 你可以像以下的例子一样定义自己的函数。函数的返回值可以是任何数据类型: function foo (变量名一, 变量名二, . . . , 变量名n) { echo "Example function.\n"; return $retval; } 所有PHP
代码
都可以出现在函数定义中,甚至包括对其他函数和类的定义。函数必须在引用之前定义。 2.9 类 利用类模型建立类。可以参考PHP手册中对类的详细解释。 class Employee { var $empno; // 员工人数 var $empnm; // 员工姓名 function add_employee($in_num, $in_name) { $this->empno = $in_num; $this->empnm = $in_name; } function show() { echo "$this->empno, $this->empnm"; return; } function changenm($in_name) { $this->empnm = $in_name; } } $sbabu = new Employee; $sbabu->add_employee(10,"sbabu"); $sbabu->changenm("babu"); $sbabu->show(); 三、从实例入手 PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个
简单
交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。 3.1 计划一个站点 一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个
计数
器
、联系信息,甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。 标题页面--front.html 这里我们有一个非常
简单
的html文件: 我的个人主页--欢迎 我的个人主页 欢迎 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 Copyright ? 我自己,1999 联系信息页面--count.html 同样我们又有了一个
简单
页面: 我的个人主页--联系信息 我的个人主页 联系信息 你可以通过1-800-PHP-INFO联系我 Copyright ? 我自己,1999 3.2 HTML到PHP 从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们
就行
了。我们将把这些include文件放在一个叫include的子目录下。下面我们就把这些站点的通用内容写进文件中。 全站通用变量设定:common.inc // 全站通用变量 $MyEmail = "phptalk@tnc.org"; $MyEmailLink = "$MyEmail"; $MyName = "PHP Talk"; $MySiteName = $MyName."'s Home Page"; ?> 通用页面头部:header.inc 通用页面底部:footer.inc Copyright ? by , 1999 新的页面front.php3: 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 新的cont.php3: 你可以通过1-800-PHP-INFO联系我 现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件
就行
了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。 3.3
计数
器
让我们在首页上加上一个
计数
器
。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下
代码
: 然后我们更改front.php3文件以显示这个
计数
器
: include("include/counter.inc"); // 我把
计数
值放在文件counter.txt中,读出并输出 printf ("%06d \n", get_hitcount("counter.txt")); include("include/footer.inc"); ?> 看看我们的新front.php3 3.4 反馈表单 让我们再添加一个反馈表单以便你的浏览者填写并e-mail给你。举例来说我们用一种很
简单
的方法实现它,我们只需要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、mail给你。 PHP中获取表单数据是很
简单
的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样
使用
了。 在process_form.php3中,变量$mytext就被赋予了输入的值--非常
简单
!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。 根据这个方法,我们可以生成一个
简单
的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。 表单:form.php3 Your feedback on my home page. 处理表单:sendfdbk.php3 include("include/common.inc"); $title = "Feedback"; include("include/header.inc"); if ( $name == "" ) { // 现在我很讨厌匿名的留言! echo "Duh ? How come you are anonymous?"; } elseif ($name == "Your name") { // 这个浏览者真是不想透露姓名啊! echo "Hello ? Your name is supposed to be replaced with your actual name!"; } else { // 输出一段礼貌的感谢语 echo " Hello, $name. Thank you for your feedback. It is greatly appreciated. Thanking you $MyName $MyEmailLink "; // 最后mail出去 mail($MyEmail, "Feedback."," Name : $name E-mail : $email Comment : $comment "); } include("include/footer.inc"); ?> 3.5
简单
的站内搜索引擎 PHP可以调用外部程序。在Unix环境下我们可以利用程序grep实现一个
简单
的搜索引擎。我们可以做的稍微复杂一些:
使用
一个页面既输出一个表单供用户输入搜索字串又输出查询结果。
if ( ! empty($searchstr) ) { // empty()用来检查查询字串是否为空 // 如果不为空,调用grep查询 echo "\n"; // 调用grep对所有文件进行大小写非敏感模式的查询 $cmdstr = "grep -i $searchstr *"; $fp = popen( $cmdstr, "r" ); // 执行命令并输出管道 $myresult = array(); // 存储查询结果 while( $buffer = fgetss ($fp, 4096)) { // grep返回这样格式: 文件名:匹配字串出现行数 // 因此我们利用函数split()分离处理数据 list($fname, $fline) = split(":",$buffer, 2); // 我们只输出第一次匹配的结果 if ( !defined($myresult[$fname])) $myresult[$fname] = $fline; } // 现在我们将结果存储在数组中,下面就可以处理并输出了 if ( count($myresult) ) { echo "\n"; while(list($fname,$fline) = each($myresult)) echo " $fname : $fline \n"; echo "\n"; } else { // 如果没有查询结果 echo "Sorry. Search on $searchstr returned no results.\n"; } pclose($fp); } ?> 注释: PHP_SELF是PHP内建的变量。包含当前文件名。 fgets()按行读取文件,最多4096(指定)字符长度。 fgetss()与fgets()相似,只是解析输出的HTML标记。 split()有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略":"。 each()是一个数组操作函数,用来更方便的遍历整个数组。 popen()、pclose()与fopen()、fclose()的功能很相似,只是增加了管道处理。 请注意以上的
代码
并不是实现一个搜索引擎的好办法。这只是有助于我们
更好
学习PHP而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索 四、与数据库链接 通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的
使用
方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。 PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说
更好
一些。两者的
使用
语法几乎相差无几。如前所述,你的PHP安装选项应该可以
支持
两者的
使用
。 想获得更多有关在Microsoft Windows平台上安装
支持
PHP3的Apache服务器的知识以及更多有关Oracle数据库的知识,请查阅以下URL:www.csoft.net/~vsbabu/articles/oraphp.html。 4.1 连接 if ($conn=Ora_Logon("user@TNSNAME","password")) { echo "SUCCESS ! Connected to database\n"; } else { echo "Failed :-( Could not connect to database\n"; } Ora_Logoff($conn); phpinfo(); ?> 以上
代码
使用
TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。 4.2 查询 假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的
代码
演示了一个连接并查询的典型例子: /* * 连接数据库并执行查询 */ function printoraerr($in_cur) { // 检查Oracle是否出错 // 如果存在错误则显示 // 当指针被激活时每次请求Oracle后调用该函数 if(ora_errorcode($in_cur)) echo "Oracle code - ".ora_error($in_cur)."\n"; return; } /** 主程序 */ if (!($conn=ora_logon("user@TNSNAME","password"))) { echo "Connection to database failed\n"; exit; } echo "Connected as connection - $conn\n"; echo "Opening cursor ...\n"; $cursor=ora_open($conn); printoraerr($cursor); echo "Opened cursor - $cursor\n"; $qry="select user,sysdate from dual"; echo "Parsing the query $qry ...\n"; ora_parse($cursor,$qry,0); printoraerr($cursor); echo "Query parsed \n"; echo "Executing cursor ...\n"; ora_exec($cursor); printoraerr($cursor); echo "Executed cursor\n"; echo "Fetching cursor ...\n"; while(ora_fetch($cursor)) { $user=ora_getcolumn($cursor,0); printoraerr($cursor); $sysdate=ora_getcolumn($cursor,1); printoraerr($cursor); echo " row = $user, $sysdate \n"; } echo "Fetched all records\n"; echo "Closing cursor ...\n"; ora_close($cursor); echo "Closed cursor\n"; echo "Logging off from oracle... \n"; ora_logoff($conn); echo "Logged off from oracle \n"; ?> (译者注:以上
代码
段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.3 显示结果 以下
代码
演示了怎样查询数据库并将结果输出: function printoraerr($in_cur, $conn) { // 检查Oracle是否出错 // 如果存在错误则显示 // 当指针被激活时每次请求Oracle后调用该函数 // If it encountered an error, we exit immediately if(ora_errorcode($in_cur)) { echo "Oracle code - ".ora_error($in_cur)."n"; ora_logoff($conn); exit; } return; } function exequery($w_qry,$conn) { $cursor=ora_open($conn); printoraerr($cursor,$conn); ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn); ora_exec($cursor); printoraerr($cursor,$conn); $numrows=0; $w_numcols=ora_numcols($cursor); // 显示头部 echo " \n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; echo "\t".ora_columnname($cursor,$i)."\n"; } echo "\n"; while(ora_fetch($cursor)) { echo "\n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; if(ora_columntype($cursor,$i)=="LONG") echo "". ora_getcolumn($cursor,$i)."\n"; else echo "".ora_getcolumn($cursor,$i)."\n"; printoraerr($cursor,$conn); } $numrows++; echo "\n"; } if ($numrows==0) echo "Query returned no records \n"; else { echo "\n"; echo "Count\n"; echo "$numrows\n"; echo "\n"; } echo "\n"; ora_close($cursor); return; } // 主程序 if(!($conn=ora_logon("user@SID","password"))) { echo "Error: Cannot connect to database\n"; exit; } $qry="SELECT deptno \"Dept\" ,empno \"Emp\" ,empnm \"Name\" ,salary \"Salary\" FROM employee ORDER BY 1,2"; exequery($qry); ora_logoff($conn); ?> (译者注:以上
代码
段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.4 基于HTTP的Oracle登录 将以下
代码
加在PHP页面
代码
之前以确认Oracle登录。注意你必须正确设定$ SID。 if(!isset($PHP_AUTH_USER)) { Header("WWW-authenticate: basic realm=\"$SID\""); Header("HTTP/1.0 401 Unauthorized"); $title="Login Instructions"; echo " You are not authorized to enter the site \n"; exit; } else { if (!($conn=ora_logon("$PHP_AUTH_USER@$SID",$PHP_AUTH_PW))) { Header("WWW-authenticate: basic realm=\"$SID\""); Header("HTTP/1.0 401 Unauthorized"); $title="Login Instructions"; echo " You are not authorised to enter the site \n"; exit; } } ?> 五、其它功能 5.1 生成图像 PHP可以操作处理图像。如果你已经安装了GD库,你甚至可以利用PHP生成图像。 (译者注:以上
代码
段缺少注释,请读者参考PHP Manual的图像处理函数部分) 这段
代码
在其他页面中通过以下标记调用,然后以上的那段button.php3
代码
取得text值并在另外取得的图像文件中加上该值--在以上的
代码
中该图像文件是images/button1.gif--最后输出到浏览器。假如你想在表单域中
使用
图像按钮,但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像,就可以利用这样
简单
的方法动态生成图像文件。 5.2 Cookies PHP
支持
基于HTTP的cookies。在需要时你可以像
使用
一般变量一样方便的
使用
cookie。Cookies是浏览器保存于客户端的一些信息片段,由此你可以知道是否一台特定PC上的任何人都访问过你的站点,浏览者者在你的站点上的踪迹等等。
使用
cookies的典型例子就是对浏览者偏好的甄别。Cookies由函数setcookie()设定。与输出HTTP标头的函数header()一样,setcookie()必须在任何实际内容杯输出到浏览器之前调用。以下是一个
简单
例子: if (empty($VisitedBefore)) { // 如果没有设定cookie,为cookie赋上当前时间值 // 函数中的最后一个参数声明了该cookie保存的时间 // 在这个例子中是1年 // time()函数返回自1970年1月1日以来的以秒数计的时间 SetCookie("VisitedBefore",time(), time()+(60*60*24*365)); } else { // 欢迎浏览者再次光临 echo "Hello there, welcome back"; // 读取cookie并判断 if ( (time() - $VisitedBefore) >= "(60*60*24*7)" ) echo "Why did you take a week to come back. You should be here more often!? "; } ?> 5.3 基于HTTP验证 基于HTTP验证当PHP以CGI模式运行时不能实现。我们可以
使用
函数header()发送HTTP标头强制验证,客户端浏览器则弹出供输入用户名和密码的对话框。这两个变量被储存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以
使用
这两个变量验证合法并允许进入。以下的例子通过用户名称/密码对为tnc/nature的验证一名用户的登录: 事实上再实际引用中不大可能如上面
使用
代码
段明显的用户名称/密码对,而是利用数据库或者加密的密码文件存取它们。 5.4 文件上传 你可以利用PHP实现文件的功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上。以下就是该功能的
简单
演示: ( upload.html ): Upload Your File (You may notice a slight delay while we upload your file.) 下面是处理上传的文件: ( receiver.php3 ): 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } $the_time = time (); // 你需要对以下目录有写权限 $upload_dir = "/local/uploads"; $local_file = "$upload_dir/$the_time"; if ( file_exists ( '$local_file' ) ) { $seq = 1; while ( file_exists ( "$upload_dir/$the_time$seq" ) ) { $seq++; } $local_file = "$upload_dir/$the_time$seq"; }; rename ( $uploadfile, $local_file ); display_page (); } function display_page () { // 这里是你的页面内容 } php3 Receiving Script if ( $error_msg ) { echo "$error_msg"; } if ( $sendit ) { do_upload (); } elseif ( $cancelit ) { header ( "Location: $some_other_script" ); exit; } else { some_other_func (); } ?> 5.5 常用函数 我们
简单
来看看一些常用的函数。 数组 array - 生成数组 count - 数组元素个数 sort - 数组排序,另有其他几种排序函数可供
使用
list - 列出数组元素 each - 返回下一个key/value对 current - 返回当前数组元素 next,prev - 传回当前数组元素前后指针 日期和时间 checkdate - 验证日期/时间格式 date - 生成日期/时间格式 time - 当前时间信息 strftime - 格式化日期/时间 目录、文件系统 chdir - 改变目录 dir - 目录类别 opendir, readdir, closedir - 开启、读取、关闭目录 fopen, fclose - 开启、关闭文件 fgets, fgetss - 逐行读取内容 file - 将整个文件读入一个数组变量中 正则表达式 ereg - 匹配正则表达式 eregi - 大小写非敏感匹配正则表达式 ereg_replace -匹配正则表达式并替换 eregi_replace -大小写非敏感匹配正则表达式并替换 split - 依规则切开字符串并以数组形势存储 字符串 AddSlashes - 加上斜杠后
使用
字符串 echo - 输出一个或多个字符串 join, implode - 将数组元素合并为字符串 htmlentities, htmlspecialchars - 将HTML特殊字符转换为HTML标记形式 split - 依规则切开字符串并以数组形势存储 5.6 扩展我们的范例主页 我们将
使用
以上提到的一些函数和思想为我们的范例主页添加更多的动态内容。我们可以在每个页面的顶部加上导航栏,同时使得当前页自动的不被链接显示;同时还可以添加一个用户验证表单以便上传音乐、图像等文件并自动更新页面。 导航栏 实际上就是在footer.inc文件中加上一段
代码
。假设你的web站点中所有后缀为.php3的文件都会出现在导航栏中,以下就是被存为include/navbar.inc的
代码
: /* 输出该导航栏,链接所有除当前页的站内.php3文件 */ # 读取目录 $d = dir("./"); echo " | \n"; while($entry = $d->read()) { // 忽略无文件情况 if ( !is_file($entry) ) continue; /* 将文件名与扩展名分开。由于.是正则表达式特殊字符,应该用\引出 */ list($filenm, $fileext) = split("\.",$entry, 2); // 忽略非.php3文件情况 if( $fileext != "php3" ) continue; /* 现在我们已经把.php3文件都选出,下面搜寻文件中的第一行(标题) 类似$title="something"; 并将以上标题内容分开,用作链接文字 */ $linknm = ""; $fp=fopen($entry,"r"); while($buffer=fgets($fp, 4096)) { $buffer = trim($buffer); // 我们已经把每个文件的标题放在文件的第一行以便搜索 // 但是当你改变变量名称时可能会带来大麻烦 if (ereg("title *= *\"", $buffer)) { /* 我们已经取得了标题内容并可以在此基础上 进行去除空格等处理。 必须以PHP
代码
方式处理,比如$title = "blah blah" */ eval($buffer); // 然后将链接文字显示为标题文字 $linknm = $title; break; } } fclose($fp); if ( $entry == basename($PHP_SELF) ) echo "$linknm"; else echo "$linknm"; echo " | "; } $d->close(); echo " \n"; ?> 照片收藏夹 我们将引用基于HTTP的验证、文件系统函数和文件上传功能维护放置图像文件的目录。 同时我们需要建立一个可以列出在该目录下所有照片的页面。 文件上传 include("include/common.inc"); // 我们在这里再做一次用户验证 if(!isset($PHP_AUTH_USER)) { Header("WWW-Authenticate: Basic realm=\"$MySiteName\""); Header("HTTP/1.0 401 Unauthorized"); echo "Sorry, you are not authorized to upload files\n"; exit; } else { if ( !($PHP_AUTH_USER==$MyName && $PHP_AUTH_PW==$MyPassword ) ) { // 如果是错误的用户名称/密码对,强制再次认证 Header("WWW-Authenticate: Basic realm=\"My Realm\""); Header("HTTP/1.0 401 Unauthorized"); echo "ERROR : $PHP_AUTH_USER/$PHP_AUTH_PW is invalid."; exit; } } if ( $cancelit ) { // 当浏览者按下"取消"按钮则转向首页面 header ( "Location: front_2.php3" ); exit; } function do_upload () { global $userfile, $userfile_size, $userfile_name, $userfile_type; global $local_file, $error_msg; global $HTTP_REFERER; if ( $userfile == "none" ) { $error_msg = "You did not specify a file for uploading."; return; } if ( $userfile_size > 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } // Wherever you have write permission below... $upload_dir = "photos"; $local_file = "$upload_dir/$userfile_name"; if ( file_exists ( $local_file ) ) { $error_msg = "Sorry, a file with that name already exists"; return; }; // 你还可以由此检查文件名称/类型对以确定是何种文件:gif,jpg,mp3… rename($userfile, $local_file); echo "The file is uploaded\n"; echo "Go Back\n"; } $title = "Upload File"; include("include/header.inc"); if (empty($userfile) || $userfile=="none") { // 输出以下表单 ?>
(You may notice a slight delay while we upload your file.) } else { if ( $error_msg ) { echo "$error_msg"; } if ( $sendit ) { do_upload (); } } include("include/footer.inc"); ?> 照片图库 Here are some of our family photos. This PHP script can really be made better, by splitting into multiple pages. read()) { if (is_file("photos/$entry")) echo "\n"; } $d->close(); ?> 另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段
代码
所读出并显示出来。 六、网络资源 你可以通过web上的众多资源更多的了解PHP3。许多邮件列表和书籍对你都非常有用。 6.1 站点 PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程、范例
代码
、技巧和提示等内容。 国内 http://www.phpuser.com - PHP中文用户,也就是这里了 http://www.phpx.com - 中国PHP联盟 http://www.phpsite.net - PHP专门站 http://www.phpchina.com - PHP CHINA http://www.cpcw.com/netschool/homepage/cgi/ - 电脑报网页陶吧 国外 http://www.php.net/ - PHP官方站点 http://www.devshed.com/ - 极好的教程 http://px.sklar.com -
代码
交换 http://www.phpbuilder.com/ - 教程、专栏和邮件列表档案 http://www.weberdev.com/ - 文章和
代码
http://www.phpwizard.net/ - 提示与技巧 http://www.iometrics.com/php/phplist.php3/ - IOMetrics scripts的档案 http://www.e-gineer.com/phpkb/ - PHP知识库 6.2 邮件列表 你可以在PHP官方站点的"
支持
"栏目内登记获得以下的邮件列表。值得注意的是这些都是高流量流表,一般每天会有100份e-mail。 php3@lists.php.net - 主要的列表 php-dev@lists.php.net - 主要针对开发者 php-list@exp.com.cn - 本站的邮件列表,与论坛相通 6.3 引人注目的工程 一些基于PHP的工程已经发展得比较完善。其中一些更出色更引人注目的是: http:// phplib.netuse.de - PHPLib,一整套PHP函数库 http://www.phorum.org - Phorum是一个很完善的BBS系统 http://www.fishcartsql.org - FishCartSQL是一个电子商务解决方案 http://www.midgard-project.org - Midgard是一个网络应用开发平台 Generated by Bo-blog 2.0.2 sp2
epson counter reset
A、废墨清零软件 http://dgyz.noip.cn/xinyundown/down.
asp
?ID=69 http://down.52happy.net/download.
asp
?id=270&downid=14 SSC Service Utility3.80 (爱普生打印机清零软件)说明 一. 主程序窗口 在系统托盘中图标上单击右键,出现菜单,单击“show main window” 出现主程序菜单。精灵的主程序窗口有两个选项:墨水监测(ink monitor)与设置(configuration) 1. 墨水监测窗口 包括三项功能:ink monitor 柱状图 Monitor Type 监测类型 Refresh 刷新 N 柱 状 图:在正常模式下,显示当前墨水剩余容量 监测类型: Printer Report: 在正常模式下,显示每一种颜色的墨水剩余容量,这个功能可以显示所有的系统安装的EPSON的打印机的墨水剩余容量。 Head ink shots:显示打开打印机到完成某一打印任务后,每种颜色的墨水消耗量。即使打开打印机时没有运行此程序,在打印任务完成后也可显示。 Refresh: 刷新监测类型数据。 2.设置窗口(下图)Installed Printer: 选择系统安装的打印机 ? Print model: 选择和系统所安装的打印机对应的类型。(这个选项中的打印机为此精灵 所
支持
的打印机) Do not load Epson status agent service at startup:在电脑重新启动时,把EPSON墨水监视程序从内存中去掉,这个功能在精灵报错时是非常有用的。 Start utility at Windows startup:选择此项,在下次电脑重新启动时,会以最小化的方 式启动精灵,这个功能在
使用
墨水冻结功能时是非常重要的。 注意:精灵会记住你所有的设置,所以,在下次启动时你不需要重新设置。关闭主窗口,精灵会以最小化的方式存在于系统托盘中。 二. 芯片刷新功能(Reset Counters Functions) 这功能专用于刷新墨盒芯片。EPSON的打印机为了防止墨盒填充,设置了墨水记数芯片。精灵能直接对芯片进行操作,精灵能
支持
大部分的机器。少数的机器的芯片刷新需要用墨水冻结功能与一些特殊的方法。在后面会介绍到。 Reset all counters:可以刷新所有的颜色,在很多类型的打印机上是工作得非常好的。对空墨盒也可以。 Reset all color counters:刷新所有的彩色。 Reset black:刷新黑色 Reset cyan: 刷新兰色 Reset magenta: 刷新红色 Reset yellow: 刷新黄色 Reset light magente: 刷新浅红色 Reset light cyan : 刷新浅兰色 Reset gray : 刷新灰色 注意: 1.一些的打印机菜单上的某些功能是不能
使用
的是正常的。 2.用完任何一种色彩后,必顺关掉打印机20秒后再打开。对一些的机型要采用拔掉电源的方式关掉打印机。 三. 墨盒交换功能(又称热交换) 什么是热交换?墨车在停车位时机器会读取芯片的数据,将有墨水的墨盒放入打印机,墨水的数据就会被打印机读取,如果让打印机检测不出更换墨盒,可以把一个空墨盒放入打印机。当墨车回到停车位后,之前读取的数据就会写入这个墨盒。这就是热交换。这是一个实验功能,它允许你在非正常状况下更换墨盒,所以打印机看不到任何更换墨盒的信号。 注意:有时热交换方式会损坏机器。精灵所
支持
的机器不要用这种方式。对于一些高容量的墨盒可能有用,但没有测试,在热交换时请不要拿错墨盒。在热交换过程中万一发生撞车或者听到一些异样的声音或者看喷头移到最左边,请不要管它。 单击“Move head back to parking position” Move head to exchange position:移动墨车到交换点 Move head back to parking position:把墨车移回停车点(绝对不能用手移动) Move head back safely: 允许你用手将墨车从任何一处移回停车点(这是非常安全的,但有时打印机也能识别出更换过的墨盒) 四. 喷头清洗功能 清洗濆头会消耗大量的墨水,这个功能可以实现正常清洗、分颜色清洗、强力清洗。 Black head cleaning:仅仅清洗黑色墨头 Universal black:清洗不
支持
的机器的黑色墨头 Color head cleaning:仅仅清洗彩色墨头 Uuiversal color:清洗不
支持
的机器的彩色墨头, Alternative color:
支持
老型号的打印机彩色喷头的清洗 Normal cleaning:正常清洗 Powerful cleaning:强力清洗,会浪费很多墨水,常用于堵头后的清洗。 Initial charge:仅仅用服务,
使用
一次大约有浪费三分一的墨水,也可用于喷头清洗。 Print nozzle check pattern: 打印墨头检测图案,用于测试是否堵头。对于一些老型号的机器和不
支持
的机器不能
使用
。 五. 清零功能 (Protection Counter Functions) 应该说:epson为了更多的赚钱才设置这项功能的。我听多了epson的狡辩。客户去维修中心解决这个问题,居然要花100元,而EPSON从来也没更换墨垫。废墨
计数
:在EPSON打印机(甚至HP、CANON的一些打印机中也有), 专门设置一个段程序以检测客户清洗及开机的次数,客户每开一次机或每清洗一次这个
计数
器
就会累计,到一定数量,机器就不能打印。有些机器电源灯用进纸灯交替闪烁,喷头不会移动。EPSON说要更换墨垫,清零后,其实不用更换也可以
使用
。我没有见过EPSON给那个客户换过。废墨垫老化可能也是部分连续供墨墨水漏的原因,但漏墨水现象也在一些新机器上发生。 Show current value :显示当前
计数
器
数值 Reset protection counter: 清零 注:清零后请重新启动打印机。这项功能对于一些老型号的机器会出错。 部分型号的机器手工清零程序: 1. 关掉打印机 2. 手工清零 3. 重新启动打印机 手工清零: Epson stylus color:同时按住ALT+FONT+LOAD+PAUSE,然后按下电源键,机器有反应时松开所有的键 Epson stylus color 300:同进按住LOAD/EJECT+CLEANING键,然后再住电源键不放直到喷头有反应。最后松开所有的键。在2-3秒后再按住LOAD/EJECT+CLEANING键。 Epson stylus color 400.600:同进按住LOAD/EJECT+CLEANING键,然后再住电源键不放直到喷头有反应。最后松开所有的键。在2-3秒后松开LOAD/EJECT键。 Epson stylus color440,640.740.460.660.670.760.860.880..1160:同进按住 LOAD/EJECT+CLEANING键,然后再住电源键不放直到喷头有反应。最后松开所有的键。在2-3秒后再按住CLEANING键。直到看到机器有反应。 Epson stylus color 680: :同进按住LOAD/EJECT+CLEANING键,然后再住电源键不放直到喷头有反应。直到你看到墨水显示灯闪动与纸从出口出来,最后松开所有的键。在2-3秒后再按住CLEANING键。直到看到机器有反应 Epson stylus color 800,850: :同进按住LOAD+CLEANING COLOR+CLEANING BLACK键,然后再住电源键不放直到喷头有反应。直到你看到墨水显示灯闪动与纸从出口出来,最后松开所有的键。在2-3秒后再按住CLEANING COLOR键。直到看到机器有反应 Epson stylus color 900,980: :同进按住LOAD/EJECT+CLEANING键,然后再住电源键不放直到喷头有反应。直到你看到墨水显示灯闪动与纸从出口出来,最后松开所有的键。在2-3秒后再按住CLEANING 键直到12-13秒。 Epson stylus color 3000:同进按住FAUSE+LF/FF+DOWN ARROW键,然后再住电源键不放直到喷头有反应。最后松开所有的键。 Epson stylus Photo 785.895:同进按住MAINTENANCE+ROLL APER键,然后再住电源键不放直到喷头有反应。你将看到指示灯闪烁,最后松开所有的键。在2-3秒后再按住ROLL APER 键直到12-13秒。直到指示灯闪烁。 Epson stylus photo 890,1280,1290: 同进按住MAINTENANCE+ROLL APER键,然后再住电源键不放直到喷头有反应。你将看到电源指示灯闪烁,最后松开所有的键。在2-3秒后再按住ROLL APER 键直到12-13秒。直到指示灯闪烁。 六. 芯片数据冻结功能 这个功能允许你去欺骗喷墨打印机数据系统,针对一些特殊型号的打印机。 通过这个功能你能读取芯片上的墨水数据,并能保存成一个数据文件。然后可以把保存数据 文件写入墨盒芯片。 Store counters values:这个功能将储存当前状态墨水数量的情况。 注意:每一种型号的打印机独立的储存一个数据文件。在开始大量的打印工作用这个功能也是可行的,然后你可以将它缩小到系统盘中开始打印。 Restore values back: 这个功能是恢复所有的储存数据到打印机上。 Automatic freezer: 这个功能允许你打开/关闭构造在墨水数据自动冻结里。精灵将会记住这个设置,然后开始启动,这将允许你去完成自动保护模式。 注意:自动冻结将保存内部的数量 New cartridge installed: 七. Extra Functions(其它功能) Power on printer init: 重新启动打印机,同电脑的重新启动原理一样. Soft reset:初始化打印内部的一些参数和变量,也就是说把一些打印机内部的参数及变量恢复到出厂状态。 注意:作者说这两个功能仅仅是实验用的,所以有时并不起到任何作用。 Disable/enable CSIC: 把机器刷新成永久状态,或恢复成普通状态。 注意:这个功能只是改变了机器内部的一些参数,并不是真正的把墨盒的芯片刷新成了永久芯片。刷新后要重新启打印机,以后无论这个机器在任何一台电脑上
使用
都不用再刷新了,但还是有一些问题,比如打印一段时间后,有两个灯交替闪烁(不是废墨需要清零),这时只要把打印机恢复到普通状态,再刷新成永久状态即可。另外,对于部分打印机,刷新成永久状态后,把芯片取下来也可以正常打印。 Make test report:测试打印机,生成一个文件testrep.txt,这个文件保存在程序所安装的目录下。里面包含一些打印机相关的数据。 八、FAQ(常见问题) 1.
使用
精灵程序我要做什么? 精灵程序只
支持
EPSON打印机,并且打印机必须安装驱动程序,用USB或LPT线将打印机连接到程序所在的电脑(这个程序不能在网络上操作)这个程序可以在98/me/2000/xp下
使用
。墨盒的芯片必须有墨。 2、我有C41/C42xx/C61/C62/C82/Photo830机器,但是我不能用程序刷新? a. 这几种型号的机器用“reset counters”这个菜单无法刷新,但是你能用“ink freezer”这个功能。 b.下面的是刷新C42/C62的方法: ⑴移动墨盒到热交换点; ⑵取墨盒 ⑶你能看到芯片,芯片的引脚顺序如下: 123 4567 ⑷用薄胶带把引脚1盖住 ⑸安装好墨,同样注意,你能交换黑墨盒和彩色墨盒的芯片 ⑹移动墨盒到原点,关闭打印机 ⑺打开打印机,这时候你可以试一试“reset counters”这个功能 ⑻如果“reset counters”这个功能不行,你要重新启动打印机,打开打印机后,会提示,墨盒安装错误,并且红灯闪烁,这时,彩色和墨色墨盒会变满,一段时间后红灯会灭掉。 ⑼如果墨盒没有变满,依次重复上面7步。 ⑽移动胶带,常
使用
。 注意:以上方法对兼容墨盒无效。 “ink freezer”是怎样工作的?非常
简单
:打开打印机,然后“store ”,打印机正常工作,关闭打印机之前“restore values back”。
使用
精灵程序出现如“Print off”或“Communication error”时,应该怎么做? 试着把EPSON墨水监测程序从内存中去掉或重新安装驱动程序,或者重新启动打印机,或者检查数据线。 如何判断我的老型号的打印机是否被精灵程序
支持
? 选择“Unsupported model”用“Make test report”生成一个测试报告文件testrep.txt,查看这个文件的大小,如果小于4KB就说明
支持
,这时要用LPT线连接,才能
使用
程序的一些功能。
SmartStat流量统计系统 3.3.rar
SmartStat是由仙人掌软件全力打造的一款流量统计系统。系统提供了在线用户统计、页面访问、来路统计、IP、关键词统计,统计直观(Flash图形报表)!SmartStat流量统计系统采用了全新高效的程序算法和精心优化的数据库结构,在图表展示方面采用FusionCharts组件生成FLASH图表,现已具备网站访问统计系统所必须的大部分功能,并且正将这些功能一步步完善。 友情提醒: 此版本为该产品的终极版本,从2013年10月8日该产品将停止更新,感谢多年来大家对仙人掌软件和该产品的
支持
,谢谢。 2013-10-08 采用外部接口程序(原采用本地IP库,影响访问速度)获取IP地址以及所有省份,城市; SmartStat流量统计系统 3.0 版本为一个全新的版本,完全将以前的版本推翻重写,重写部分达95%以上,无论是在统计的机制还是速度、准确度方面都有质的提升,同时推出了多站点版本(同时可以统计多个网站,满足架设一套系统,统计多个站点的功能,每个不同的站点可以单独授权,单独登录,单独查看统计报表情况),其它的模块功能有:概况、在线用户、访问明细、时段分析(时段分析、日段分析、月分析)、搜索引擎(搜索引擎、关键字)、客户端(操作系统、浏览器、语言、屏幕大小、屏幕色彩、时区、是否安装Alexa、地区分布、省份分布)、用户忠诚度分析(回头客、浏览深度)、内容分析(来路域名、来路页面、受访域名、访问IP、受访页面)、插件管理(网站配置、站点初始化、统计
代码
)、系统工具(系统配置、网站管理、用户组管理、备份数据、库数据库压缩、恢复数据库)等。 SmartStat的发展离不开大家的
支持
,欢迎有志于参与SmartStat基础建设和发展的各位朋友! 目前SmartStat可以实现的基本功能如下: 访问量和浏览量的统计 SmartStat 保存每一小时的访问量和浏览量,可以通过形式多样的图示或表格来显示这些记录。 除了提供常用的每日24小时的流量报表、每月中各日的流量报表及月报表外,还提供了历史流量查询功能,通过此功能,您可以查到自开始统计以来任一小时或者任一天的流量,并且可以把多达连续240小时或者120天的数据放在同一张图表中查看。 访问量:网站被访问的次数;浏览量:网站的网页被浏览的次数。同一次访问可能浏览多页。 客户端信息统计 SmartStat 对客户端信息的统计相当完善,提供了对客户端操作系统、浏览器、屏幕大小及色彩、语言、时区、Alexa工具条(v2.2)、IP地址和地区、省份的统计。 通过对客户端UserAgent的详尽分析,SmartStat对客户端操作系统及浏览器的判断非常完整和准确,提供了对同时安装IE和MYIE2的用户的浏览器分析的
支持
。 页面和入口分析 SmartStat 可以统计到网站中每一页的浏览量,就好像为网站的每页都安装了一个
计数
器
一样。系统记忆每一页当日、昨日和累计的浏览量。 除了对页面的浏览量进行分析外,还对访问者进入您的网站时访问的第一页(入口网页)进行统计,我们可据此知道某个网页在搜索引擎中的地位或者被别的网站连接的情况。 来路分析 大多数时候我们并不知道我们网站的流量来自哪里,是朋友们直接输入网址访问的呢,还是从别人的论坛里正在讨论你的网站的贴子中点击链接进入你的网站的,或者是在别处点击链接进入你的网站的。来路分析功能帮您完成了这样的分析。 SmartStat 将同一个来路站点的流量积累到一起来记录,这种方法大大节省了数据库
空间
,使SmartStat 对大流量的承受能力大大加强。 为了清楚的知道来路站点具体的来路页面,2.2版还特意保存了任一个来路站点最后一个来访页面,以方便站长查阅。 搜索引擎和关键词分析 随着网络的繁荣,Internet上的网站越来越多,在网友们寻找资源困难的同时,让网友们知道并访问我们的站点变得越来越困难。现在,搜索引擎已经成为大多数网友寻找资源的重要工具,让我们的网站在搜索引擎中占据一席之地成了网站推广的重要一环。 现在,搜索引擎来访已经成为不少站点的主要来访途径之一,SmartStat可以帮助站长了解各个搜索引擎来访量的情况,并且知道来访者是搜索什么样的关键词进入您的网站的。更可贵的是,SmartStat不仅保存了累计的数据,还保留了当日的、昨日的数据。这些重要信息在站长的工作中开始发挥起越来越重要的作用。 目前可识别以下搜索引擎及相应的关键词: Google、百度、雅虎、人民搜索、腾讯SoSo、必应、搜狗、有道 受欢迎度分析 每个站长都希望来访者尽量多的浏览网站的页面,并且希望来访者成为铁杆的回头客,因为这是网站受欢迎度的最好证明。SmartStat 可以对用户的来访次数和一次访问浏览
用Flash结合
ASP
制作
计数
器
用Flash结合
ASP
制作
计数
器
Blackflash虽然现在有很多网站提供免费的
计数
器
,如果自己能动手做一个不是
更好
吗?所以今天我就教大家通过Flash结合
ASP
来制作
计数
器
。1.新建一个文件,把当前层命名为“背景”,可以自己选择颜色,你也可以在此层中加入Movie Clip,这样可以让你的
计数
层更加动感,这可是文本
计数
器
不可能实现的。再新建一层,命名为
ASP
.NET 的性能
计数
器
ASP
.NET 的性能
计数
器
ASP
.NET
支持
两组性能
计数
器
:系统和应用程序。 系统性能
计数
器
在 Windows 性能监视器中作为“
ASP
.NET”性能
计数
器
对象公开。 应用程序性能
计数
器
作为“
ASP
.NET 应用程序”性能对象公开。 注意 与每个性能
计数
器
关联的值每 400 毫秒更新一次。 创建监视应用程序时,请务必考虑这
ASP
28,391
社区成员
357,060
社区内容
发帖
与我相关
我的任务
ASP
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
复制链接
扫一扫
分享
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章