zoukankan      html  css  js  c++  java
  • PHP

    php教学笔记
    ========================================
    学习章节:
    变量
    常量
    运算符
    流程控制
    函数
    数组(超全局数组)
    字符串
    正则表达式
    类与对象(面向对象)
    名字空间
    gd库
    文件操作
    mysql
    数据库驱动
    cookie
    session
    memcache
    laravel框架
    ----------------------------------------------
    变量
    $name="zhilei";
    1)变量的命名规则

    2)变量的数据类型(8种)
    一.标量
    string
    int
    flat
    boolean
    二复全类型
    array
    object
    特殊类型
    source
    null

    变量的判断:
    is_int()
    is_string()
    is_array()
    is_object()
    is_float()
    is_null();
    is_boolean()
    is_callback()

    变量的数据类型转换
    1.自动转换
    1)if(){} 放到if()中的话都会转为boolean类型
    2)运算 $name="10abc" echo $name+10; 则会将$name转为整型
    3)字符串运算符"." 自动转为字符串

    2.强制转换(复制性的操作,转生成一个新的数据,只不过值是相同的,但数据的类型不同)
    $str="zhilei";
    (int)$str
    (string)$str
    (float)$str
    (object)$str
    (array)$str
    (boolean)$str

    3.变量的引用
    $name="zhilei";
    $newname=&$name;
    $newname="zongbin";
    echo $name; //zongbin
    echo $newname; //zongbin

    常量:
    (常量的声明:名称一定要大写)
    1.声明:
    define("NAME","zhilei");
    echo NAME;

    2.确定常量是否存在
    defined();
    var_dump(defined("HOST"));

    预定义常量:(1.系统定好2.随环境变化而变化)
    1.__LINE__
    2.__FILE__
    3.__DIR__
    4.__FUNCTION__
    5.__CLASS__
    6.__METHOD__
    7.__NAMESPACE__

    运算符:

    分类:
    1)一元运算符
    2)二元运算符
    3)三元运算符

    1.一元运算符
    $a++
    ++$a
    $a--
    --$a
    $a+=3
    $a-=3
    $a/=3
    $a*=3
    $a%=3


    2.二元运算符
    1)算术运算符
    +,-.*,/,%

    2)赋值运算符
    = != += -+ /= %= *=

    3)比较运算符
    > < >= <= != === !==

    4)字符串运算符
    .

    5)逻辑运算符
    && || !

    6)运算符优先级
    1.遵守运算规则
    2.()可以改变优先级

    3.三元运算符
    $name=$name?$name:"zhilei";


    流程控制:
    if(){}else{}
    switch(){}
    while()
    for()
    foreach()
    include / include_once
    require / require_once
    goto

    计算数组的长度
    count($arr);

    函数篇:
    自定义
    参数
    返回值
    匿名函数
    判断是不是一个函数
    变量的作用域
    引用函数
    递归函数
    闭包函数(closures) use关键字
    静态变量
    回调函数


    自定义函数
    function(){}

    函数参数
    funciton($a,$b);

    可变参数
    func_get_args();
    func_get_arg();
    func_num_args();

    反回值
    function (){reutrn "aaaa";}

    判断一个函数是否存在
    function_exists("函数名");

    变量的作用域
    1.局部变量
    声明在函数内部的变量称为局部变量
    2.全局变量
    声明在函数外部的变量叫全局变量
    3.如果局部变量想引入全局变量的话
    global(关键字)

    引用函数:函数的参数为一个变量的引入.这要的话,实参与形参会一起发生变化
    function one(&$a){
    $a++
    }
    $num=100;
    one($num);
    echo $num; //结果为101

    静态变量
    1)在函数的内部用static修饰一个变量,则这个变量的值为持续保存的初使化静态段中
    2)功能:通过用来测试函数被调用的次数

    回调函数:一个函数参数是一个匿名函数
    声明:
    function test($a,$b,$c){
    return $c($a,$b);
    }

    调用:
    echo test(10,23,function($i,$j){
    return $i+$j;
    });


    递归函数:
    1)递
    2)归
    例:
    function one($i){
    echo $i."<br>";
    if($i>0){
    one($i-1);
    }else{
    echo "<hr>";
    }
    echo $i;
    }

    $num=10;
    one();


    闭包函数
    定义:函数内部的匿名函数调用该函数内部的变量
    使用关键字:use

    function test(){
    $a=100;
    $one=function($str) use(&$a){
    echo $str."<br>";
    $a++;
    };
    return $one;
    }

    $fun=test();
    相当于$fun=$one();
    $fun();
    这样的话函数内部的变量没有被释放掉 [重点]


    数组篇:
    数组定义与数组赋值
    数据遍历
    超全局数组
    数组键值操作与排序函数
    数据拆分,合并,格式化

    数组定义:
    1.$arr=array();
    2.$arr[]="user1";
    3.$arr=[3,4,5];

    数组的种类
    1.索引数组
    下标为数字的
    2.关联数组
    下标为英文字母的(类似于json)

    数组的取值(数组取舍一定要带下标)
    $arr=array(3,34);
    echo $arr[0];

    下标规则:
    如果一个混合的数组,索引部分元素的下标是前一个索引元素下标+1

    数组元素删除:
    unset($arr[0])

    数组遍历
    for()
    foreach()
    list() 只能将索引数组中的值取出来
    each();

    数组的整体输出
    print_r();
    var_dump();


    所有引用的数组的函数(就是将原来的值也改变了)
    1.array_splice();
    2.sort();


    数组中元素增删改查

    数组尾操作
    array_pop($arr) //返回值
    array_push($arr,""); //返回总元素的个数

    数组头操作
    array_shift($arr); //返回值
    array_unshift($arr,"");//返回元素的总个数

    数组元素的查找
    array_slice() //起点下标到终点下标,但不包括终点
    array_splice(); //起点下标然后
    arrar_serch();


    超全局数组
    $_POST
    $_GET
    $_SERVER
    $_REQUEST
    $_FILES
    $_SESSION
    $_COOKIE
    $GLOBALS


    传值
    $_GET
    $_POST


    超全局数组$_SERVER (注意:这个下标必须是大写)
    服务器的域名
    SERVER_NAME
    服务器的ip地址
    SERVER_ADDR
    服务器的端口
    SERVER_PORT
    请求的方法
    REQUEST_METHOD
    请求的url
    REQUEST_URI 注意:是大写的i而并不是L
    请求的时间
    REQUEST_TIME


    请求的客户端的cookie
    $_SERVER["HTTP_COOKIE"];
    请求的客户端的浏览器
    $_SERVER["HTTP_USER_AGENT"];
    请求的缓存的时间
    $_SERVER['HTTP_CACHE_CONTROL'];
    远程ip
    REMOTE_ADDR
    服务器端所有的信息
    $_SERVER['SERVER_SIGNATURE'];
    接收的字符集
    $_SERVER['HTTP_ACCETP_LANGUAGE'];
    请求的连接方式
    $_SERVER['HTTP_CONNECTION'];


    将,?转义
    addslashes()

    去掉转义
    stripslashes();

    将html当正常的文本输出,并不会产生标签的作用
    htmlspecailchars("<h1>监控中心</h1>")

    将字符串的标签显示作用
    htmlspecialchars_decode("<h1>监控中心</h1>");

    将字符串的中 换行转换成<br>
    nl2br("this nien");

    超全局数组$_COOKIE与$_FILES和$_SESSION $GLOBALS
    $_FILES

    追踪用户信息(其实就是让一个数组在多个页面中调用)
    $_COOKIE
    $_SESSION

    $GLOBALS
    1.全局的数组.时面包含$_COOKIE,$_SESSION,$_GET,$_POST,变量等
    2.变量名作为一它的一个键
    _GET
    _POST
    _COOKIE
    _FILES
    _ENV
    _SERVER
    _REQUEST
    [GLOBALS]
    如声明一个变量$username 则username会变成$GLOBAS一个键


    数组过滤与排序
    array_count_values() //统计数据中值出现的个数
    array_unique() //删除数组中的重复值,相当于sql中的distinct

    数组的拆分,合并,分解

    1.过滤
    array_filter($arr,$callback);

    2.对于数组内每人元素进行操作如乘除这样,如果是两个数组,则是对两个数组的中和每一对元素进行操作,回调函数放在前面
    array_map($callback,$arr,$arr1);

    3.数组合并
    一.array_merge();
    1)如果是关联的数组,键名如果一样的话则后面的数组的将覆盖前面的数组.
    2)如果是索引数组的话,则并不会产生覆盖现象
    3)如果两个都是索引的数组的话,则后面数据的键会从第一个数组的最后一个键后累加

    二.array_combine();
    1)对于两个数组的值进行操作,并组成一个新的数组,第一个数组值作为下标,第二个数组的值作为新的值.
    2)说明:这两个被操作的数据的元素的个数一定要一样


    数组中个数计算
    计算一个数组中值的个数,如成一个新的数组,值为新下标,个数新值
    array_count_values($arr);

    去掉数组中重复的部分
    array_unique();相当于mysql中的distinct

    将关系数组转换成一个索引数组
    array_values();


    将数组中的键取出来,组成一个新的索引的数组(操作关联数组较多)
    array_keys($arr,"element",true||"===");
    1)以被操作的数组的键为元素,组成一个新的索引数组.
    2)如果有第二个参数,则是取出被操作数组中具体的哪个元素的键
    3)如果第三个参数为 true或者是"==="则表示,被操作的数组中被取出来的的元素的数据类型一定相同

    判断一个值是否在一个数组中
    in_array()判断一个值在不在一个数组中,如果在的话则返回值 ,是否返回假
    1)in_array(value,$arr,true);

    array_search()判断一个值在不一个数组中,如果在的话,则返回该元素的键,是否返回假
    2)array_search();
    $_POST['username']="zhilei";
    $_POST['password']=md5("123");
    $_POST['height']="30";
    $_POST['age']=30;

    echo "<pre>";
    print_r(array_search(30,$_POST,true));
    echo "</pre>";


    数组的和与差
    array_sum();
    array_diff()

    数组的切割都是开始位置到长度
    array_slice()
    array_splice()

    数组的键值调换
    array_flip();
    说明:如果被操作的数组中有两个一样的值,则调换过来后,后面的一个值,将作为最终的下标

    将数据的元素的顺序调换
    array_reverse()
    说明:如果索引下标的话,则键并不会随着元素走

    创建一个数组(第一个是开始的键,第二个参数是长度,第三个参数是值)
    array_fill(0,4,"one");
    print_r(array_fill(4,5,"one"));
    Array ( [4] => one [5] => one [6] => one [7] => one [8] => one )

    计算数组的交集组成一个新的数组
    array_intersest();
    array_unintersect();
    注意:只对比元素的值,并不对比元素的键

    计算数组中交交集同时也对比键
    array_intersect_assoc()
    array_unintersect_assoc()

    用值将数组扩大到指定的长度
    array_pad($arr,length,value);
    array_repeat()

    将数组的顺序打乱 从新的冼牌 这个函数的前面没有array标识
    shuffle()

    从数组中随机的取出一个键的值
    array_rand()
    range()生成一个范围内的数组

    数组的排序
    sort()
    rsort()
    ksort()
    krsotr()
    natsort()
    natcasesort()
    array_multisort()

    数组与字符串之间的转换
    implde($arr,"") 别名是join();
    explode()

    字符串与日期与数学函数
    1.字符串的定义
    $str="sineinl";
    2字符串的输出
    echo
    print
    printf
    sprintf
    var_dump()
    print_r()

    字符串的处理函数
    1.与html标签相关的处理函数
    nl2br()
    htmlspecailchars()
    htmlspecaichars_decode()
    strip_tags()
    addslashes()
    stripslashes()

    2.与空格相关处理的函数
    trim()
    ltrim()
    rtrim()

    3.字符中的常用的函数
    strrev()
    strlen()
    strtoupper()
    strtolower()
    str_repeat()
    str_shuffle() 这个并不是一个引用性质的操作,而数组的是引用操作
    str_pad()
    substr()
    str_spit($str,"多少个一分割"); str_spilt("seintet","2");
    mb_substr() 可以指定字符集
    number_format($str,保留小数长度,"小数与整数的连接符号","整数间的连接符号");

    将字符串添加到批定的长度,与数组一样第一个参数是操作的字符串对象 ,第二个字符中是长度,第三个字符中是要被填充的内容,第四参数是位置,有三个值
    STR_PAD_LEFT
    STR_PAD_RIGHT
    STR_PAD_BOTH
    str_pad()
    basename(); //返回一个url中的访问的文件名
    dirname(); //返回一个url中的路径部分
    $_SERVER['QUERY_STRINT'] //返回一个url中的查询的部分的内容
    parse_url()
    pathinfo()
    parse_str() //将查询的内容转为一个变量来读出或者是赋给第二个变量,这个变量作为一个数组来接收值
    字符串本身的分割,查找,替换

    str_split()
    str_replace()
    echo str_replace("/","-",$str);


    返回某个值第一次出现的位置.
    strpos()
    返回某个值最后一次出现的位置
    strrpos()

    pathinfo(); (url中不带查询条件)
    1)返回一个数组,键有basename dirname extension filename

    parse_url
    1)返回一个数组,scheme(协议) host,path,query

    $str="http://www.jd.com/one/index.php?name=zhilei;age=19";

    echo "<pre>";
    print_r(parse_url($str));
    echo "</pre>";

    Array
    (
    [scheme] => http
    [host] => www.jd.com
    [path] => /one/index.php
    [query] => name=zhilei;age=19
    )

    字符串的转换
    strtoupper()
    strtolower()

    时间与字符串之间的转换
    strtotime()
    将时间转换为时间戳
    strtotime("2016-12-02")

    php正则表达式
    1.定界符
    //
    2.原子
    a-z
    A-Z
    0-9
    [0-9]
    [a-z]
    [^a-z]
    ^
    $
    s s
    d D
    w w
     B
    3.元字符
    *
    ?
    +
    {3}
    {3,7}
    {3,}
    ()
    $1 或者是 \1

    4.模式修正符(imU)
    i忽略大小深情
    m:多行查找
    U:去除贪婪模式

    与正则有关的函数
    preg_match("正则","要处理的字符串","放到一个数组中")
    preg_match_all()
    preg_replace("正则","替换成什么",要处理的字符串)
    preg_spit("正则","要处理的字符串");
    preg_grep("正则","要处理的字符串")


    数学函数
    round()
    rand()
    mt_rand();返回一个小于2cpu位数次方的随机数
    ceil()
    floor()
    max()
    min()

    日期对象
    time()
    strtotime() //将字符串改变时间戳
    mktime() //将时间改成时间戳
    date()

    设置和获取默认的值
    date_default_timezone_set()
    date_default_timezone_get()

    date参数:
    Y 四位年数
    y 两位
    m 月份
    M 月份的英文版
    d 日期
    D 周几英文(缩写) l(全称)
    w 周几数字
    H 24小时
    h 12小时
    t 一个月的个数
    T 代码时间
    L时间操作函数
    获取默认的时间
    date_default_timezone_get();
    设置默认的时区(中国是prc)
    date_default_timezone_set(); 是不是闰年

    实例:
    万年例制作 :


    错误与错误及别
    notice //如未声明变量 下面的内容可以执行
    warning //如函数内未传参,或者是传参错误 下面的内容可以执行
    deprecated //如弃用的一些东西 下面的内容可以继续执行
    error // 语法错误 下面的内容也继续执行
    parse //语法错误 下面的内容也不能继续执行

    改变报警级别的的方法:
    error_reporting();
    | 代表要报出来的及别
    &~ 是除了=^ 除了
    E_ALL 或者0 代码所有的报警内容都会报出来
    E_NOTICE 只报这个
    E_NOTICE | E_WARNING 报notice 或者是warning


    图片函数:(四节课时)
    实现目标:
    1.验证码
    2.图片的缩放
    3.水印

    图片相关的函数:
    gd_info() //查看gd库相关的信息

    // 制作一个画布
    $img=imagecreatetruecolor(500,300);

    // 给这个画布分配一个颜色
    $black=imagecolorallocate($img,0,0,0);
    $white=imagecolorallocate($img,255,255,255);
    $red=imagecolorallocate($img,255,0,0);
    $blue=imagecolorallocate($img,0,191,255);

    // 给这个画布填充颜色
    imagefill($img,0,0,$black);

    // 定义输出的头
    header("content-type:image/jpeg");

    // 输入这个图片,如果有第二个参数的话,则并不会输出,而在保存下来这张图片
    imagejpeg($img);

    //销毁一个图片资源
    image_detroy($img);

    详细图形的函数
    imagesetpixel() //画一个点

    imageline(); //画一条线段
    imagedashedline() //画一个虚线

    imagepolygon() //画一个多边形 第二个参数是一个座标数组,第三个参数是边的个数
    imageretangle() //画一个矩形

    imageellipse() / imagefilledellipse() //画一个㮋圆
    iamgearc() //画一个㮋圆的弧

    imagefttext() //写入字体


    保存图片的格式
    imagejpeg()
    imagegif()
    imagepng()


    取得一张图片作为画布
    imagecreateformjepg()
    imagecreateformgif()
    imagecreateformpng()

    取得一个资源的高与宽
    imagesx()
    imagesy()

    直接获取路径资源的长写宽,并不用先制作画布
    getimagesize();

    图片缩放:
    imagecopyresampled();中间的四个座标最好都高为零
    参数:
    imagecopyresampled ( resource $dst_image , resource $src_image , int $dst_x , int $dst_y , int $src_x , int $src_y , int $dst_w , int $dst_h , int $src_w , int $src_h );

    代码实例:
    <?php
    // 这个文件
    $filename = 'logo.jpg';
    $percent = 0.2;

    // 内容类型
    header('Content-Type: image/jpeg');

    // // 获取新的尺寸
    list($width, $height) = getimagesize($filename);
    $new_width = $width * $percent;
    $new_height = $height * $percent;

    // // 重新取样
    $dst_img= imagecreatetruecolor($new_width, $new_height);
    $src_img= imagecreatefromjpeg($filename);
    imagecopyresampled($dst_img, $src_img, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    // // 输出
    imagejpeg($dst_img);

    ?>
    ================================================================

    水印函数:
    imagecopy()
    语法:
    bool imagecopy ( resource $dst_im , resource $src_im , int $dst_x , int $dst_y , int $src_x , int $src_y , int $src_w , int $src_h )

    实例:
    <?php
    //为背景图片添加图片水印(位置随机),背景图片格式为jpeg,水印图片格式为gif
    function watermark($filename,$water){
    //获取背景图片的宽度和高度
    list($b_w,$b_h) = getimagesize($filename);
    //获取水印图片的宽度和高度
    list($w_w,$w_h) = getimagesize($water);
    //在背景图片中放水印图片的位置随机起始位置
    $posX = rand(0, ($b_w-$w_w));
    $posY = rand(0, ($b_h-$w_h));
    //创建背景图片的资源
    $back = imagecreatefromjpeg($filename);
    //创建水印图片的资源
    $water = imagecreatefromjpeg($water);
    //使用imagecopy()函数将水印图片复制到背景图片指定的位置中
    imagecopy($back, $water, $posX, $posY, 0, 0, $w_w, $w_h);
    //保存带有水印图片的背景图片
    imagejpeg($back,$filename);
    imagedestroy($back);
    imagedestroy($water);
    }

    $logo="logo.jpg";
    $jd="jd.jpg";

    watermark($logo, $jd);
    ?>

    实例制作:
    1.验证码
    2.图片缩放
    3.水印

    文件处理:
    ---------------------------------------------
    1.文件判断
    is_file()
    is_dir()
    is_link()
    is_writeable()
    is_executable()
    is_readable()

    2.获取属性函数:
    filesize()


    目录处理
    1.删除目录
    2.目录遍历


    类与对象:
    ---------------------------------------------
    类声明
    生产对象
    面向对象三大特点:
    1.重用性 2.灵活性 3.扩展性
    面向对象的三大技术
    1.封装 2.继承 3.多态
    public protected private
    抽象类
    接口
    类常量 const
    关键字 static
    与类有关的函数

    mysql库:
    ---------------------------------------------
    1.数据库的认识 (所有的数据库及数据库引擎)
    2.mysql的安装 (linux && window)
    3.建立库,表,以及数据类型
    4.修改库,表
    5.数据增, 删 ,改 ,查
    [数据库高级查询的条件]
    6.索引
    7.索引的增,删 ,改,查
    8.数据库的聚合函数(其它的常用的函数)
    9.多表查询
    1.普通查询
    3.嵌套查询
    4.链接查询
    1)左链接
    2)右链接
    3)内链接

    普通查询:
    mysql> select class.name,count(user.id) from user,class where user.class_id = class.id group by class.id;
    +--------+----------------+
    | name | count(user.id) |
    +--------+----------------+
    | 一班 | 1 |
    | 二班 | 2 |
    | 三班 | 2 |
    +--------+----------------+
    3 rows in set (0.02 sec)


    嵌套查询:
    +----+----------+-------+----------+
    | id | username | score | class_id |
    +----+----------+-------+----------+
    | 1 | user1 | 20 | 1 |
    | 2 | user2 | 40 | 2 |
    | 3 | user3 | 76 | 2 |
    | 4 | user4 | 60 | 3 |
    | 5 | user5 | 60 | 3 |
    +----+----------+-------+----------+
    5 rows in set (0.00 sec)

    mysql> select username from user where score in(select max(score) from user);
    +----------+
    | username |
    +----------+
    | user3 |
    +----------+

    链接查询:
    1)从0开始

    0,2 0,1
    2,2 2,3
    4,2 4,5


    每页显示的个数*(页数-1)

    10.高级篇-> sql编程:
    1)数据库变量,常量
    2)运算符
    3)流程控制
    4)函数
    5)视图
    6)存储过程
    7)事件

    11.维护篇(DCL)
    1)数据库的备份
    2)数据库的授权
    3)主从复制
    4)性能优化


    PDO:
    --------------------------------------------
    $pdo=new PDO("mysql;host=localhost;dbname=work","root","kkk");

    返回一个数据对象
    $smt=$pdo->query("select * from user");

    将数据对象转换成数据组
    $smt->fetchAll(PDO::FETCH_ASSOC)

    PDO::FETCH_ASSOC 关联数组
    PDO::FETCH_NUM 索引数组
    PDO::FETCH_BOTH 默认的两个都有
    PDO::FETCH_OBJ 转换成对象
    实例:分页类实例


    1.PDO类
    2.pdo预处理类
    3.pdo异常类

    pdo(php data object)
    dsn(data source name)

    pdo链接mysql
    $pdo=new PDO("mysql:host=localhost;dbname=test","root","kkk");
    设置客户端的字符集
    $pdo->exec("set names utf8");

    pdo类
    $pdo->exec() #执行增,删,改
    $smt=$pdo->query() #执行查询语句 ,返回的是pdostatment对象
    $pdo->setAttribute() #设置pdo属性
    $pdo->getAttribute() #获取pdo属性
    $pdo->prepare() #预处理一条Sql语句
    $pdo->lastInsetId() #获取最后一次插入的id号

    预处理类
    $smt->fetchAll() #将查询出来的数据转换成一个二维数组. 参数: PDO::FETCH_ASSOC/NUM/OBJ/BOTH
    $smt->fetch() #查询出来一行的数据
    $smt->execute() #执行sql语句
    $smt->rowCount() #返回执行的影响行数
    #smt->bindValue() #绑定值 (注意数据类型)


    如果想开启事务机制的话则要提前开启报错的机制:
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

    ◦PDO::ATTR_ERRMODE:错误报告。
    ◦PDO::ERRMODE_SILENT: 仅设置错误代码。
    ◦PDO::ERRMODE_WARNING: 引发 E_WARNING 错误
    ◦PDO::ERRMODE_EXCEPTION: 抛出 exceptions 异常。

    第二:

    事务机制:
    如果想开启事务机制的话,则要提前将这个模式打开,否则的话则并不会报任何的错误

    #$pdo->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC);
    配合try{}catch(PDOException $e){
    两个方法
    $e->getMessage() #获取错误的内容
    $e->getLine() #获取错误的行
    }
    $pdo->beginTransaction()
    $pdo->commit()
    $pdo->rollBack()

    -------------------------------------------
    session
    ------------------------------------------
    $_SESSION
    作用也是跟踪用户信息

    过程:
    服务器创建->发送给客户的浏览器并保存的cookie中,或者是url地址中
    (保存的内容为一个唯一标识uid)(用户id身份)

    说明:
    如查客户端想与服务器进行交流的话,首先建立一个验证
    (相当于在一个商场办理一个全场的会员卡一样,要进行身份验证与发卡给你)

    1)提出办卡需求
    session_start();

    2)登记信息与充值金额

    3)在任何一家店铺购买需求
    session_start()

    4)核实身份金额(相当于查看用户信息)

    设置与获取uid(这个是会话的身份码,要在有客户无风需求的前准备好)
    session_id("")


    说明:
    执行session_start()功能:
    1.如果是第一次执行的话,则是发放身份码,并及时的使用身份码
    2.如果是第二次执行的话,则是验证身份码

    释放会话
    1.unset($_SESSION['username']);
    2.session_destroy(); 临时的清理掉session中的数据而已


    session中的函数
    session_save_path()
    session_id()
    session_start()
    session_unset()
    session_name()
    session_unset()
    //保留原来的session值,但是不再允许再赋值
    session_abort()
    session_commit()=session_write_close();

    将session值进行编码
    session_encode()
    session_decode()

    重新生成sessionid
    session_regenerate_id();自动生成
    设置或者是读取缓存限制器

    session_cache_limiter()
    session_set_cookie_params()

    cookie
    ------------------------------------------
    $_COOKIE
    1.设置setcookie($name,$value,$expir,$path,$domain,$secure,$httponly)

    2.如果想让中文不编码的话则要用setrawcookie(),具体的用法跟上面的一样

    3.设置cooke有一个作用的目录范围,默认是在当前的目录中以及这个目录的子目录可以使用.如果想让这个cookie值在所有的目录中都能使用,则要用"/",

    4.cookie的清除,在哪个目录中设置就要在哪个目录中清除,因为在服务器上面就是保存在这个目录中的

    5.当你的cookie值并不是你本身所设定的,而是通过第三方的单点登录这样的方式,则我们清除cookie是没有用的,必要要清除这个域名下面的cookie而这个时候一定要加第五个参数就是$cookie

    6.如果$secure设置为true则说明这个cookie值读不出(也就是说只能通过https访问)

    7.如果httponly设置为真的时候 ,则cookie值只能服务器端能输出,而客户端语言比如js就不能输出

    模拟用户登录与登出
    -------------------------------------------
    在php中"===",是恒等的意思,1,值不等,2.数据类型要相同


    名字空间

    文件处理

  • 相关阅读:
    如何使不同时区的时间与京8区一致?(JS实现)
    再论递归
    如何实现keep-alive
    [小tips]使用vscode,根据vue模板文件生成代码
    gulp-load-task 解决 gulpfile.js 过大的问题
    《Vue 编程房内考》
    前端开发笔试题汇总
    HTTP状态码及其含义 503 500 401 200 301 302
    IE, FF, Safari前端开发常用调试工具
    DOCTYPE与浏览器模式详解(标准模式&混杂模式)
  • 原文地址:https://www.cnblogs.com/leigepython/p/8595833.html
Copyright © 2011-2022 走看看