PHP正则表达式之2种模式和Cookie详解(代码实例)

本文目标:

1、了解正则表达式的贪婪模式的定义

2、了解正则表达式的懒惰模式的定义

3、掌握正则表达式的贪婪模式的用法

4、掌握正则表达式的懒惰模式的用法

5、了解PHP中Cookie的定义

6、掌握Cookie的基本用法,获取和设置

(一)、了解正则表达式的贪婪模式的定义

贪婪模式的定义:在可匹配与可不匹配的时候,优先匹配

(二)、了解正则表达式的懒惰模式的定义

懒惰模式的定义:和贪婪模式相反,在可匹配与可不匹配的时候,优先不匹配

(三)、掌握正则表达式的贪婪模式的用法

举例

代码如下:

  1. <?php
  2. //下面的\d表示匹配数字
  3. $p = '/\d+\-\d+/';
  4. $str = "我的电话是010-13875678";
  5. if( preg_match($p, $str, $match) ){
  6. echo "字符串符合规则,匹配结果为:<br/>";
  7. print_r( $match );
  8. }else{
  9. echo "字符串不符合规则";
  10. }
  11. ?>

运行结果为:

字符串符合规则,匹配结果为:

Array ( [0] => 010-13875678

(四)、掌握正则表达式的贪婪模式的用法

举例代码如下:

  1. <?php
  2. //下面的\d表示匹配数字
  3. $p = '/\d?\-\d?/';
  4. $str = "我的电话是010-13875678";
  5. if( preg_match($p, $str, $match) ){
  6. echo "字符串符合规则,匹配结果为:<br/>";
  7. print_r( $match );
  8. }else{
  9. echo "字符串不符合规则";
  10. }
  11. ?>

运行结果为:

字符串符合规则,匹配结果为:

Array ( [0] => 0-1 )

由此可见,贪婪模式是尽可能多的匹配,能多则多,而懒惰模式是尽可能少的匹配,能少则少

(五)、了解PHP中Cookie的定义

Cookie就是一组多组数据,只不过这个数据是存储到客户端的浏览器中,我们通过Cookie来存储用户的部分体积小的数据。比如保存用户的登录账号信息到客户端的浏览器中

(六)、掌握PHP中Cookie的基本用法,获取和设置

1、php中设置cookie,是用方法setcookie,但是setcookie方法其实是有7个参数的,不过常用的参数是以下几个

name( Cookie名)可以通过$_COOKIE['name'] 进行访问

value(Cookie的值)

expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效

path(有效路径)如果路径设置为'/',则整个网站都有效

domain(有效域)默认整个域名都有效

2、php中获取一个cookie,通过$_COOKIE["参数名"]

具体代码如下:

实践目标:

1、使用参数name,value

  1. <?php
  2. $name = "zhangsan";
  3. setcookie("name",$name);
  4. ?>

运行结果为空

我们刚刚说这些cookie是存储到浏览器中,那么如何查看呢?

步骤如下:

1、按下F12

2、点击Application

PHP正则表达式之2种模式和Cookie详解(代码实例)

3、点击Cookies,找到我们对应的域名

PHP正则表达式之2种模式和Cookie详解(代码实例)

这样我们可以看到我们设置的name数据

我们可以看到其实这条记录其实还有很多属性,除了name,值,还有Domain,Path,Expires

默认path就是当前页面所在的目录

Expires表示有效期,默认就是一个会话有效时间

现在我们来看下把这个zhangsan输出来

具体代码如下:

  1. <?php
  2. $name = "zhangsan";
  3. echo $_COOKIE["name"];
  4. ?>

输出结果如下:

zhangsan

接下来我们来试试另外一个参数,有效时间,我们希望将这个数据的有效时间就是5秒钟,超过了以后,就失效。

  1. <?php
  2. $name = "zhangsan";
  3. setcookie("name",$name,time()+5);
  4. echo "cookie name值=".$_COOKIE["name"];
  5. echo " 该值将在5秒钟后失效";
  6. ?>

运行结果为:

cookie name值=zhangsan 该值将在5秒钟后失效

5秒钟后我们再来运行结果

运行结果为:

Notice: Undefined index: name in D:\E-class\class-code\classing\index.php on line 10

cookie name值= 该值将在5秒钟后失效

总结:

1、了解正则表达式的贪婪模式的定义

2、了解正则表达式的懒惰模式的定义

3、掌握正则表达式的贪婪模式的用法

4、掌握正则表达式的懒惰模式的用法

5、了解PHP中Cookie的定义

6、掌握Cookie的基本用法,获取和设置