半吊子菜鸟学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
name( Cookie名)可以通过$_COOKIE['name'] 进行访问
value(Cookie的值)
expire(过期时间)Unix时间戳格式,默认为0,表示浏览器关闭即失效
path(有效路径)如果路径设置为'/',则整个网站都有效
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;
半吊子菜鸟学Web开发 -- PHP学习2-正则,cookie和session的更多相关文章
- 半吊子菜鸟学Web开发 -- PHP学习5-数据库
数据库 1 进行数据库操作的步骤 连接数据库 mysqli_connect 选择数据库 mysqli_select_db 设置文件编码 mysqli_query("set name utf- ...
- 半吊子菜鸟学Web开发 -- PHP学习 1-基础语法
1索引数组 $fruit = array("苹果","香蕉","菠萝"): print_r($fruit); 索引数组的初始化,有三种方式: ...
- 半吊子菜鸟学Web开发 -- PHP学习 4 --异常
PHP异常处理 1 抛出一个异常 与Python的try except类似,PHP用try catch来捕获异常 基本语法 try{ //可能出现错误或异常的代码 //catch表示捕获,Except ...
- 半吊子菜鸟学Web开发 -- PHP学习3-文件
目录 1 PHP文件系统 1.1 PHP文件的读取 1.4 获得文件的大小 1.5 PHP写入文件 1.6 删除文件 1 PHP文件系统 1.1 PHP文件的读取 文件读取的函数是file_get_c ...
- 半吊子菜鸟学Web开发1 --配置开发环境
先说说我自己的情况,我算是一个半吊子菜鸟,对web开发熟练度为0,但是对熟悉C++和Python 所以这里开始记录我学习Web开发的历程,看看我这里学习的程序,能够学到什么地方. 首先是配置环境,我的 ...
- 半吊子菜鸟学Web开发6 -- Vscode开发环境配置
1vscode上手一周不到,终于弄出点门路,终于弄清楚了点vscode的设置是什么样子的了....哭 2就我这两天的使用来看,一般vscode默认只让打开一个文件夹,然后在你打开的文件夹里面自动生成 ...
- 半吊子菜鸟学Web开发2 --JavaScript学习1
JavaScript是一种类C的语言,对于我来说学起来还是蛮轻松的 1 输出 console.log(**); 相当于print console.assert(*);弹窗 2 变量 JS是动态变量 类 ...
- 半吊子菜鸟学Web开发4 --Html css学习2
1<a>标签,链接到另一个页面 <a href="目标网址" title="鼠标滑过显示的文本">链接显示的文本</a> H ...
- 半吊子菜鸟学Web开发3 --Html css学习1
1创建一个html文件,用vscode打开 首先输入一个! 然后就可以开始编辑html文件了 2 整体结构 <!DOCTYPE HTML><html> <head& ...
随机推荐
- MyBatis功能点二:MyBatis提供的拦截器平台
前面关于MyBatis功能点二plugin已经介绍了一些应用及其实现的底层代码,本文总结MyBatis提供的拦截器平台框架体系. 通过MyBatis功能点二:从责任链设计模式的角度理解插件实现技术 - ...
- java实现 TCP通信
//服务端import com.hl.bluetooth.util.CRC16; import com.hl.bluetooth.util.FrameCheckFailedException; imp ...
- 零基础自学Python十天的时候,写的一款猜数字小游戏,附源码和软件下载链接!
自学一门语言最重要的是要及时给自己反馈,那么经常写一些小程序培养语感很重要,写完可以总结一下程序中运用到了哪些零散的知识点. 本程序中运用到的知识点有: 1.输入输出函数 (input.print) ...
- Linux下/目录 、/home目录 、~目录的区别
/ :根目录 ,所有目录的最顶层目录,从任何用户执行该命令都会进入同一个目录,即所有用户共享.如下图: /home:/下面的home目录,名为家目录,但是很多人叫为用户列表目录,因为/home下是这台 ...
- 思迈特软件Smartbi发展再提速,完成B+轮过亿战略融资
2021年4月,思迈特软件(Smartbi)宣布完成亿级B+轮战略融资,本轮投资方为领先的全球企业级数据分析和组织智能服务平台提供商--明略科技.此前,思迈特软件曾先后获得来自价值资本.方广资本的数千 ...
- uniapp vue3 $on/$once/$off 的替代方案
仅作参考 仅作参考 仅作参考 并且只支持页面生命周期使用 不支持组件 不支持页面函数方法 下面说了思路需要的话自己添加 今天用到 $once 时发现报错了,原理是vue3移除了该api.我一开始想的是 ...
- Oracle之查询排序
SQL排序查询 DESC降序.ASC升序(默认是升序) /* 语法结构: SELECT * | 列名1[,列名2...] | 表达式 FROM 表名 [WHERE 限定条件] ORDER BY 列名1 ...
- 60天shell脚本计划-10/12-渐入佳境
--作者:飞翔的小胖猪 --创建时间:2021年3月13日 --修改时间:2021年3月17日 说明 每日上传更新一个shell脚本,周期为60天.如有需求的读者可根据自己实际情况选用合适的脚本,也可 ...
- Pycharm:一直connecting to console的解决办法
方法一: 1.打开Anaconda cmd(也就是Anaconda Prompt,在启动栏Anaconda目录里应该有)2.输入echo %PATH% 获得PATH value3.在PyCharm中, ...
- c/c++(c++和网络编程)日常积累(三)
asio::transfer_all() 有空研究一下这个字段 malloc和new的区别 https://blog.csdn.net/weixin_39411321/article/details/ ...