php 基础复习 2018-06-18
(1)cookie相关
cookie 常用于识别用户。cookie 是服务器留在用户计算机中的小文件。每当相同的计算机通过浏览器请求页面时,它同时会发送 cookie。
如何创建 cookie?
setcookie() 函数用于设置 cookie。语法:setcookie(name, value, expire, path, domain);
注释:在发送 cookie 时,cookie 的值会自动进行 URL 编码,在取回时进行自动解码(为防止 URL 编码,请使用 setrawcookie() 取而代之)。
如何取回 Cookie 的值?
PHP 的 $_COOKIE 变量用于取回 cookie 的值。
如何删除 cookie?
当删除 cookie 时,您应当使过期日期变更为过去的时间点。
setcookie("user", "", time()-3600);
(2)PHP Sessions
PHP session 变量用于存储有关用户会话的信息,或更改用户会话的设置。Session 变量保存的信息是单一用户的,并且可供应用程序中的所有页面使用。
开启session:session_start() 。
存储和取回 session 变量的正确方法是使用 PHP $_SESSION 变量。
删除某些 session 数据,可以使用 unset() 或 session_destroy() 函数。
(3)PHP filter_var() 函数
功能:获取一个变量,并进行过滤。
语法:filter_var(variable, filter, options)
示例,过滤一个email
$field=filter_var($email, FILTER_SANITIZE_EMAIL); if(filter_var($field, FILTER_VALIDATE_EMAIL)){
return TRUE;
}else{
return FALSE;
}
函数第二个参数常用判断:
FILTER_VALIDATE_URL 把值作为 URL 来验证。
FILTER_VALIDATE_EMAIL 把值作为 e-mail 来验证。
FILTER_VALIDATE_IP 把值作为 IP 地址来验证。
FILTER_VALIDATE_FLOAT 以浮点数验证值。
FILTER_SANITIZE_EMAIL 删除所有字符,除了字母、数字以及 !#$%&'*+-/=?^_`{|}~@.[]
(4)修改PHP的错误处理程序
function customError($errno, $errstr)
{
echo "<b>Error:</b> [$errno] $errstr";
}
//set error handler
set_error_handler("customError");
(5)主动触发错误:
trigger_error("Value must be 1 or below");
trigger_error("Value must be 1 or below",E_USER_WARNING);
(6)PHP 异常处理
异常(Exception)用于在指定的错误发生时改变脚本的正常流程。
try{ }catch(Exception $e){
//捕获异常
echo 'Message: ' .$e->getMessage();
}
多个异常可以为一段脚本使用多个异常,来检测多种情况。
class customException extends Exception{
public function errorMessage(){
$errorMsg = 'Error on line '.$this->getLine().' in '.$this->getFile().': <b>'.$this->getMessage().'</b> is not a valid E-Mail address';
return $errorMsg;
}
} $email = "someone@example.com"; try{
if(filter_var($email, FILTER_VALIDATE_EMAIL) === FALSE){
throw new customException($email);
}
//check for "example" in mail address
if(strpos($email, "example") !== FALSE){
throw new Exception("$email is an example e-mail");
}
}
catch (customException $e){
echo $e->errorMessage();
}
catch(Exception $e){
echo $e->getMessage();
}
(7)设置顶层异常处理器 (Top Level Exception Handler)
set_exception_handler() 函数可设置处理所有未捕获异常的用户定义函数。
function myException($exception)
{
echo "<b>Exception:</b> " , $exception->getMessage();
} set_exception_handler('myException'); throw new Exception('Uncaught Exception occurred');
php 基础复习 2018-06-18的更多相关文章
- 《Java基础复习》—常识与入门
突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...
- MySQL学习笔记_8_SQL语言基础复习
SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...
- 【2018.06.26NOIP模拟】T2号码bachelor 【数位DP】*
[2018.06.26NOIP模拟]T2号码bachelor 题目描述 Mike 正在在忙碌地发着各种各样的的短信.旁边的同学 Tom 注意到,Mike 发出短信的接收方手机号码似乎都满足着特别的性质 ...
- java基础复习记录
java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...
- 《CSS权威指南》基础复习+查漏补缺
前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...
- Java基础复习笔记系列 九 网络编程
Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...
- Java基础复习笔记系列 八 多线程编程
Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...
- Java基础复习笔记系列 七 IO操作
Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...
- Java基础复习笔记系列 五 常用类
Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...
- Java基础复习笔记系列 四 数组
Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...
随机推荐
- const和volatile
const是只读变量 const修饰的变量是只读的,其本质还是变量 const修饰的局部变量在栈上分配空间 const修饰的全局变量在全局数据区分配空间 const只在编译期有用,在运行期无用 con ...
- HV000184: ParameterMessageInterpolator has been chosen, EL interpolation will not be supported问题解决
今天创建springboot项目的时候添加完依赖启动出现了这个错误 -- :: --- [ main] o.h.v.m.ParameterMessageInterpolator : HV000184: ...
- 【HEVC帧间预测论文】P1.2 An Efficient Inter Mode Decision Approach for H.264 Video Codin
参考:An Efficient Inter Mode Decision Approach for H.264 Video Coding <HEVC标准介绍.HEVC帧间预测论文笔记>系列博 ...
- 深入理解Java的整型类型:如何实现2+2=5?
先看下这段神奇的Java代码: public static void main(String[] args) throws Exception { doSomethingMagic(); System ...
- Java之流水号生成器实现
参考:https://www.jianshu.com/p/331b872e9c8f 1.建立一张存放的表 CREATE TABLE `sys_serial_number` ( `id` bigint( ...
- ref版的 摄像头 读取 因为id的时候,id不能重复 还要用时间戳,比较麻烦
<!-- * @description 摄像头vue版实例 * @fileName cameraObject.vue * @author 彭成刚 * @date // :: * @version ...
- iview table icon dorpdown html页面级别vue组件 #vuez#
iview table icon dorpdown html页面级别vue组件 <!DOCTYPE html> <html> <head> <meta cha ...
- Archive for required library: 'D:/Program Files/Apache/maven-repository/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar'
今天导入一个项目工程,发现报错:Archive for required library: 'D:/Program Files/Apache/maven-repository/dom4j/dom4j/ ...
- kvm虚拟机的克隆以及快照
克隆(常见有3种方法) 1 直接克隆(克隆虚拟机使用自己的磁盘) virt-clone -o vm-01 -n vm-02 -f /kvm/os/vm-02.qcow2 virsh start vm- ...
- 为什么JavaScript里面0.1+0.2 === 0.3是false
以下这一篇说明的很详细:彻底理解0.1 + 0.2 === 0.30000000000000004的背后 0.1+0.2 === 0.3 //返回是false, 这是为什么呢?? 我们知道浮点数计算是 ...