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

PHP进阶篇

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

    官方定义:

    1string serialize ( mixed $value )

    serialize() 返回字符串,此字符串包含了表示 value 的字节流,可以存储于任何地方。这有利于存储或传递 PHP 的值,同时不丢失其类型和结构。 想要将已序列化的字符串变回 PHP 的值,可使用 unserialize()。serialize() 可处理除了 resource 之外的任何类型。甚至可以 serialize() 那些包含了指向其自身引用的数组。你正 serialize() 的数组/对象中的引用也将被存储。 当序列化对象时,PHP 将试图在序列动作之前调用该对象的成员函数 __sleep()。这样就允许对象在被序列化之前做任何清除操作。类似的,当使用 unserialize() 恢复对象时, 将调用 __wakeup() 成员函数。

    对象的序列化

    所有php里面的值都可以使用函数serialize()来返回一个包含字节流的字符串来表示。unserialize()函数能够重新把字符串变回php原来的值。 序列化一个对象将会保存对象的所有变量,但是不会保存对象的方法,只会保存类的名字。

    为了能够unserialize()一个对象,这个对象的类必须已经定义过。如果序列化类A的一个对象,将会返回一个跟类A相关,而且包含了对象所有变量值的字符串。 如果要想在另外一个文件中解序列化一个对象,这个对象的类必须在解序列化之前定义,可以通过包含一个定义该类的文件或使用函数spl_autoload_register()来实现。

     

    通过官方手册的介绍可以看出serialize()可以将出resource之外的任何类型序列化为字符串,以存储在变量或会话之中。

    代码示例:

     序列化数组:

    1234$arr = ['name'=>'Tony''age'=>29, 'sex'=>'male'];$s = serialize($arr);var_dump($s);var_dump(unserialize($s));

    输出结果:

    #1 序列化后的字符串

    string(64) "a:3:{s:4:"name";s:4:"Tony";s:3:"age";i:29;s:3:"sex";s:4:"male";}"

    #2 对已序列化的字符串回复后的原对象

    array(3) {
    ["name"]=>
    string(4) "Tony"
    ["age"]=>
    int(29)
    ["sex"]=>
    string(4) "male"
    }

     

    序列化对象

    此处引用手册中的示例代码

    12345678910111213141516171819202122232425262728293031<?php// classa.inc:     class A {      public $one = 1;           public function show_one() {          echo $this->one;      }  }   // page1.php:   include("classa.inc");     $a new A;  $s = serialize($a);  // 把变量$s保存起来以便文件page2.php能够读到  file_put_contents('store'$s); // page2.php:     // 要正确了解序列化,必须包含下面一个文件  include("classa.inc");   $s file_get_contents('store');  $a = unserialize($s);   // 现在可以使用对象$a里面的函数 show_one()  $a->show_one();?>

    在应用程序中序列化对象以便在之后使用,强烈推荐在整个应用程序都包含对象的类的定义。 不然有可能出现在解序列化对象的时候,没有找到该对象的类的定义,从而把没有方法的类__PHP_Incomplete_Class_Name作为该对象的类,导致返回一个没有用的对象。

    所以在上面的例子中,当运行session_register("a"),把变量$a放在会话里之后,需要在每个页面都包含文件classa.inc,而不是只有文件page1.php和page2.php。


    查看全部
  • AXD

    先用$filename='文件路径'    读取文件。

    再用$content=file_get_cintents($filename)将整个文件读取到一个字符串中。

    最后输出$content。

    查看全部
  • AXD

    各种语言的正则表达式:

    https://blog.csdn.net/QQ80583600/article/details/69062659

    php的正则表达式

    https://www.cnblogs.com/hellohell/p/5718319.html



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

    查看全部
  • $pagesize == $n 

    $offset == $m

    $page == $page


    查看全部
  • mysql_query是查询数据

    insert into user(name, age, class) values('王二', 19, '高三五班')"  是插入数据

    查看全部
  • <?php

    //连接数据库

    mysql_connect('127.0.0.1', 'code1', '');

    mysql_select_db('code1');

    mysql_query("set names 'utf8'");

    //已知的数据变量有

    $name = '李四';

    $age = 210;

    $class = '高三一班';

    //在这里进行数据查询

    $sql = "insert into user(name, age, class) 

    values('$name', '$age', '$class')";

    mysql_query($sql); //执行插入语句

    $uid = mysql_insert_id();

    echo $uid;


    查看全部
  • 在数据库建立连接以后就可以进行查询,采用mysql_query加sql语句的形式向数据库发送查询指令。

    $res = mysql_query('select * from user limit 1');

    对于查询类的语句会返回一个资源句柄(resource),可以通过该资源获取查询结果集中的数据。

    $row = mysql_fetch_array($res);
    var_dump($row);


    查看全部
  • mysql扩展进行数据库连接的方法:

    $link = mysql_connect('mysql_host', 'mysql_user', 'mysql_password');


    查看全部
    0 采集 收起 来源:PHP数据库扩展

    2018-07-27

  • 一般情况下常说的LAMP架构指的是:Linux、Apache、Mysql、PHP

    查看全部
  • 异常抛出被用于在遇到未知错误,或者不符合预先设定的条件时,通知客户程序,以便进行其他相关处理,不至于使程序直接报错中断。

    当代码中使用了try catch的时候,抛出的异常会在catch中捕获,否则会直接中断。

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

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

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

    4. 如果需要同时销毁cookie中的session_id,通常在用户退出的时候可能会用到,则还需要显式的调用setcookie方法删除session_id的cookie值

    全部删除,且值为空

    session_start();
    $_SESSION['name'] = 'jobs';
    $_SESSION['time'] = time();
    unset($_SESSION);
    session_destroy(); 
    var_dump($_SESSION); //此时已为空


    查看全部
  • cookie将数据存储在客户端,建立起用户与服务器之间的联系,通常可以解决很多问题,但是只能储存4k,不太安全,且每次请求都会占用网络传输。

    session是将用户会话存储再服务端,没有大小限制,session id也可以通过参数来实现,只要能将session id传递到服务端进行识别的机制都可以使用session。

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

    查看全部
  • extends继承

    查看全部

举报

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

微信扫码,参与3人拼团

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

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