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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,524评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,869评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,813评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,210评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,085评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,117评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,533评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,219评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,487评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,582评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,362评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,218评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,589评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,899评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,176评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,503评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,707评论 2 335

推荐阅读更多精彩内容

  • 从三月份找实习到现在,面了一些公司,挂了不少,但最终还是拿到小米、百度、阿里、京东、新浪、CVTE、乐视家的研发岗...
    时芥蓝阅读 42,138评论 11 349
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,505评论 18 399
  • Php:脚本语言,网站建设,服务器端运行 PHP定义:一种服务器端的HTML脚本/编程语言,是一种简单的、面向对象...
    廖马儿阅读 2,110评论 2 38
  • php.ini设置,上传大文件: post_max_size = 128Mupload_max_filesize ...
    bycall阅读 6,723评论 3 64
  • 叶问3很大的一个看点,应该是泰森和甄子丹的打斗场景吧,相信很多人都乐意看到他俩打斗一番,然后看谁更厉害一些。 只不...
    烦人的昵称阅读 259评论 0 0