半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session

1正则表达式

1.1基本的匹配字符串

$p = '/apple/';
$str = "apple banna";
if (preg_match($p, $str)) {
    echo 'matched';
}

1.2 preg_match

只能匹配一次结果,但很多时候我们需要匹配所有的结果,preg_match_all可以循环获取一个列表的匹配结果数组。

$p = "|<[^>]+>(.*?)</[^>]+>|i";
$str = "<b>example: </b><div align=left>this is a test</div>";
preg_match_all($p, $str, $matches);
print_r($matches);

1.3 preg_replace 去掉多余的空格

$str = 'one     two';
$str = preg_replace('/\s+/', ' ', $str);
echo $str; //

1.4用preg_quote进行转义

$p = 'http://';
$p = '/'.preg_quote($p, '/').'/';
echo $p;

2 session与cookie

2.1设置cookie

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

  2. value(Cookie的值)

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

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

  5. domain(有效域)默认整个域名都有效,如果设置了'www.imooc.com',则只在www子域中有效

$value = 'test';
setcookie("TestCookie", $value);
setcookie("TestCookie", $value, time()+3600);  //有效期一小时
setcookie("TestCookie", $value, time()+3600, "/path/", "imooc.com"); //设置路径与域

2.2 cookie的删除与过期时间

php中没有cookie的删除函数

setcookie('test', '', time()-1);

这样做只要cookie有效时一间过期,cookie就会自动失效

用header方法来设置

header("Set-Cookie:test=1393832059; expires=".gmdate('D, d M Y H:i:s \G\M\T', time()-1));

gmdate,用来生成格林威治标准时间,以便排除时差的影响。

2.3 cookie的有效路径

默认cookie在'/'路径下有效,在设置'/path'以后,只能在设定的路径下有效

setcookie('test', time(), 0, '/path');

2.4 session的使用

session可以支持任意数据类型

session_start();
//设置一个session
$_SESSION['test'] = time();
$_SESSION['ary'] = array('name' => 'jobs');
$_SESSION['obj'] = new stdClass();

2.5 session的删除与销毁

删除session中的某个值可以用unset()函数

unset($_SESSION['name']);

如果要删除整个session,就需要用到session_destory()函数

session_start();
$_SESSION['ary'] = array('name' => 'jobs');
unset($_SESSION);//这句话在需要立即销毁session中用到
session_destory();

2.6 session来存储用户的登录信息

用户在登录成功以后,通常可以将用户的信息存储在session中,一般的会单独的将一些重要的字段单独存储,然后所有的用户信息独立存储。

$_SESSION['uid'] = $userinfo['uid'];
$_SESSION['userinfo'] = $userinfo;
posted @ 2017-12-30 18:10  戴怪兽  阅读(286)  评论(0编辑  收藏  举报