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

PHP进阶篇

Jason PHP开发工程师
难度初级
时长 9小时28分
学习人数
综合评分8.90
570人评价 查看评价
9.3 内容实用
8.8 简洁易懂
8.6 逻辑清晰
  • 说明:就算session内容被清空,也不影响session的整体存在,
    因为没有内容的情况下sessionid依然存在并保持和一开始一样。
    
    <?php
    //开始使用session
    session_start();
    //设置一个session
    $_SESSION['test'] = time();
    $_SESSION['test2'] = time()+1;
    //显示当前的session_id
    echo "session_id:".session_id();
    echo "<br>";
    
    //读取session值
    echo $_SESSION['test'];
    echo $_SESSION['test2'];
    
    //销毁一个session
    unset($_SESSION['test']);
    echo "<br>";
    echo $_SESSION['test2'];
    echo "<br>";
    var_dump($_SESSION);
    echo "<br>";
    echo "session数组中还有数组对<br>session_id".session_id();//输出id
    echo "<br>";
    
    
    //销毁第二个session
    unset($_SESSION['test2']);
    var_dump($_SESSION);
    echo "<br>";
    echo "session数组中无数组对<br>session_id".session_id();//输出id

    输出如下:

    session_id:tj08k7sgupasldk809m0dauvm1
    15222284231522228424
    1522228424
    array(1) {
      ["test2"]=>
      int(1522228424)
    }
    session数组中还有数组对
    session_idtj08k7sgupasldk809m0dauvm1
    array(0) {
    }
    session数组中无数组对
    session_idtj08k7sgupasldk809m0dauvm1

    说明:就算session内容被清空,也不影响session的整体存在,因为没有内容的情况下sessionid依然存在并保持和一开始一样。

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

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

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

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


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

    2018-03-27

  • PHP模式修饰符又叫模式修正符,是在正则表达式的定界符之外使用。主要用来调整正则表达式的解释,提扩展了正则表达式在匹配、替换等操作的某些功能,增强了正则的能力。

    模式修正符号功能描述
    i在和正则匹配是不区分大小写
    m

    将字符串视为多行。默认的正则开始“^”和结束“$”将目标字条串

    作为一单一的一“行”字符(甚至其中包括换行符也是如此)。如果

    在修饰符中加上“m”,那么开始和结束将会指点字符串的每一行的

    开头就是“^”结束就是“$”。

    s

    如果设定了这个修正符,那么,被匹配的字符串将视为一行来看,包

    括换行符,换行符将被视为普通字符串。

    x忽略空白,除非进行转义的不被忽略。
    e

    只用在preg_replace()函数中,在替换字符串中逆向引用做正常的替换

    ,将其(即“替换字符串”)作为PHP代码求值,并用其结果来替换所搜

    索的字符串。

    A

    如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分

    。比如说”/a/A”匹配”abcd”。

    D

    模式中的$字符权匹配目标字符的结尾。没有此选项时,如果最后一个

    字符是换行符的话,美元符号也会匹配此字符之前。如果设定了修正

    符m则忽略此项。

    E

    与”m”相反,如果使用这个修饰符,那么”$”将匹配绝对字符串的

    结尾,而不是换行符前面,默认就打开了这个模式。

    U贪婪模式,和问号的作用差不多,最大限度的匹配就是贪婪模式。


    查看全部
  • $host = '127.0.0.1';

    $user = 'code1';

    $pass = '';

    //在这里编写数据库连接代码

    $link = mysql_connect($host, $user, $pass);

    mysql_select_db('code1');

    mysql_query("set names 'utf8'");


    查看全部
  • try {

        throw new Exception('wrong');

    } catch(Exception $ex) {

        echo 'Error:'.$ex->getMessage().'<br>';

        echo $ex->getTraceAsString().'<br>';

    }

    echo '异常处理后,继续执行其他代码';


    查看全部
  • 如果构造函数定义成了私有方法,则不允许直接实例化对象了,这时候一般通过静态方法进行实例化,在设计模式中会经常使用这样的方法来控制对象的创建,比如单例模式只允许有一个全局唯一的对象。

    class Car {
        private function __construct() {
            echo 'object create';
        }
    
        private static $_object = null;
        public static function getInstance() {
            if (empty(self::$_object)) {
                self::$_object = new Car(); //内部方法可以调用私有方法,因此这里可以创建对象
            }
            return self::$_object;
        }
    }
    //$car = new Car(); //这里不允许直接实例化对象
    $car = Car::getInstance(); //通过静态方法来获得一个实例


    查看全部
  • 通过mysql的limit可以很容易的实现分页,limit m,n表示从m行后取n行数据,在PHP中我们需要构造m与n来实现获取某一页的所有数据。

    假定当前页为$page,每页显示$n条数据,那么m为当前页前面所有的数据,既$m = ($page-1) * $n,在知道了翻页原理以后,那么我们很容易通过构造SQL语句在PHP中实现数据翻页。

    $page = 2;
    $n = 2;
    $m = ($page - 1) * $n;
    $sql = "select * from user limit $m, $n";
    $result = mysql_query($sql);
    //循环获取当前页的数据
    $data = array();
    while ($row = mysql_fetch_assoc($result)) {
       $data[] = $row;
    }

    在上面的例子中,我们使用了$m与$n变量来表示偏移量与每页数据条数,但我们推荐使用更有意义的变量名来表示,比如$pagesize, $start, $offset等,这样更容易理解,有助于团队协作开发。


    查看全部
  • 跟Unix系统命令类似,PHP使用unlink函数进行文件删除。

    unlink($filename);

    删除文件夹使用rmdir函数,文件夹必须为空,如果不为空或者没有权限则会提示失败。

    rmdir($dir);


    查看全部
  • 与读取文件对应,PHP写文件也具有两种方式,最简单的方式是采用file_put_contents。

    $filename = './test.txt';
    $data = 'test';
    file_put_contents($filename, $data);

    上例中,$data参数可以是一个一维数组,当$data是数组的时候,会自动的将数组连接起来,相当于$data=implode('', $data);

    同样的,PHP也支持类似C语言风格的操作方式,采用fwrite进行文件写入。

    $fp = fopen('./test.txt', 'w');
    fwrite($fp, 'hello');
    fwrite($fp, 'world');
    fclose($fp);


    查看全部
  • 通过filesize函数可以取得文件的大小,文件大小是以字节数表示的。

    $filename = '/data/webroot/usercode/resource/test.txt';
    $size = filesize($filename);


    查看全部
  • fileowner:获得文件的所有者filectime:获取文件的创建时间filemtime:获取文件的修改时间fileatime:获取文件的访问时间

    其中最常用的是文件的修改时间,通过文件的修改时间,可以判断文件的时效性,经常用在静态文件或者缓存数据的更新。

    $mtime = filemtime($filename);
    echo '修改时间:'.date('Y-m-d H:i:s', filemtime($filename));


    查看全部
  • PHP具有丰富的文件操作函数,最简单的读取文件的函数为file_get_contents,可以将整个文件全部读取到一个字符串中。

    $content = file_get_contents('./test.txt');

    $contents .= fread($fp, 4096); //一次读取4096个字符

    查看全部
  • 删除某个session值可以使用PHP的unset函数,删除后就会从全局变量$_SESSION中去除,无法访问。

    session_start();
    $_SESSION['name'] = 'jobs';
    unset($_SESSION['name']);
    echo $_SESSION['name']; //提示name不存在

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


    查看全部
  • 在PHP中删除cookie也是采用setcookie函数来实现。

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

    可以看到将cookie的过期时间设置到当前时间之前,则该cookie会自动失效,也就达到了删除cookie的目的。


    查看全部
  • preg_match只能匹配一次结果,但很多时候我们需要匹配所有的结果,preg_match_all可以循环获取一个列表的匹配结果数组。

    $p = "|<[^>]+>(.*?)</[^>]+>|i";
    $str = "<b>example: </b><div align=left>this is a test</div>";
    preg_match_all($p, $str, $matches);
    print_r($matches);


    查看全部

举报

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

微信扫码,参与3人拼团

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

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