首页
新闻
UniX技术
数据库
经验交流
PHP
Linux考试认证
首页
>
PHP
php4的session功能评述(二)
时间:2009-05-08 17:06:26 作者:chinaitlab
我要投稿
Linux初探欢迎您的投稿,投放方法请点击
这里
查看,我们会定期赠送精美小礼品给优秀的投稿作者。海纳百川 取则行远!LinuxGoo欢迎您的到来。
比较模糊的是session_decode和session_encode:
bool session_decode(string data);
session_decode() decodes the session data in data, setting variables
st......
比较模糊的是session_decode和session_encode:
bool session_decode(string data);
session_decode() decodes the session data in data, setting variables
stored in the session.
bool session_encode(void);
session_encode() returns a string with the contents of the current
sessionencoded within.
php manual里面好象没有相关的例子。从字面意思来看decode是把用户的串
解析出来以后set到session里面,encode则是把session的数据“打包”返回
给用户。这样看来encode的作用可能更大一些,用户register数据到session
里面以后应该是用encode把数据取出来的,但是encode返回的东西仍需要处理,
比如:
session_register("val1");
$val1 = "abcde"
session_register("val2");
$val1 = 1234
session_register("val3");
$val1 = 123.45
那么session_encode返回的东西是:
val1:s:5:"abcde";val2:i:1234;val3:d:123.45;
很明显,'s'是string,'i'和'd'是数字,'s'类型的变量需要长度。
如果你的session id是aaeebbcfd4455ec2c0d5cb590f8fab74,那么这串东西实际
上是存在/tmp/aaeebbcfd4455ec2c0d5cb590f8fab74文件当中。
现在需要你自己把这串东西做处理,析出你想要的session data。很奇怪php4
没提供一个方便的接口实现已register变量的解析... 或者有我没找着。
先自己写一个了...
session_data_init取出所有“打包”的session_data
session_data_get根据变量名取得数据
用:
$data = session_data_init( );
$result = session_data_get($data, "val1");
就可以把val1的数据取出来。
<?
/*
* get all date registered in the session
*/
function session_data_init( ) {
$sessionData = session_encode();
return $sessionData;
}
?>
<?
/*
* extract one variable from enconded session data
*/
function session_data_get($data, $name) {
$matchStr = $name."|";
$matchStart = strpos($data, $matchStr);
if ($matchStart == 0) {
if (strlen($data) < strlen($matchStr)) return "";
$tmpStr = substr($data, 0, strlen($matchStr));
if (strcmp($tmpStr, $matchStr) != 0) return "";
}
$typeStart = $matchStart strlen($matchStr);
1
/
2
1
2
下一页
尾页
如果您需转载 php4的session功能评述(二),请注明来自LinuxGoo.com,其版权归原作者所有。请广大网友留言时遵纪守法,使用文明用语。如果您在应用中有什么问题,请在下面留言,我们会尽快解答。
来顶一下
返回首页
发表评论
共有
条评论
用户名:
密码:
验证码:
匿名发表
相关文章
Oracle中压缩数据节省空间和提高速度
使用表压缩来节省空间并提高查询性能 很多决策支持系统通常都涉及到存
第三方认证考试大纲:LPIC201考纲
2.214.5 一般排错 重量级:1 描述:考生应该能够辨认并标志引导程序和内核
Ubuntu8.04设置CompizFusion/3D桌面
点击 系统->首选项->Advanced Desktop Effects Settings 打开CompizConfi
PHP
如何用存储过程及SQL代码创建登录、用户和
首先理解什么是登录,什么是用户,什么是角色:登录:SQL Server2005中,有两种创建
sql2000安装问题
前些日子用GHOST的系统重装了电脑,发现SQL怎么也安装不上了,弄了N长时间发
修改VMware虚拟机网卡MAC地址的方法总结
修改MAC地址有两种方法:一、修改vmx配置文件修改vmx配置文件的两种方
RHEL5 Xen 虚拟网络管理及虚拟机的安装
Xen的虚拟化由于使用的是"半虚拟化"(Para-virtualization),所有的硬件只
MSSQL output 使用
--存储过程output 输出参数 可以是一个字符串return num --只能是整数CRE
红帽认证:RedHat回归Linux桌面
过去在桌面领域Red Hat和其他Linux发行版是齐头并进,然后它就退出了。用R
怎样查看当前正在执行什么SQL语句?
简介大家都知道使用sp_who2这个命令来查看当前正在的执行的SQL语句的spi
Oracle错误:ORA-27121: unable to determine
今天在用SQLPLUS登陆数据库时,忽然报了一个错误,错误的代码如下:ORA-01034:
oracle 10g sqlplus 创建和调用存储过程(pr
sqlplus中创建存储过程。 创建存储过程: oracle存储过程 CREATE OR REPLA
An Introduction to Dynamic Management Vi
An Introduction to Dynamic Management Views and Functions in SQL Se
新手看招 手把手教你安装VMware虚拟机
VMware Workstation虚拟机是一个在Windows或Linux计算机上运行的应用
PHP聊天室技术(1)
PHP聊天室技术 黄国辉1.前言上网聊天是时下最流行的交友方式。各大网站推
栏目热门
PHP程序为什么"不适用"大型系统的9大原因
PHP守护Linux/Unix进程
file_get_contents和curl函数用法
PHP的PDO类教程
Php SqlServer实现分页显示
站内搜索:
Linux
高级搜索
Powered by
Linux初探
© 1999-2009
RSS