(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的更多相关文章

  1. 《Java基础复习》—常识与入门

    突然发现自己Java基础的底子不到位,复习! 所记知识会发布在CSDN与博客网站jirath.cn <Java基础复习>-常识与入门 一.Java语言的知识体系图 分为三部分 编程语言核心 ...

  2. MySQL学习笔记_8_SQL语言基础复习

    SQL语言基础复习 一.概述 SQL语句注释方式 1)以"#"开头直到行尾的所有内容都是注释 2)以"--"(--后还有一个空格)开头直到行尾的所有内容都是注释 ...

  3. 【2018.06.26NOIP模拟】T2号码bachelor 【数位DP】*

    [2018.06.26NOIP模拟]T2号码bachelor 题目描述 Mike 正在在忙碌地发着各种各样的的短信.旁边的同学 Tom 注意到,Mike 发出短信的接收方手机号码似乎都满足着特别的性质 ...

  4. java基础复习记录

    java基础复习记录(数组.对象.异常) 数组 数组的定义 数组是相同类型数据的有序集合.如:篮球队就是一个数组,队员球服上有号码,相当于索引.通过某一个的某一个号码来确认是某一个队员.数组中索引从0 ...

  5. 《CSS权威指南》基础复习+查漏补缺

    前几天被朋友问到几个CSS问题,讲道理么,接触CSS是从大一开始的,也算有3年半了,总是觉得自己对css算是熟悉的了.然而还是被几个问题弄的"一脸懵逼"... 然后又是刚入职新公司 ...

  6. Java基础复习笔记系列 九 网络编程

    Java基础复习笔记系列之 网络编程 学习资料参考: 1.http://www.icoolxue.com/ 2. 1.网络编程的基础概念. TCP/IP协议:Socket编程:IP地址. 中国和美国之 ...

  7. Java基础复习笔记系列 八 多线程编程

    Java基础复习笔记系列之 多线程编程 参考地址: http://blog.csdn.net/xuweilinjijis/article/details/8878649 今天的故事,让我们从上面这个图 ...

  8. Java基础复习笔记系列 七 IO操作

    Java基础复习笔记系列之 IO操作 我们说的出入,都是站在程序的角度来说的.FileInputStream是读入数据.?????? 1.流是什么东西? 这章的理解的关键是:形象思维.一个管道插入了一 ...

  9. Java基础复习笔记系列 五 常用类

    Java基础复习笔记系列之 常用类 1.String类介绍. 首先看类所属的包:java.lang.String类. 再看它的构造方法: 2. String s1 = “hello”: String ...

  10. Java基础复习笔记系列 四 数组

    Java基础复习笔记系列之 数组 1.数组初步介绍? Java中的数组是引用类型,不可以直接分配在栈上.不同于C(在Java中,除了基础数据类型外,所有的类型都是引用类型.) Java中的数组在申明时 ...

随机推荐

  1. 自己动手实现Spring IoC框架

    钻研Spring 源码也有一段时间了,对Spring IoC的实现原理理解算是比较透彻了,要实现一款IoC容器,简单的概括无非需要以下几个步骤: 1.定义用来描述bean的配置的Java类,例如我们有 ...

  2. 必看的dockerfile禁忌与建议!

    直接上对照组(看第三个run) test1 FROM centos MAINTAINER ** ​ RUN yum -y update RUN yum -y install wget ​ RUN wg ...

  3. Eclipse 闪退/无法启动/一闪而过打解决办法

    解决方法 删除文件:/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi 经过实际应用真实有效.

  4. dataTables去掉搜索框和每页多少条框体,解决Cannot reinitialise DataTable问题

    $('#example').DataTable({ searching:false, //去掉搜索框 bLengthChange:false,//去掉每页多少条框体 "language&qu ...

  5. ZooKeeper读书笔记

    <ZooKeeper读书笔记> 1.Zookeeper是什么?Zookeeper是一个典型的分布式数据一致性的解决方案,分布式应用可以基于它实现诸如数据发布/订阅.负载均衡.命名服务.分布 ...

  6. qt5.8使用qwebenginview注意事项

    环境qt5.8,vs2015(ui.webview必须要先show出来,不然加载不成功) 1.项目属性,c/c++,常规,附加包含目录,新增: $(QTDIR)\include\QtWebChanne ...

  7. js递归和数组去重(简单便捷的用法)

    1.递归例子<script type="text/javascript"> function test(num) { if(num < 0) { return; ...

  8. 登录脚本重构by封装

    package com.gubai.selenium; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; imp ...

  9. axure使用经验

    泛化不常用======伸展也是拉动原件收缩也是拉动原件====== 动态模板相互影响(有的时候会出现这个问题,只需要设置两者的高度,不让两者有包含关系(一点点可以有):====== 实现高级菜单栏(同 ...

  10. Linux-RedHat7.2 使用CentOS源

    -- 查看yum rpm -qa |grep yum --卸载yum rpm -qa | grep yum | xargs rpm -e --nodeps --拷贝centos系统yum工具安装程序到 ...