仓酷云

标题: PHP教程之php4的session功效评述(二) [打印本页]

作者: 蒙在股里    时间: 2015-2-16 00:26
标题: PHP教程之php4的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) < strlen($matchStr)) return "";  
        $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 "";
    }
}
?>                 
也或许是因为我还没有真正的学到深处吧,说实在的,PHP中的很多高级点的应用,如PHP类、PHP函数基本还是不懂吧!
作者: 愤怒的大鸟    时间: 2015-2-16 02:36
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 柔情似水    时间: 2015-3-3 11:22
小鸟是第一次发帖(我习惯潜水的(*^__^*) 嘻嘻……),有错误之处还请大家批评指正,另外,前些日子听人说有高手能用php写驱动程序,真是学无止境,人外有人,天外有天。
作者: 因胸联盟    时间: 2015-3-11 10:20
学好程序语言,多些才是王道,写两个小时代码的作用绝对超过看一天书,这个我是深有体会(顺便还能练打字速度)。
作者: 若相依    时间: 2015-3-12 21:28
我还是强烈建议自己搭建php环境。因为在搭建的过程中你会遇到一些问题,通过搜索或是看php手册解决问题后,你会更加深刻的理解它们的工作原理,了解到php配置文件中的一些选项设置。
作者: 再见西城    时间: 2015-3-17 02:10
当然这种网站的会员费就几十块钱。
作者: 冷月葬花魂    时间: 2015-3-19 02:41
因为blog这样的可以让你接触更多要学的知识,可以接触用到类,模板,js ,ajax
作者: 不帅    时间: 2015-3-24 05:36
首先声明:我是一个菜鸟,是一个初学者。学习了一段php后总是感觉自己没有提高,无奈。经过反思我认为我学习过程中存在很多问题,我改变了学习方法后自我感觉有了明显的进步。
作者: 分手快乐    时间: 2015-3-25 16:18
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。
作者: 小女巫    时间: 2015-4-2 22:27
在我安装pear包的时候老是提示,缺少某某文件,才发现 那群extension 的排列是应该有一点的顺序,而我安装的版本的排序不是正常的排序。没办法我只好把那群冒号加了上去,只留下我需要使用的扩展。
作者: 兰色精灵    时间: 2015-4-10 12:29
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 山那边是海    时间: 2015-4-14 16:03
找到的的资料很多都是在论坛里的,需要注册,所以我一般没到一个论坛都注册一个id,所有的id都注册成一样的,这样下次再进来的时候就不用重复注册啦。当然有些论坛的某些资料是需要的付费的。
作者: 简单生活    时间: 2015-4-15 15:13
使用zendstdio 写代码的的时候,把tab 的缩进设置成4个空格是很有必要的
作者: 小妖女    时间: 2015-4-27 09:27
个人呢觉得,配wamp 最容易漏的一步就是忘了把$PHP$目录下的libmysql.dll拷贝到windows系统目录的system32目录下,还有重启apache。
作者: 飘灵儿    时间: 2015-5-1 16:50
真正的方向了,如果将来要去开发团队,你一定要学好smarty ,phplib这样的模板引擎,
作者: admin    时间: 2015-5-5 19:34
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 谁可相欹    时间: 2015-5-6 18:12
开发工具也会慢慢的更专业,每个公司的可能不一样,但是zend studio是个大伙都会用的。
作者: 爱飞    时间: 2015-5-10 03:23
有位前辈曾经跟我说过,phper 至少要掌握200个函数 编起程序来才能顺畅点,那些不熟悉的函数记不住也要一拿手册就能找到。所以建议新手们没事就看看php的手册(至少array函数和string函数是要记牢的)。
作者: 深爱那片海    时间: 2015-7-7 01:03
我要在声明一下:我是个菜鸟!!我对php这门优秀的语言也是知之甚少。但是我要在这里说一下php在网站开发中最常用的几个功能:
作者: 若天明    时间: 2015-7-7 02:16
其实没啥难的,多练习,练习写程序,真正的实践比看100遍都有用。不过要熟悉引擎
作者: 精灵巫婆    时间: 2015-7-8 05:19
要进行开发,搭建环境是首先需要做的事,windows下面我习惯把环境那个安装在C盘下面,因为我配的环境经常出现诡异事件,什么事都没做环境有的时候就不能用啦。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2