仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 895|回复: 19
打印 上一主题 下一主题

[学习教程] PHP编程:在PHP下完成耐久化

[复制链接]
第二个灵魂 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-2-4 00:30:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
PHP原始为Personal Home Page的缩写,已经正式更名为 "PHP: Hypertext Preprocessor"。注意不是“Hypertext Preprocessor”的缩写,这种将名称放到定义中的写法被称作递归缩写。   在PHP下完成耐久化

“耐久化”这个概念是笔者在Java中初次接触到的,经由过程这个特征,可以将使用法式对象转化成一系列字撙节(这被称尴尬刁难象序列化),以顺应收集传输或保留。最奇奥的是,被序列化的对象还可以被从头拆卸,复原成之前的模样。这意味着,该机制能主动抵偿操作体系间的差别。换句话说,一个在Windows体系的机械上被序列化的对象可以经由过程收集传输到一台Linux体系的机械上正确无误的从头拆卸。“耐久化”可使使用法式对象不受使用法式运转工夫的限制――可以将一个对象序列化,然后保留到磁盘上,在再次需求时停止拆卸,能美满完成一种“耐久”后果。

使人高兴的是,PHP也撑持这一特征,并且从PHP3就入手下手撑持了,它是经由过程Serialize()和Unserialize()这两个函数来完成的。其实,像ASP如许的开辟情况也隐式撑持这一特征――在Session或Application对象中保留使用法式对象就是一种耐久化的体现,但遗憾的是,ASP并没有显式供应这一接口。

在PHP中,几近任何类型(这包含Integer、Boolean、Float、Array和Object)的变量都可以被序列化。之所以说“几近”,是由于惟独Resource类型不撑持序列化,这完整是由于PHP中的Resource类型实际上是指针的原因。至于String类型,因为它自己就是字撙节,所以基本没有序列化的需要。

上面将引见Serialize()和Unserialize()两个函数的用法:

string serialize (mixed value):前往value被序列化后的字撙节;
mixed unserialize (string str):前往将str停止拆卸后的对象。

上面是这两个函数的使用实例:

<?php
//class.inc.php文件,用于保留类的信息

//用于测试的用户信息类
class Userinfo
{
var $username;
var $password;
var $datetime;
function Userinfo($username, $password, $datatime)
{
$this -> username = $username;
$this -> password = $password;
$this -> datetime = $datetime;
}
function output()
{
echo "User Information -> <br>";
echo "Username: ".$this -> username."<br>";
echo "Password: ".$this -> username."<br>";
echo "Datetime: ".$this -> username."<br>";
}
}
?>

<?php
//login.php文件,用于注册新用户

//导入类文件
require_once("class.inc.php");

//新建对象
$user = new Userinfo($_POST['username'], $_POST['password'], date("Y-n-j H:i:s"));
//序列化对象
$user = Serialize($user);

//将对象写入当地数据库
$con = mysql_connect();
mysql_select_db("test");
mysql_query($con, "INSERT INTO testTable (id, userinfo) VALUES ('1', '$user')");
mysql_close($con);
?>

<?php
//userinfo.php文件,用于显示用户信息

require_once("class.inc.php");

//从数据库中掏出对象
$con = mysql_connect();
mysql_select_db("test");
$result = mysql_query($con, "SELECT * FROM testTable WHERE id=1");
$record = mysql_fetch_assoc($result);
$user = Unserialize($record['userinfo']);
//输入用户信息
$user -> output();
mysql_free($result);
mysql_close($con);
?>

在对象序列化中,最主要的是在“拆卸”的页面中必定要包括该对象的类的界说信息,不然会呈现毛病。固然,上里只是用于测试,在实践的使用中,为了避免序列化后的对象的内容被更改,普通还要对字撙节停止“数字签名”,在拆卸时,再对“签名”停止验证,以避免对象信息被不法改动。

  不过语法好学,但是怎么用语法来实现每个人都有每个人的方式,几乎是各有千秋。然而借鉴别人成功的代码,绝对是有益无害,因此,多看那些经过千锤百炼凝出来的经典代码,是进阶的最好方法。
金色的骷髅 该用户已被删除
沙发
发表于 2015-2-4 13:14:52 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
admin 该用户已被删除
板凳
发表于 2015-2-9 23:16:01 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
冷月葬花魂 该用户已被删除
地板
发表于 2015-2-10 04:21:59 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
飘飘悠悠 该用户已被删除
5#
发表于 2015-2-21 00:31:49 | 只看该作者
写的比较杂,因为我也是个新手,不当至于大家多多指正。
活着的死人 该用户已被删除
6#
发表于 2015-3-4 11:48:45 | 只看该作者
首推的搜索引擎当然是Google大神,其次我比较喜欢 百度知道。不过搜出来的结果往往都是 大家copy来copy去的,运气的的概率很大。
因胸联盟 该用户已被删除
7#
发表于 2015-3-11 16:21:49 | 只看该作者
环境搭建好,当你看见你的浏览器输出“it works\\\\\\\"时你一定是喜悦的。在你解决问题的时候,我强烈建议多读php手册。
乐观 该用户已被删除
8#
发表于 2015-3-12 11:52:52 | 只看该作者
曾经犯过一个很低级的错误,我在文件命名的时候用了一个横线\\\\\\\'-\\\\\\\' 号,结果找了好几个小时的错误,事实是命名的时候 是不能用横线 \\\\\\\'-\\\\\\\' 的,应该用的是下划线  \\\\\\\'_\\\\\\\' ;
变相怪杰 该用户已被删除
9#
发表于 2015-3-13 00:50:13 | 只看该作者
这些都是最基本最常用功能,我们这些菜鸟在系统学习后,可以先对这些功能深入研究。
小女巫 该用户已被删除
10#
发表于 2015-3-14 14:38:33 | 只看该作者
我还是推荐用firefox ,配上firebug 插件调试js能省下不受时间。谷歌的浏览器最好也不少用,因为谷歌的大侠们实在是太天才啦,把一些原来的js代码加了一些特效。
谁可相欹 该用户已被删除
11#
发表于 2015-3-17 11:08:31 | 只看该作者
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
不帅 该用户已被删除
12#
发表于 2015-3-17 21:36:24 | 只看该作者
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
若相依 该用户已被删除
13#
发表于 2015-3-25 03:08:12 | 只看该作者
如果你已经到这种程度了,那么你已经可以做我的老师了。其实php也分很多的区域,
山那边是海 该用户已被删除
14#
发表于 2015-4-5 08:07:57 | 只看该作者
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
小妖女 该用户已被删除
15#
发表于 2015-4-20 12:39:45 | 只看该作者
最后介绍一个代码出错,但是老找不到错误方法,就是 go to wc (囧),出去换换气没准回来就找到错误啦。
分手快乐 该用户已被删除
16#
发表于 2015-4-22 05:15:56 | 只看该作者
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
老尸 该用户已被删除
17#
发表于 2015-5-1 20:09:16 | 只看该作者
先学习php和mysql,还有css(html语言很简单)我认为现在的效果比以前的方法好。
第二个灵魂 该用户已被删除
18#
 楼主| 发表于 2015-5-3 20:22:48 | 只看该作者
这些中手常用的知识,当你把我说的这些关键字都可以熟练运用的时候,你可以选择自己
蒙在股里 该用户已被删除
19#
发表于 2015-5-10 03:31:08 | 只看该作者
最后祝愿,php会给你带来快乐的同时 你也会给他带来快乐。
莫相离 该用户已被删除
20#
发表于 2015-6-8 10:08:11 | 只看该作者
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-11-1 15:23

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表