phplib基本手册

  • 格式:pdf
  • 大小:299.53 KB
  • 文档页数:14

phplib基本⼿册

⽬录:

⽬录

⼀.本⽂⽬标与声明

⼆.phplib的概述

三.phplib的基本功能介绍

四.phplib基本安装和使⽤

五.如何使⽤phplib数据库驱动(⼀)

六.如何使⽤phplib数据库驱动(⼆)

七.如何使⽤phplib的Session功能

⼋.使⽤phplib编程具体例⼦

九.使⽤phplib编程具体例⼦(⼆)

⼗.使⽤phplib编程具体例⼦(三)

⼀.本⽂⽬标与声明

本⽂可以说是笔者⽤phplib进⾏开发的经验与技巧总结。在开发期间,本⼈⽤phplib和⾃⼰写的⼀些核⼼函数库和类,⽤很短时间就开发了很多⾼效⽽强⼤的程序⼯具,⾜以表明模块化⾯向对象编程的好处。

由于笔者使⽤phplib做开发的时间并不很长,⽽且程序本⾝很多⾼级的算法并没采⽤phplib,因此phplib的很多核⼼⾼级功能也没有完全使⽤。⽔平有限,所以如果出现任何的错误疏漏,请各位不吝赐教。

本⽂的⽬标是期望读者可以在短时间内熟悉phplib的基本功能,并能够利⽤它进⾏中⼩型程序,例如简单的新闻发布,数据查询,简单留⾔本和⼩论坛等。由于篇幅关系,phplib的⼀些⾼级应⽤本⽂并未提及,请各位原谅。

声明:凡是参考本⽂章后如果出现任何错误或者失误,本⼈并不提供任何技术⽀持。

凡是发现本⽂的任何错误,请给笔者发email或者oicq告诉,帮助笔者完善本⽂档。

凡是与标准的phplib有出⼊的地⽅,请⼤家以标准phplib的为依据。

⼆.phplib的概述

现在互联⽹上流⾏着很多优秀的嵌⼊式的脚本语⾔,例如perl,php,asp,jsp等。其中最流⾏的⼀种就是php,它以全部公开代码、开发容易、跨平台、功能强⼤以及⽀持数据库类型繁多等特点赢得了⽹上众多程序员的青睐。

⽽随着php的应⽤和推⼴,php的众多开发⼈员和很多爱好者在php 的基础上开发了很多php的程序库,这些程序库包括了⼤量的类、⽅法、变量和⽅法,能够处理复杂的web资源和提供强⼤的功能,⼤⼤简化了程序设计和提⾼了代码的可重⽤性。其中phplib就是这些库中相当优秀的产品,它特别在数据库访问、数据库驱动以及访问认证和模板等⽅⾯具有很⾼的价值和实⽤性。⽤来开发⼤中型程序是相当适合的。

利⽤phplib可以⾮常轻易的开发出跨硬件、操作系统平台和数据库⽆关的程序,其中很多优秀的程序都是采⽤了phplib来开发的。例如著名的phpslash就是⼀个例⼦。由于有了⾯向对象库和类的⽀持,数据库驱动都由类来完成,因此写程序的时候基本上不需要考虑⽤的是什么数据库和如何驱动数据库,只需要懂得标准SQL语⾔就可以了。phpslash ⼀旦安装好后就可以很好的运⾏,提供优异的⽤户认证功能。即使在不⽀持session的php3下也可以很正常的使⽤session。并且它可以运⾏在nt或者unix平台下,⽀持多达7种数据库⽽程序从⼀个平台或者系统转移到另外⼀个平台或者系统上的时候,程序⾏本⾝⼀个字也不需要改动。

有关phplib的详细信息和⽂档可以到http://www.doczj.com/doc/b2a7e723482fb4daa58d4bf8.html use.de 查找。

三.phplib的基本功能介绍phplib包含了很多功能,提供了众多的函数。然后根据笔者经验,觉得只要很好掌握其中的基本类和⽅法后,平时的⼯作⼏乎都不需要那些额外的⾼级类就可以完成了。1.将数据库驱动和对数据库操作完全分离,这样的好处是对数据库的操作你需要的知识仅仅是SQL语⾔⽽不需要去估计各个不同数据库间的

函数不同,如果需要将程序移植的话,那么phplib的优势⾮常明显。需要修改的仅仅是数据库驱动⽂件,⽽程序⾏⼏乎都不需要修改任何⼀⾏。如果是采⽤具体数据库函数操作的程序(例如⽤MySQL函数编写),那么移植起来⼏乎是等于重新编写。区别⼀看就知道了。2.⽀持Session,这个功能可以创建⼀个受保护的页⾯。它可以⼴泛的应⽤到需要进⾏登陆或者依靠帐号和权限来判别的程序。例如论坛、虚拟社区、新闻发布、⽤户管理、电⼦商务等。⽽且这个和纯粹的cookie 不同,采⽤了 base_64的编码和解码。因此⼀般并不容易破译。为了加强安全性,⽤户可以⾃⼰编写⾃⼰的编码⽅式取代它原来的编码⽅式。

同时phplib还将每⼀个会话都保存到数据库中,因此可以通过查询数据库值得有多少⽤户在线上。3. 权限许可(Perm),这个功能可以定义⼀系列具有不同级别和权限的⽤户。不需要编程⼈员额外地⾃⼰编写相应功能的代码就可以实现了分级管理和限制。同时可以利⽤phplib中page/admin⽬录中的管理程序创建⽤户和修改相关信息。编程⼈员可以修改这些程序来服务⾃⼰的系统,节省了⼤量时间。4. 模板templete,和FastTemplete类似的是,phplib也有⾃⼰的模板功能类和⽂件。让⽤户可以⽅便的创建和修改html模板,并且将 php

代码和html代码分离。便于让程序员和美⼯良好的合作。phplib的模板采⽤了定义标记和语法分析、模式匹配等技术,从⽽实现了和FastTemplete类似的功能。编程⼈员可以根据实际的需要对这个功能代码进⾏修改以满⾜⾃⼰需求。5.购物车Cart,这个是个⽐较简易的购物车,各种物品和项⽬可以存放到车中,也可以被取出来,通过⼀些改造后也可以将这个功能做成电⼦商务中流⾏的购物系统的。6.Html部件,在phplib中还有⼀些称为"HTML Widgets"的东西,可以⽅便地⽣成窗⼝/表格等。具体可以参考phplib⼿册。这⾥不再赘述。

四.phplib基本安装和使⽤

要想使⽤phplib强⼤的功能,有⼏种途径可以达到⽬的。1.采⽤phplib建议的安装⽅式,说安装,其实就是把phplib的类预先让解析器加载到内存,这样使⽤的时候就不需要做任何设置,这样的好处显⽽易见。不过缺点也是很多的,如果程序按照这个⽅式直接引⽤phplib的函数的话,对于⼀些采⽤虚拟主机的⽤户来说,如果ISP的服务器没有安装phplib的话,就不可以直接使⽤phplib了。所以这个⽅式的前提是:你的ISP⽀持phplib或者你有权限控制web 服务器,对于⼀般⽤户在⾃⼰机器上调试的话,这个⽅式⽐较好。

详细做法这⾥不再赘述,只简单说个过程⽽已:a.下载phplib最新包,并解压好。

b.将⾥⾯的php⽬录的内容放到⼀个安全的地⽅,例如

/usr/local/phplib下

c.将这个⽬录的路径名添加到php3.ini/php.ini的include关键字段后include .:/usr/local/phplib

然后在找到auto_prepend_file关键字改成:auto_prepend_file = prepend.php3

重新启动⼀次web服务器,⽤phpinfo()函数检查包含路径和⾃动预加载参数,如果显⽰的值和刚才设定的⼀样的话就证明成功了。

更加详细的安装/设定可以参考phplib的⽂档。2. 包含的⽅式。这个⽅式就是⽐较⿇烦,但是好处就是对于使⽤虚拟主机的⽤户来说,可以不需要ISP⽀持phplib就能享受phplib的功能。基本⽅法很简单,可以在使⽤到phplib功能的程序最顶部加⼊相应的包含⽂件。不过要注意⽂件之间的相互依赖关系,下⾯是⼀个简单例⼦,它可以调⽤到基本的 MySQL数据库驱动功能和Session功能:$LIBDIR = " /usr/local/phplib ";

require($LIBDIR . "db_mysql.inc");

require($LIBDIR . "ct_sql.inc");

require($LIBDIR . "session.inc");require($LIBDIR . "local.inc");

require($LIBDIR . "page.inc");

五.如何使⽤phplib数据库驱动(⼀)

第⼀部份:数据库连接/查询a.四步曲:

【ChinaByte 教程】1.要根据库中的DB_Sql来编写⼀个类,这个只需要在你的顶层包含⽂件中定义好就⾏了,同⼀个程序使⽤时不需要重定义,例⼦是:class slashDB extends DB_Sql

{

var $classname="slashDB";

/**** Remember to change the below items to match your db *****/ var $Host = "localhost";

var $Database = "abc";

var $User = "abc";

var $Password = "abc";

function halt($msg){

printf("数据库出现错误!: %s \n", $msg);

printf("MySQL 错误!: %s (%s) \n", $this->Errno, $this->Error); printf("请联系WebMaster并报告此出错信息得详细内容。\n ");

die("Session 挂起。");

}

}

其中slashDB的名字是任意的,根据编程者的喜好设定,不过都建议⽤extends语句⽣成的类的名字最好都有DB两个字。例如userDB,slashDB。并且$classname要和class slashDB extends DB_Sql中slashDB⼀样!否则类定义出错。其他需要修改的仅仅是类的名字,$classname,$Host,$Database ,$User,$Password等需要修改。函数halt是错误提⽰。你可以⾃定义到⼀个页⾯。2.使⽤编写好的类的时候,⽤new关键字 $abc = new slashDB; 其中$abc 是个变量名,这代表你要使⽤slashDB类的功能。

3.查询数据库

⼀般有2个⽅法,短的查询直接将语句写到函数,长的就先⽤⼀个变量分别储存再查询。a. 短语句:

$abc->query("SELECT * FROM user WHERE username='kk' AND passwd='kk' ");

注意的是这⾥是⼀个调⽤slash类中的⽅法query,并且数据库查询语句不能漏了" ",否则出错。b.长语句

$q = "SELECT username,passwd,email,nation,url,edulev";

$q .= ",seclev FROM user WHERE username='$username' ";

$q .= "AND aid='$aid' ORDER BY ID DESC";

$abc->query($q); //这⾥才执⾏查询

采⽤了短语句合成长语句的⽅法。其中需要注意的是第⼀个$q是起始的语句,不能跟“.”号!

接着同名的$q就是需要和第⼀个$q合成的变量,其实是同⼀个变量但是分别赋⼀个长语句的不同部分。因为为了避免互相覆