首页 后端开发 php教程 php4的session功能评述(二)_PHP教程

php4的session功能评述(二)_PHP教程

Jul 21, 2016 pm 04:04 PM
decode encode session 功能 比较

比较模糊的是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)         $tmpStr = substr($data, 0, strlen($matchStr));  
        if (strcmp($tmpStr, $matchStr) != 0) return "";  
    }  

    $typeStart = $matchStart + strlen($matchStr);  
    $dataType = substr($data, $typeStart, 1);  

    if (strcmp($dataType, "s") == 0) {   /* string */  
        $lenStart = $typeStart + 2;  
        $lenEnd = strpos($data, ":", $lenStart) - 1;  
        $lenLen = $lenEnd - $lenStart + 1;  
        $strLen = substr($data, $lenStart, $lenLen);  

        $strStart = $lenEnd + 3;  
        $strResult = substr($data, $strStart, $strLen);  
        return $strResult;  
    } else if (strcmp($dataType, "i") == 0 ||  
        strcmp($dataType, "d") == 0) { /* number */  
        $numStart = $typeStart + 2;  
        $numEnd = strpos($data, ";", $numStart) - 1;  
        $numLen = numEnd - numStart + 1;  
        $numResult = substr($data, $numStart, $numLen);
        return $numResult;
    } else {
        return "";
    }
}
?>                 

www.bkjia.comtruehttp://www.bkjia.com/PHPjc/315854.htmlTechArticle比较模糊的是session_decode和session_encode: bool session_decode(string data); session_decode() decodes the session data in data, setting variables stored in the session. bo...
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

小米14 Pro怎么开启nfc功能? 小米14 Pro怎么开启nfc功能? Mar 19, 2024 pm 02:28 PM

如今手机的性能和功能越来越强大,几乎所有手机都配备了便捷的NFC功能,方便用户进行移动支付和身份认证。然而,有些小米14Pro的用户可能不清楚如何启用NFC功能。接下来,让我详细向大家介绍一下。小米14Pro怎么开启nfc功能?步骤一:打开手机的设置菜单。步骤二:找到并点击“连接和共享”或“无线和网络”选项。步骤三:在连接和共享或无线和网络菜单中,找到并点击“NFC和支付”。步骤四:找到并点击“NFC开关”。一般情况下,默认是关闭的状态。步骤五:在NFC开关页面上,点击开关按钮,将其切换为开启状

vivox100s和x100区别:性能对比及功能解析 vivox100s和x100区别:性能对比及功能解析 Mar 23, 2024 pm 10:27 PM

vivox100s和x100手机都是vivo手机产品线中的代表机型,它们分别代表了vivo在不同时间段内的高端技术水平,因此这两款手机在设计、性能和功能上均有一定区别。本文将从性能对比和功能解析两个方面对这两款手机进行详细比较,帮助消费者更好地选择适合自己的手机。首先,我们来看vivox100s和x100在性能方面的对比。vivox100s搭载了最新的

自媒体到底是什么?它的主要特点和功能有哪些? 自媒体到底是什么?它的主要特点和功能有哪些? Mar 21, 2024 pm 08:21 PM

随着互联网的快速发展,自媒体这个概念已经深入人心。那么,自媒体到底是什么?它有哪些主要特点和功能呢?接下来,我们将一一探讨这些问题。一、自媒体到底是什么?自媒体,顾名思义,就是自己就是媒体。它是指通过互联网平台,个人或者团队可以自主创建、编辑、发布和传播内容的信息载体。不同于传统媒体,如报纸、电视、电台等,自媒体具有更强的互动性和个性化,让每个人都能成为信息的生产者和传播者。二、自媒体的主要特点和功能有哪些?1.低门槛:自媒体的崛起降低了进入媒体行业的门槛,不再需要繁琐的设备和专业的团队,一部手

iPhone 16 Pro CAD 图曝光 加入第二个新按键 iPhone 16 Pro CAD 图曝光 加入第二个新按键 Mar 09, 2024 pm 09:07 PM

iPhone16Pro的CAD文件已经曝光,设计与先前的传闻一致。去年秋天,iPhone15Pro新增了Action按钮,而今年秋天,Apple似乎计划对这款硬件的尺寸进行微小的调整。加入Capture按钮据传言,iPhone16Pro可能会新增第二个新按钮,这将是继去年之后连续第二年增加新按钮。传闻称新的Capture按钮将被设置在iPhone16Pro的右下侧,这一设计有望让相机控制更加便捷,同时还能让Action按钮用于其他功能。这个按钮将不再仅仅是一个普通的快门按钮。关于相机,从目前iP

华为 Pocket2怎么隔空刷抖音? 华为 Pocket2怎么隔空刷抖音? Mar 18, 2024 pm 03:00 PM

隔空滑动屏幕是华为的一项功能,在华为mate60系列中可以说是备受好评,这个功能是通过利用手机上的激光感应器和前置摄像头的3D深感摄像头,来完成一系列不需要触碰屏幕的功能,比如说隔空刷抖音,但是华为Pocket2应该要怎么隔空刷抖音呢?华为Pocket2怎么隔空截图?1、打开华为Pocket2的设置2、然后选择【辅助功能】。3、点击打开【智慧感知】。4、打开【隔空滑动屏幕】、【隔空截屏】、【隔空按压】开关就可以了。5、在使用的时候,需要再距离屏幕20~40CM处,张开手掌,待屏幕上出现手掌图标,

WPS Word怎么设置行距让文档更工整 WPS Word怎么设置行距让文档更工整 Mar 20, 2024 pm 04:30 PM

WPS是我们常用的办公软件,在进行长篇文章的编辑时,经常会因为字体太小而看不清楚,所以会对字体和整个文档进行调整。例如:把文档进行行距的调整,会让整个文档变得非常清晰,我建议各位小伙伴们都要学会这个操作步骤,今天就分享给大家,具体的操作步骤如下,快来看一看!打开要调整的WPS文本文件,在【开始】菜单中找到段落设置工具栏,你会看到行距设置小图标(如图中红色线圈所示)。2、点击行距设置右下角的小倒三角形,会出现相应的行距数值,可以选择1~3倍行距(如图箭头所示)。3、或者点击鼠标右键点击段落,就会出

小红书账号管理软件有哪些功能?怎么经营小红书账号? 小红书账号管理软件有哪些功能?怎么经营小红书账号? Mar 21, 2024 pm 04:16 PM

随着小红书在年轻人中的流行,越来越多的人开始利用这一平台分享各方面的经验和生活见解。如何有效管理多个小红书账号成为一个关键问题。在本文中,我们将讨论一些小红书账号管理软件的功能,并探讨如何更好地经营小红书账号。随着社交媒体的发展,许多人发现自己需要管理多个社交账号。对于小红书用户来说,这也是一个挑战。一些小红书账号管理软件可以帮助用户更轻松地管理多个账号,包括自动发布内容、定时发布、数据分析等功能。通过这些工具,用户可以更高效地管理他们的账号,提高账号的曝光率和关注度。另一、小红书账号管理软件有

TrendX 研究院:Merlin Chain 项目分析及生态盘点 TrendX 研究院:Merlin Chain 项目分析及生态盘点 Mar 24, 2024 am 09:01 AM

根据3月2日数据统计,比特币二层网络MerlinChain总TVL已达30亿美元。其中比特币生态资产占比达90.83%,包括价值15.96亿美元的BTC以及4.04亿美元的BRC-20资产等。上一个月,MerlinChain在开启质押活动14天内,其TVL总额就已经达到了19.7亿美元,超过了去年11月份上线也是最近同样引人注目的Blast。2月26日,MerlinChain生态内的NFT总价值超过了4.2亿美元,成为除以太坊以外NFT市值最高的公链项目。项目简介MerlinChain是OKX支

See all articles