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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • <?php

    session_start();

    //假设用户登录成功获得了以下用户数据

    $userinfo = array(

        'uid'  => 10000,

        'name' => 'spark',

        'email' => 'spark@imooc.com',

        'sex'  => 'man',

        'age'  => '18'

    );

    header("content-type:text/html; charset=utf-8");


    /* 将用户信息保存到session中 */

    $_SESSION['uid'] = $userinfo['uid'];

    $_SESSION['name'] = $userinfo['name'];

    $_SESSION['userinfo'] = $userinfo;


    //* 将用户数据保存到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

    class Car {

        public $speed = 0; //汽车的起始速度是0

        

        public function speedUp() {

            $this->speed += 10;

            return $this->speed;

        }

    }

    //定义继承于Car的Truck类

    class Truck extends Car {

        public function speedUp() {

            $this->speed = parent::speedUp() + 50;

        }


    $car = new Truck();

    $car->speedUp();

    echo $car->speed;


    查看全部
  • 类属性必须定义为公有、受保护、私有之一。

    查看全部
  • class Car {
      function __construct() {
          print "构造函数被调用 \n";
      }
      function __destruct() {
          print “析构函数被调用 \n”;
      }
    }
    $car = new Car();

    查看全部
  • 元字符与转义

    正则表达式中具有特殊含义的字符称之为元字符,常用的元字符有:

    \ 一般用于转义字符
    ^ 断言目标的开始位置(或在多行模式下是行首)
    $ 断言目标的结束位置(或在多行模式下是行尾)
    . 匹配除换行符外的任何字符(默认)
    [ 开始字符类定义
    ] 结束字符类定义
    | 开始一个可选分支
    ( 子组的开始标记
    ) 子组的结束标记
    ? 作为量词,表示 0 次或 1 次匹配。位于量词后面用于改变量词的贪婪特性。 (查阅量词)
    * 量词,0 次或多次匹配
    + 量词,1 次或多次匹配
    { 自定义量词开始标记
    } 自定义量词结束标记

    //下面的\s匹配任意的空白符,包括空格,制表符,换行符。[^\s]代表非空白符。[^\s]+表示一次或多次匹配非空白符。 $p = '/^我[^\s]+(苹果|香蕉)$/'; $str = "我喜欢吃苹果"; if (preg_match($p, $str)) {     echo '匹配成功'; }

    元字符具有两种使用场景,一种是可以在任何地方都能使用,另一种是只能在方括号内使用,在方括号内使用的有:

    \ 转义字符
    ^ 仅在作为第一个字符(方括号内)时,表明字符类取反
    - 标记字符范围

    其中^在反括号外面,表示断言目标的开始位置,但在方括号内部则代表字符类取反,方括号内的减号-可以标记字符范围,例如0-9表示0到9之间的所有数字。

    //下面的\w匹配字母或数字或下划线。 $p = '/[\w\.\-]+@[a-z0-9\-]+\.(com|cn)/'; $str = "我的邮箱是Spark.eric@imooc.com"; preg_match($p, $str, $match); echo $match[0];

                 


    查看全部
    0 采集 收起 来源:元字符与转义

    2018-04-09

  • 正则表达式是对字符串进行操作的一种逻辑公式,就是用一些特定的字符组合成一个规则字符串,称之为正则匹配模式。

    $p = '/apple/';
    $str = "apple banna";
    if (preg_match($p, $str)) {
        echo 'matched';
    }

    其中字符串'/apple/'就是一个正则表达式,他用来匹配源字符串中是否存在apple字符串。

    PHP中使用PCRE库函数进行正则匹配,比如上例中的preg_match用于执行一个正则匹配,常用来判断一类字符模式是否存在。


    查看全部
  • 对象比较,当同一个类的两个实例的所有属性都相等时,可以使用比较运算符==进行判断,当需要判断两个变量是否为同一个对象的引用时,可以使用全等运算符===进行判断。

    class Car {
    }
    $a = new Car();
    $b = new Car();
    if ($a == $b) echo '==';   //true
    if ($a === $b) echo '==='; //false

    对象复制,在一些特殊情况下,可以通过关键字clone来复制一个对象,这时__clone方法会被调用,通过这个魔术方法来设置属性的值。

    class Car {
        public $name = 'car';
        
        public function __clone() {
            $obj = new Car();
            $obj->name = $this->name;
        }
    }
    $a = new Car();
    $a->name = 'new car';
    $b = clone $a;
    var_dump($b);

    对象序列化,可以通过serialize方法将对象序列化为字符串,用于存储或者传递数据,然后在需要的时候通过unserialize将字符串反序列化成对象进行使用。

    class Car {
        public $name = 'car';
    }
    $a = new Car();
    $str = serialize($a); //对象序列化成字符串
    echo $str.'<br>';
    $b = unserialize($str); //反序列化为对象
    var_dump($b);

                 


    查看全部
  • <?php

    class Car {

        public $speed = 0;

        //增加speedUp方法,使speed加10

        public function speedUp(){

            $this->speed+=10;

        }

    }

    $car = new Car();

    $car->speedUp();

    echo $car->speed;


    查看全部
  • <?php

    $user = array(

        'name' => 'spark198111115',

        'email' => 'spark@imooc.com',

        'mobile' => '13312345678'

    );

    //进行一般性验证

    if (empty($user)) {

        die('用户信息不能为空');

    }

    if ( strlen($user['name']) < 6) {

        die('用户名长度最少为6位');

    }

    if ( strlen($user['name']) > 20) {

        die('用户名长度最多为20位');

    }

    //用户名必须为字母、数字与下划线

    if (!preg_match('/^\w+$/i', $user['name'])) {

        die('用户名不合法');

    }

    //验证邮箱格式是否正确

    if (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $user['email'])) {

        die('邮箱不合法');

    }

    //手机号必须为11位数字,且为1开头

    if (!preg_match('/^1\d{10}$/i', $user['mobile'])) {

        die('手机号不合法');

    }

    echo '用户信息验证成功';


    查看全部
  • 文件读取:

    file_get_contents('./test.txt');   //可以将整个文件全部读取到一个字符串中。也可以通过参数控制读取内容的开始点与结束点。

    fopen

    fgets //可以从文件指针中读取一行

    freads

    查看全部
  • 注意:后面的第8、9、10、11章单做课程了,大家请去课程列表里查找,标题为“PHP进阶篇-***”。
    PHP进阶篇-函数 :http://www.imooc.com/learn/737
    PHP进阶篇-日期时间函数:http://www.imooc.com/learn/698
    PHP进阶篇-GD库图像处理:http://www.imooc.com/learn/701
    PHP进阶篇-字符串操作:http://www.imooc.com/learn/726

    查看全部
  • $sql = "update user set name = '曹操' where id=2 limit 1";
    if (mysql_query($sql)) {
        echo '更新成功';
    }

    同样的删除可以使用类似以下的代码:

    $sql = "delete from user where id=2 limit 1";
    if (mysql_query($sql)) {
        echo '删除成功';
    }

    对于删除与更新操作,可以通过mysql_affected_rows函数来获取更新过的数据行数,如果数据没有变化,则结果为0。

    $sql = "update user set name = '曹操' where id=2 limit 1";
    if (mysql_query($sql)) {
        echo mysql_affected_rows();
    }


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

    <?php

    session_start();

    //假设用户登录成功获得了以下用户数据

    $userinfo = array(

        'uid'  => 10000,

        'name' => 'spark',

        'email' => 'spark@imooc.com',

        'sex'  => 'man',

        'age'  => '18'

    );

    header("content-type:text/html; charset=utf-8");


    /* 将用户信息保存到session中 */

    $_SESSION['uid'] = $userinfo['uid'];

    $_SESSION['name'] = $userinfo['name'];

    $_SESSION['userinfo'] = $userinfo;


    //* 将用户数据保存到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);


    查看全部
  • $sql = "select * from user limit 1";

    $result = mysql_query($sql);


    //在这里获取一行数据

    $row=mysql_fetch_array($result);


    查看全部
  • 方法的重载通过__call来实现,当调用不存在的方法的时候,将会转为参数调用__call方法,当调用不存在的静态方法时会使用__callStatic重载。

    class Car {
        public $speed = 0;
        
        public function __call($name, $args) {
            if ($name == 'speedUp') {
                $this->speed += 10;
            }
        }
    }
    $car = new Car();
    $car->speedUp(); //调用不存在的方法会使用重载
    echo $car->speed;


    查看全部

举报

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

微信扫码,参与3人拼团

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

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