为了账号安全,请及时绑定邮箱和手机立即绑定

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • //* 将用户数据保存到cookie中的一个简单方法 */
    $secureKey = 'imooc'; //加密密钥
    $str = serialize($userinfo); //将用户信息序列化
    //用户信息加密前
    $str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB));
    //用户信息加密后
    //将加密后的用户数据存储到cookie中
    setcookie('userinfo', $str);
    
    //当需要使用时进行解密
    $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB);
    $uinfo = unserialize($str);
    echo "解密后的用户信息:<br>";
    print_r($uinfo);


    查看全部
  • php读取文件内容

    php有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents(),可以将整个文件全部读取到字符串中。

    $contents=file_get_contents("./test.txt");

    file_get_contents可以通过参数控制读取内容的开始点以及长度。

    $content=fule_get_contents('./test.txt',null.null,100,500);

    php中也有类似c语言操作文件的方法,使用fopen,fgets,fread等方法,fgets可以从文件指针中读取一行,freads可以读取指定长度的字符串。

    $fp=fopen('./test.txt','rb');
    while(!feof($fp)){
        echo fgets($fp);..读取一行
    }
    fclose($fp);

    使用fopen打开的文件最好使用发close关闭文件指针,以避免文件句柄被占用

    查看全部
  • 使用session来存储登陆信息

    session可以存储多种类型的数据,常用来存储登陆数据,购物车数据等等。

    一般来说登陆信息既可以存在cookie中也可以存在session中,差别在于session可以方便的存储多种数据类型,而cookie只能存储字符串类型,,同时对于一些安全性较高的数据cookie需要进行格式化加密存储,而session存储在服务端安全性更高。

    php中使用base64进行加密:

    $secureKey = 'imooc'; //加密密钥
    $str = serialize($userinfo); //将用户信息序列化
    $str = base64_encode(mcrypt_encrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), $str, MCRYPT_MODE_ECB));

    php使用base64解密

    $secureKey = 'imooc'; //加密密钥
    //当需要使用时进行解密
    $str = mcrypt_decrypt(MCRYPT_RIJNDAEL_256, md5($secureKey), base64_decode($str), MCRYPT_MODE_ECB);


    查看全部
  • 删除与销毁session

    删除某一个session可以使用php中的unset函数,删除后会从全局变量$_SESSION中去除

    要删除所有session,可以使用session_destroy();函数销毁当前session,session_destroy函数会删除所有数据,但是session_id仍然存在。

    session_destroy并不会立即销毁全局变量$_SESSION中的值,只有当下次再访问的时候,$_SESSION才为空,如果需要立即销毁$_SESSION,可以使用unset函数

    如果需要同时销毁cookie中的session_id,一般做退出操作会使用到,可以显式的调用setcookie方法删除session_id的cookie值。

    查看全部
  • 使用session

    在php中使用session非常简单,先执行session_start()方法开启session,然后通过全局变量$_SESSION进行session读写。

    session会自动对设置的值进行encode和decode,因此session可以支持任意数据类型,包括数据与对象等。

    默认情况下,session是以文件的形式存储在服务器上的,因此当一个页面开启了session之后,会独占这个session文件,这样会导致当前用户的其他并发访问无法执行等待,可以采用缓存或者数据库的形式存储来解决这个问题。

    查看全部
    0 采集 收起 来源:使用session

    2019-01-28

  • session和cookie的异同

    cookie存储在客户端,建立起用户与服务器之前的联系,通常可以解决很多问题,但同时存在一些局限

    1、cookie相对不是太安全,容易被盗用导致cookie欺骗

    2、单个cookie的值最大只能存储4k

    3、每次请求都需要进行网络传输,占用宽带


    session将用户的会话数据存储在服务端,没有大小限制,通过一个session_id进行用户识别,php默认情况下session_id是通过cookie来保存,也可以通过参数来实现,只要能将session_id传递到服务端进行识别的机制都可以使用session。

    //开始使用session
    session_start();
    //设置一个session
    $_SESSION['TEST']="VALUE";
    //显示当前session_id
    echo session_id();
    //读取session值
    echo $_SESSION['TEST'];
    //销毁一个session
    unset($_SESSION['TEST']);
    查看全部
  • cookie中的路径控制来控制设置cookie在哪个路径下有效,默认为'/',在所有路径下有效,当设置了其他路径过后则只在设定的路径已经子路径下有效。

    一般情况下大多是使用所有路径,只有在极少数有特殊需求时会设置路径,这种情况下只在指定的路径中才回传递cookie值,可以节省数据的传输,增强安全性以及提高性能。

    查看全部
  • cookie的删除与过期时间

    在php中删除cookie也是采用setcookie来实现,将过期时间设置到当前时间之前则该cookie自动失效。

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

    也可以通过header来删除cookie

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

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

    查看全部
  • php设置cookie最常用的方法是使用setcookie函数,setcookie具有7个可选参数,常用为前5个:

    name(cookie名称):可以通过$_COOKIE['NAME']进行访问

    value(cookie的值)

    exprie(过期时间):Unix时间戳格式,默认0,标识浏览器关闭后失效

    path(有效路径):若设置为'/'则整个网站都有效

    domain(有效域):默认整个域名有效


    php中还有一个设置cookie的函数setrawcookie,setrawcookie与setcookie基本一样,唯一区别就是value值不会自动进行urlencode,因此使用时需要手动进行urlencode。

    因为cookie是用过http标头进行设置的,所以也可以使用header方法进行设置。

    header("Set-Cookie:cookie_name=value");


    查看全部
    0 采集 收起 来源:设置cookie

    2019-01-28

  • cookie简介

    cookie是保存在客户端浏览器上的数据,我们通过cookie来跟踪与存储用户数据,一般情况下,cookie通过http headers从服务端返回到客户端,多数web程序都支持cookie的操作,因为cookie是存在于http标头之中,所以必须在其他信息输出以前进行设置,类似于heade函数的使用限制。

    php通过setcookie函数进行cookie的设置,任何从浏览器发回的cookie,php都会自动存储在$_COOKIE的全局变量中,可以通过$_COOKIE["key"]的形式读取cookie的值。

    php中cookie使用非常广泛,进程用来存储用户的登陆信息,购物车等,在使用session时候经常使用cookie来存储会话id来识别用户,cookie具有有效期,有效期结束后cookie会自动从客户端删除。为了更好的进行安全控制,cookie还可以设置域跟路径。

    查看全部
    0 采集 收起 来源:cookie简介

    2019-01-28

  • 正则匹配常用案例:

    匹配数字字母与下划线:/^\w+$/i
    匹配邮箱格式:/\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*/
    匹配手机号:/^(0|86|17951)?(13[0-9]|15[012356789]|166|17[3678]|18[0-9]|14[57])[0-9]{8}$/
    匹配中文字符:/[\u4e00-\u9fa5]/gm
    匹配身份证号:/^(^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$)|(^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])((\d{4})|\d{3}[Xx])$)$/
    匹配双字节字符:/[^\x00-\xff]/igm
    匹配行首行位空白:/(^\s*)|(\s*$)/
    匹配url地址:/^https?:\/\/(([a-zA-Z0-9_-])+(\.)?)*(:\d+)?(\/((\.)?(\?)?=?&?[a-zA-Z0-9_-](\?)?)*)*$/i
    匹配邮编:/^[1-9]\d{5}(?!\d)$/
    匹配日期:/^[1-2][0-9][0-9][0-9]-[0-1]{0,1}[0-9]-[0-3]{0,1}[0-9]$/


    查看全部
  • 正则表达式搜索与替换

    通过正则搜索与替换可以调整目标字符串格式,改变字符串中匹配字符串的顺序等

    例:

    $string = 'April 15, 2014';
    $pattern = '/(\w+) (\d+), (\d+)/i';
    $replacement = '$3, ${1} $2';
    echo preg_replace($pattern, $replacement, $string); //结果为:2014, April 15

    以上例子中通过小括号进行匹配内容的分组,$1表示第一个匹配到的字符串,${1}$1是等效的。


    查看全部
  • 对象的高级特性

    使用比较运算符==判断两个实例的所有属性是否相等

    使用全等运算符===判断是否为同一个对象

    使用系统方法serialize把对象序列化成字符串,用于存储或者传递数据

    使用系统方法unserialize把字符串反序列化成对象



    查看全部
  • 重载

    php中的重载指的是动态的创建属性与方法,通过魔术方法来实现的,属性的重载通过__set、__get、__isset、__unset来分别实现对属性的赋值、读取、判断属性是否设置、销毁属性。

    方法的重载通过__call方法,在调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic方法重载。

    __call($name, $args)

    通过判断重载方法的$name值确定调用方法



    查看全部
  • 对象继承:

    通过关键字extends实现类的继承

    class 子类名 extends 父类名{

    }


    查看全部

举报

0/150
提交
取消
课程须知
需要有一定的网页基础知识如HTML、CSS样式等,并且已经学习完成《PHP入门篇》对PHP已经有了简单的了解,如变量、常量、数据类型等。
老师告诉你能学到什么?
全面的掌握PHP的理论知识与实践中的应用方法,提高编程能力与掌握网页开发技能。

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!