PHP编程小结

扩展库

l通过标记中的src属性,不但可以调用同一个服务器上的JS文件,还可以通过指定路径来调用其他服务器上的JS文件

日期和时间

Ø更改PHP语言中的时区设置有两种方法:修改php.ini,在[date]下的“;date.timezone=”选项,将其修改为“date.timezone=Asia/Hong_Kong”;2.在应用程序中,在使用时间日期函数之前添加函数date_default_timezone_set(timezone),timezone为PHP可识别的时区名称。

ØMktime()函数将一个时间转换成UNIX的时间戳(从1970年到现在的秒数)int mktime(int hour, int minute, int second, int month, int day,

int year, is_dst(是否设置夏令时)

ØDate函数可以将UNIX时间戳转换为日期和时间

ØTime()获取当前时间戳

ØDate(string format[, int timestamp])获取当前日期和时间

ØArray getdate(int timestamp )以数组形式返还日期

ØBool checkdate(int month, int day, int year)检验日期的有效期(一年多少天之类)

ØPHP中的时间是不可以直接进行比较的,所以首先要将事件解析为时间戳的格式,然后再进行比较。Strtotime()函数可以完成该操作

Cookie与Session

ØCookie的管理:

nCookie是在HTTP协议下,通过服务器或脚本语言可以维护客户浏览器上信息的一种方式。

nCookie是一种在客户浏览器端粗处数据并以此来跟踪和识别用户的机制。Cookie是Web服务器暂时存储在用户硬盘上的一个文本文件,并随后被Web浏览器读取。当用户再次访问该Web网站时,网站通过读取Cookie文件记录这位访客的特定信息。

nCookie文本文件的命令格式如下:用户名@网站地址[数字].txt。

nPHP中通过setcookie()函数创建Cookie,bool setcookie(string name[, string value [, int ex[ire[, stringpath[, string domain[. Int secure]]]]]]

uCookie是HTTP头标的组成部分,而头标必须在页面其他内容之前发送,因此它必须最先输出。若在setcookie()函数前输出一个HTML标记、echo语句、甚至一个空号都会导致程序出错。

uName:cookie的变量名,可以通过$_COOKIE[“cookiename”]调用变量名为cookiename的Cookie

uValue:Cookie变量的值,该值保存在客户端

uExpire:Cookie的失效时间,如果未设置Cookie的失效时间,则在关闭浏览器时自动删除Cookie数据;如果为Cookie设置了失效时间,浏览器将会记住Cookie数据,即使用户重启计算机,只要没到期,再次访问网站是也会获得数据。

uPath:Cookie在服务器端的有效路径,如果该参数设置为”\”,则它将整个domain内有效;如果设置为“/11”,它将在domain下/11目录及子目录内有效。

uDomain:Cookie有效的域名,如果要是Cookie在mrbccd.com域名下的所有子域名都有效,应该设置mrbccd.com

uSecure:指明Cookie是否仅通过安全的HTTPS,值为0或1,如果为1,Cookie只能在HTTPS连接上有效;默认为0,Cookie在HTTP和HTTPS连接上均有效。

n读取Cookie

u在PHP中可以直接通过超级全局数组$_COOKIE[]来读取浏览器端饿的Cookie值。

n删除Cookie

uSetcookie(“name”,””,time()-1)

nCookie的生命周期

u如果Cookie不设定失效时间,它的生命周期就为浏览器会话期间,这种Cookie被称为会话Cookie,一般不保存在硬盘上,而是保存在内存中。

u浏览器最多允许存储300个Cookie文件,每个Cookie文件支持最大容量为4KB;每个域名最多支持20个Cookie,如果达到限制时,浏览器会自动随机删除Cookie文件。

ØSession

nSession会话文件中保存的数据在PHP脚本中是以变量的形式创建的,创建的会话变量在生命周期(20分钟)中可以被跨页的请求所引用

nSession会话是存储在服务器端的,相对安全,并且不像Cookie那样有存储长度的限制。

nSession工作原理:当启动一个Session时,会生成一个随机且唯一的session_id,也就是Session的文件名,此时session_id存储在服务器的内存中。当关闭页面时此id会自动注销,重新登录此页面,会再次生成一个随机且唯一的id。

n创建会话

u创建一个会话需要通过以下步骤:启动会话à注册会话à使用会话à删除会话

u启动会话,有两种方式:1.

Session_start()函数,2.使用session_register()函数为会话创建一个变量来隐含地启动会话。

lSession_start()函数在页面开始位置调用,然后会话变量被登录到数据$_SESSION。

l使用session_start()函数之前浏览器不能有任何输出。

u注册会话,会话变量被创建后,全部保存在数组$_SESSION中。通过数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可$_SESSION[‘admin”]=xx;

u使用会话:判断会话变量是否有一个会话ID存在,如果存在,则将这个已创建的会话变量载入以供用户使用。如!empty($_SESSION[‘session_name’])) $myvalue = $_SESSION[‘session_name’];

u删除会话:删除会话的方法主要有删除单个会话、删除多个会话和结束当前会话3种

l删除单个会话:即删除单个会话变量,unset($_SESSION[‘user’])

l删除多个会话:$_SESSION= array()

l结束当前会话:session_destroy();

nSession设置失效时间

uSession失效时间设置主要有以下两种方法:

l客户端没有禁止Cookie

n(不推荐)使用session_set_cookie_params($time);示例为$time=1*60; session_set_cookie_params($time); session_start();

n使用setcookie()函数可对Session设置失效时间

uSession_start(); $time = 1*60; setcookie(session_name(),session_id(), time()+$time, “/”);

nSession临时文件存储位置,可以由session_save_path($path)完成

nSession缓存:将网页中的内容临时存储到IE客户端的Temporary Internet Files文件夹下,并可以设置缓存的时间,session_cache_limiter()函数设置缓存;session_cache_expire()设置缓存时间。Session_cache_limiter()和session_cache_expire()必须在session_start()之前调用。

nSession数据库存储bool session_set_save_handler(string open, string close, string

read, string write, string destroy, string gc),其中的参数其实都是函数名

图像支持

文件系统

面向对象

Ø类的定义

class SportObject {

function beatBasketball()($name, $height) {

}

}

Ø类的实例化:通过关键字new来声明一个对象;然后通过对象名->成员方法来调用要使用的方法

Ø成员变量的格式为:关键字成员变量名,关键字可以使用public、private、protected、static、final中的任意一个。访问成员变量的方式也是对象名->成员变量

nProtected:指可以在本类及子类中被调用;

nStatic:不需要实例化对象,直接可调用,“self::静态成员“或者”类名::静态成员”即可访问。可以是静态变量也可以是静态方法。静态方法中只能调用静态变量、不能调用普通变量。

nFinal:被final修饰过的类和方法就是“最终的版本”

uFinal class classname {}说明该类不可以再被继承

uFinal function methodname()说明该方法在子类中不可以进行重写,也不可以被覆盖。

Ø类常量,定义时使用关键字const,如const

PI=3.14159。常量不需要实例化对象,直接由“类名::常量名”调用即可。

Ø构造函数:void

__construct([mixed args [,…]]);如果类中没有构造方法,那么PHP会自动生成一个。自动生成的构造方法没有任何参数,没有任何操作

Ø析构方法:void

__destruct(void)一般情况下是不需要收到创建析构方法的。

Ø继承:class subClassextends superclass { … }

Ø多态:存在两种形式:覆盖和重载,覆盖就是子类和父类中的方法名称及参数完全相同;重载就是方法名称相同,但是参数个数或类型不同。

Ø子类不仅可以调用自己的变量和方法,也可以调用父类中的变量和方法:

n$this->调用本身的变量或方法,$this只能在类的内部使用

n“::”可以在没有声明任何实例的情况下访问类中的成员方法或成员变量。通用格式为“关键字::变量名/常量名/方法名”,关键字分为三种情况:parent(调用父类中的成员变量、方法和常量)、self(调用当前类中的静态成员和常量)、类名(调用奔雷中的变量、常量和方法)

Ø抽象类

n仅能作为其他类的父类来使用,不能被实例化

nAbstract class abstractName{}

n抽象类中至少要包含一个抽象方法,抽象方法没有方法体,abstract function abstractName();

Ø接口的使用

nPHP只支持单继承,如果想实现多重继承,就要使用接口

nPHP可以实现多个接口

n接口类通过interface关键字来声明,并且类中只能包含未实现的方法和一些成员变量,格式为interface InterfaceNmae { function interfaceName1(); }

n不要用public之外的关键字来修饰接口中的类成员,对于方法,不写关键字也可以。

n子类是通过implements关键字来实现接口的,如果实现多个接口,那么每个接口之间应使用逗号“,”隔开。接口类中所有未实现的方法需要在子类中全部实现。

uClass SubClass implement InterfaceName1, InterfaceName2 { }

Ø各个类可以实现自己的复制拷贝函数__clone()

n对象可以调用clone,实现对象的复制;PHP5之后,=默认是指引用

n两个等号“==”是比较两个对象的内容

n三个等号“===”是比较对象的引用地址

ØInstanceof:objectName instanceof ClassName,检测当前对象是属于哪个类

Ø魔术方法__

nPHP中保留了所有以“__”开头的方法,所以只能使用PHP中已有的这些方法,不要自己创建

n__set()、__get()

n__call()

n__sleep()和__wakeup()

u__sleep()可以清除对象并返回一个包含该对象中所有变量的数组

u__wakeup()方法则是恢复在序列号中可能丢失的数据库连接及相关工作。

n__toString()将对象转化为字符串

n__autoload()避免在一个页面引入多个类时需要使用include_once()函数或require_once()函数一个个引入,__autoload()方法可以自动实例化需要使用的类。PHP5将调用__autoload()方法,在指定的路径下自动查找和该类名称相同的文件,如果找到,程序则继续执行;否则,报告错误。

PHP加密技术

Ø单向加密:String

crypt(string str[, string salt]);支持4种算法:CRYPT_STD_DES、CRYPT_EXT_DES、CRYPT_MD5、CRYPT_BLOWFISH

Ømd5():

Øsha1()

Ø

PHP操作MySQL数据库

ØMysql_connect()、mysql_select_db()、mysql_query()、mysql_fetch_array()、mysql_fetch_object()、mysql_fetch_row()、mysql_num_rows()、

PHP数据库抽象层

ØPDO是PHP data object,支持多种数据库,有了PDO,用户不必再使用mysql_*函数

ØPDO构造函数__construct(string $dsn[,string $username[,string $password[,array$driver_options]]])

nDsn是data source name的首字母缩写,包括三个部分:PDO驱动名称(如mysql、sqlite、pgsql)、冒号和驱动特定的语法。

ØInt PDO:exec(string statement)返回执行SQL语句后受影响的行数

ØPDOStatement PDO::query(string statment)参数statement是要执行的SQL语句,他返回的是一个PDOStatement对象

ØPDO事务处理

ØPDO存储过程

ThinkPHP框架

Smarty模板技术

PHP与XML技术

PHP与Ajax技术

ØAjax = Asynchronous JavaScript And XML的缩写

ØAjax在用户和服务器之间引入一个中间媒介(Ajax引擎),Web页面不用打断交互流程进行重新加载即可动态地更新。

ØAjax利用JS将DOM、XHTML(或HTML)、XML以及CSS等技术综合起来,并控制它们的行为

ØAjax技术中,最核心的技术就是XMLHttpRequest

你可能感兴趣的:(PHP编程小结)