PHP开发典型模块

Cookie和Session
Cookie:
cookie是在HTTP协议下,服务器或脚本可以维护客户工作站上信息的一种方式.cookie是访问某个站点时,随某个html网页发送到浏览器上的一小段信息,他以文本文件的形式在客户端计算机上保存.
        文本文件的形式如下: 用户名@网站地址[数字].txt
例如,如果用户的系统盘在C盘,操作系统为window上2000/XP/03,当使用IE浏览器访问web网站时,web服务器会自动以上述的命令格式生成相应的cookie文本文件,,并存储在用户硬盘的指定位置.
        [注意]:在cookie文件夹下,每个cookie文件都是一个简单而又普通的文本文件,而不是程序.cookie中的文件大多是经过加密处理,因此表面看来只是一些字母和数字组合,而只有服务器的CGI才知道他们的真正意义.
        使用cookie可以记录客户的用户ID,密码,浏览过的网页和停留的时间等信息.当再次来到该网站时,网站通过读取cookie,便可得到相应的信息,做出相应的动作.
        cookie常用于以下方面:
1.记录访客的某些信息.例如应用cookie记录用户访问网页的次数,或者记录访客曾经输入过的信息.还可以应用cookie记录访客上次登录时的用户名.
2.在页面之间传递变量.浏览器并不会保存当前页面上的任何变量信息,当页面被关闭,页面上的所有变量信息将随之消失,如果用户声明一个变量id=5,要把这个变量传递到另一个页面,可以把变量id以cookie的形式保存下来,然后在下一页通过读取cookie来获取变量的值.
3.将所查看的Internet页存储在cookie临时文件夹中,这样可以提高以后浏览的速度.
        [注意]:一般不要用cookie来保存数据集或者其他大量数据,并非所有的浏览器都支持cookie,并且数据信息是以明文文本形式保存在客户端计算机中,因此最好不要保存敏感的,未加密的数据,否则会影响网络的安全性.

创建cookie :
       通过setcookie()函数创建Cookie,在创建cookie之前,首先必须明确cookie是http头标的组成部分,而头标必须在页面其他内容之前发送,他必须最先输出,即使在setcookie()函数之前输出一个html标记或者echo语句,甚至一个空行都会导致程序出错.
setcookie函数语法:
    bool setcookie(string name[,string value[,int expire[,string path[,string domain[,int secure]]]]])
name     : Cookie的变量名;可以通过$_COOKIE["cookiename"]调用变量名为cookiename的Cookie
value     : Cookie变量的值,该值保存在客户端,不能用来保存敏感数据;可以通过$_COOKIE["values"]获取名为values的值
expire    : Cookie的失效时间,expire是标准的Unix时间标记,可以用time()函数或mktime()函数获取,单位是秒;如果不设置Cookie的失效时间,
                那 么Cookie将永远有效,除非手动将其删除.
path      : Cookie在服务器端的有效路径;如果该参数设置为"/",那么他就在整个domain内都有效,如果设置为"/11",他就在domain下的11目
                录 及其子目录内有效,默认是当前目录.
domain : Cookie的有效域名;如果要使Cookie在mrbccd.com域名下的所有子域名都有效应该设置为"mrbccd.com"
secure   : 指明Cookie是否通过安全的HTTPS,值为0或1;如果值为1,则Cookie只能在HTTPS上连接有效,如果为默认值0,则HTTP和HTTPS上都
                有效.
注 : 如果没设置cookie的到期时间,那么将在关闭浏览器时自动删除Cookie数据,,如果为Cookie设置到期时间,那么浏览器将会记住Cookie数
      据,即使用户重新启动计算机,只要没到期,再访问网站也会获得Cookie数据信息.
删除Cookie :
      当Cookie被创建后,如果没有设置失效时间,则文件会在关闭浏览器时被自动删除,那么如何在关闭浏览器之前删除Cookie文件?
有两种方法:
1.   应用setcookie()函数删除Cookie
      删除Cookie和创建Cookie的方法类似.删除Cookie也使用setcookie()函数,删除Cookie只需要将setcookie()函数中的第二个参数设置为
      空,第三个参数将Cookie的过期时间设置小雨系统的当前时间即可.
例如 : 将Cookie的过期时间设置为当前的时间减去1秒,代码为
       setcookie("name","",time()-1);
2.   应用浏览器手动删除Cookie
具体操作步骤:
平常使用的删除浏览器缓存数据就是应用此方法.略

注 :   浏览器最多允许300个Cookie文件,而且每个Cookie文件的大小限制为最大4KB,每个域名最多支持20个Cookie,如果达到限制时,浏览器            
        会有效的随机删除Cookie.
Cookie应用 : Cookie技术实现网站访问量.

Session管理:
Session是指一个终端用户与交互系统进行通信的时间间隔.通常指从注册进入系统到注销退出系统之间所经过的时间.因此,session实际上是一个特定的时间概念.由于网页是一种无状态的连接程序,因此无法得知用户的浏览状态,必须通过session记录用户的有关信息,以供用户再次以此身份对web服务器提供要求时作确认.
例如在电子商务中,通过session记录用户的登陆信息以及用户所购买的商品,如果没有Seesion,那么用户就会每进入一个界面就需要重新登陆的尴尬境遇.

创建一个Session会话需要以下几个步骤:
       启动会话 -> 注册会话 -> 使用会话 -> 删除会话
1.启动会话:
启动php会话有两种方式:
    (1) 应用session_start()函数--------------------------------------------通常在页面开始位置调用.然后会话变量被登录到数据$_SESSION中
          创建会话函数代码 : bool session_start(void)
          注:在使用session_start()函数之前浏览器不能有任何的输出,否则会出现错误
  
    (2)应用session_register()函数
          用来 为会话登录一个变量来隐含的启动会话,但要求设置php.ini文件的选项,将register_globals指令设置为on,然后重新启动Apache服务器
          注:使用session_register()函数时不需要调用session_start()函数,php会在注册变量之后隐含的调用session_start()函数.

2.注册会话:
会话变量被启动后,全部保存在数组$_SESSION中,通过 数组$_SESSION创建一个会话变量很容易,只要直接给该数组添加一个元素即可.
    例如启动会话,创建一个session变量并赋予空值,代码如下:
        <?php
            session_start();                          //启动session
            $_SESSION["admin"]=null;      //声明一个名为admin的变量,并赋予空值
         ?>

3.使用会话:
首先判断变量是否有一个会话id存在,如果不存在,就创建一个,并且使其能够全局数组$_SESSION进行访问;如果已经存在,则将该会话变量赋给$myvalue,代码如下:
<?php
if(!empty($_SESSION["session_name"]))
     $myvalue=$_SESSION["session_name"];
?>

4.删除会话:
删除会话的方法包括:删除单个会话,删除多个会话,以及结束当前会话
(1)删除单个会话:
可以使用unset()函数,代码如下:
         unset($_SESSION["user"]);
注意 : 应用unset()函数时,要注意$_SESSION数组中某元素不能省略,即不可以一次注销整个数组,这样会禁止整个会话的功能
(2)删除多个会话:
如果要一次性删除多个会话,可以将一个空的数组赋值给$_SESSION,代码如下:
          $_SESSION=array();
(3)结束当前的会话:
首先应该注销所有的会话变量,然后使用session_destroy()函数来清除当前的会话,并清空会话中的所有资源,彻底销毁session.代码如下:
          session_destroy();
Session应用 :  Session技术实现网站访问量.

Session和Cookie的比较:
两者最大的区别:Session是将Session的信息保存在服务器上,并通过一个Session ID来传递客户端的信息,服务器在接收Session ID后根据这个    
                          ID来提供相关的Session信息资源;Cookie是将所有的信息以文本文件形式保存在客户端,并由浏览器进行管理和维护.
由于Session为服务器存储,远程用户没法修改Session文件的内容,而Cookie为客户端存储,,所有Session要比Cookie安全的多,当然使用session还有很多优点,比如控制容易,可以按照用户自定义存储(存储于数据库).

遍历数组
遍历数组两种方法:
1.foreach()语句      //foreach语句并非操作数组本身,而是操作数组的一份备份

2.list()函数             //list()函数仅能用于数字索引的数组

字符串和数组的转换
1.explode()函数:将字符串转换成数组
    explode()函数将字符串依照指定的字符串或字符separator切开,语法如下:
    array explode(string separator,string string,[int limit])
如果separator为空字符串(""),explode()函数将返回false;如果separator的值在string中找不到,那么explode()函数将返回包含string单个元素的数组;如果参数limit是负数,则返回除了最后的-limit个元素外的所有元素.

2.implode()函数:将数组的内容转换成一个新字符串
语法如下:
    string implode(string glue , array pieces)   //glue是字符串类型,指要传入的分隔符,参数pieces是数组类型,指传入的要合并元素的数组的变量名称.

字符串替换技术
字符串替换技术最常用的就是在搜索引擎的关键字处理中,可以使用字符串替换技术将搜索到的字符串中的关键字替换为红色,例如查询关键字描红功能,是搜索到的结果更便于用户查看.(适用于模糊查询)

PHP文件
在文件 处理中,主要分为:打开和关闭文件读写文件和操作文件
1.打开和关闭文件,语法如下:
resource fopen(string filename,string mode [, bool use_include_path])     --mode参考php开发典型模块 p60.
        针对参数use_include_path是可选的,该参数在配置文件php.ini中制定一个路径,例如"F:\Webpage\mr\index.php",如果希望服务器在这个路径下打开所指定的文件时,可以设置为1或true.
bool fclose(resource handle);
该函数将参数handle所指向的文件关闭,如果成功返回true,否则返回false,其中的文件指针必须是有效的,并且是通过fopen函数成功打开的文件.
注: 在读写文件时,除了file(),readfile()等少数几个函数之外,其他操作必须要先使用fopen()函数打开文件,最后用fclose()函数关闭文件,而文件的信息函数(filesize();filemtime()...)则都不需要打开文件,只要文件存在即可.

2.文件上传:
通过http协议来实现,使用文件上传功能,首先要在php.ini配置文件中对上传做一些设置,然后要了解一下预定义变量$_FILES,通过$_FILES的值对上传文件做一些限制和判断,最后使用move_uploaded_file()函数实现上传.
预定义变量$_FILES:
    该变量是一个二维数组,保存的信息如下:
        $_FILES[filename][name]------------------------存储了上传文件的文件名,例如exam.txt,myDream.jpg等等
        $_FILES[filename][size]--------------------------存储了文件的大小,单位为字节
         $_FILES[filename][tmp_name]-------------------文件上传时,首先在临时目录中保存成一个临时文件,该变量为临时文件名
        $_FILES[filename][type]--------------------------上传文件的类型
        $_FILES[filename][error]--------------------------存储了上传文件的结果如果返回0,则上传成功.
文件上传函数:
函数语法如下:bool move_uploaded_file(string filename , string destination )        //如果成功返回true,否则返回false
                                                                上传文件的临时名,即$_FILES[tmp_name]/文件上传后保存的新的路径和名称  

php通过伪变量"$this->"和"操作符作用域::"来实现调用其他不相关的类成员.但前者只能在类内部使用,后者在没有任何声明实例的情况下访问类中的成员变量和成员方法.
使用"::"操作符的通用格式:
关键字::变量名/常量名/方法名
这里的关键字分为3种    (1)parent关键字:可以调用父类中的成员变量,成员方法和常量
                                      (2)self关键字:可以调用当前类中的静态成员和常量
                                      (3)类名:可以调用本类中的变量,常量和方法



























评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值