喜悦国际村 
» 游客:  注册 | 登录 | 搜索 | 统计 | 喜悦证交所 | 帮助

RSS 订阅当前论坛  

上一主题 下一主题
 27  1/3  1  2  3  > 
     
标题: [原创] php自写application功能相当于asp中的application  
 
piaofengnet
中级会员
Rank: 3Rank: 3



UID 82620
精华 0
积分 230
帖子 106
金钱 230 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-11-4
状态 离线
php自写application功能相当于asp中的application

<?php
/*
程序设计: 林建炫(飘枫设计室)
made in 广州 by 2006-11-04 日(今天刚好是毕业证照相日哦)
QQ: 5818500
Email: linzhenxuan@163.com
尊重他人也尊重自己!请勿删除该版权信息
如果你使用、修改请保留该信息!
*/
Function application($x,$y='')
{
//初始化
$files="temp/idr/application.php";
$file = substr($files,strrpos($files,"/")+1,strlen($files));
$dir = substr($files,0,strrpos($files,"/"));
$dir = explode("/",$dir);
$i=0;
//建立目录
foreach($dir as $a)
{
if($i==0)
{
$temp .= $a;
}
else
{
$temp .= "/".$a;
}

if(!is_dir($temp))
{
mkdir($temp);
};
$i++;
}
$file = realpath($temp)."\\".$file;
//建立文件
if (!file_exists($file))
{
$fp = fopen($file,w);
fputs($fp,"<?php\n\$application = array(\n");
fputs($fp,");?>");
fclose($fp);
}
//start
if(!$y)
{
include ($file);
$find = false;
foreach($application as $k => $j)
{
if($k==$x)
{
return $j;
$find=true;
break;
//找到了
}
if(!find)
{
return false;
}
}
}
else
/*
找到$x并给他的值$y
2种情况:
1.array没有任何东西
2.array有东西
*/
{
$fp = fopen($file,"r+");
$fs = file_get_contents($file);
@require($file);
$i=0;
$find = false;
$temp = "<?php\n\$application = array(\n";
foreach ($application as $a=>$b)
{
if($i==0)
{
if($a==$x)
{
$temp .= "'$x'=>'$y'\n";
$find = true;
}
else
{
$temp .= "'$a'=>'$b'\n";
}
}
else
{
if($a==$x)
{
$temp .= ",'$x'=>'$y'\n";
$find = true;
}
else
{
$temp .= ",'$a'=>'$b'\n";
}
}
$i++;
}
if($i==0)
{
if(!$find){$temp .= "'$x'=>'$y'";}
}
else
{
if(!$find){$temp .= ",'$x'=>'$y'";}
}
$temp .= ");?>";
ftruncate($fp, '0');
fputs($fp,$temp);
unset($fp);
}

}
//用法如下
application("user","2006-01-01");
echo application("user");
?>
2006-11-4 12:22 PM#1
查看资料  Blog  发短消息  顶部
 
qh663
版主
Rank: 7Rank: 7Rank: 7
中级会员


UID 30020
精华 0
积分 546
帖子 580
金钱 546 喜悦币
威望 0
人脉 0
阅读权限 100
注册 2004-7-13
来自 河源
状态 离线
[推荐阅读] PEA南京召集南京PHPer
值得借鉴一下,只加数据时有用。



五百多篇PHP学习资料
喜悦村BLOG
php团队接兼职项目QQ:80031807
PHP群:768844
2006-11-4 02:16 PM#2
查看资料  访问主页  Blog  发短消息  QQ  顶部
 
漠北怪叟
金牌会员
Rank: 6Rank: 6



UID 70640
精华 0
积分 2345
帖子 352
金钱 2345 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-29
状态 离线
[推荐阅读] 怎么样才能让PHP支持更多的函数
为了一个全局变量.这样写很多打开关闭操作.会不会影响效率?

你这个原理同discuz的模板有相同之理!
2006-11-5 01:30 PM#3
查看资料  Blog  发短消息  顶部
 
漠北怪叟
金牌会员
Rank: 6Rank: 6



UID 70640
精华 0
积分 2345
帖子 352
金钱 2345 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-29
状态 离线
[推荐阅读] 关于phpmyadmin显示问题。
我个人有个设想!
能不能用session对象模似出来呢?
2006-11-5 01:31 PM#4
查看资料  Blog  发短消息  顶部
 
漠北怪叟
金牌会员
Rank: 6Rank: 6



UID 70640
精华 0
积分 2345
帖子 352
金钱 2345 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-29
状态 离线
[推荐阅读] 世界500强公司德国贝塔斯曼招聘php程序员
<?
function application($key,$val=''){
         
        $old_session_id=session_id();                        //把用户session_id赋值
        session_id($common_session_id="dsafsfsfsdfsdfsfsdfsdfsf";//自行设定实际是一个md5结果
        if ($val){
                setcookie($key, $val,time()+352000);
        }else{
                $val=$_COOKIE[$key];
        }
        session_id($old_session_id);

}
?>
刚才随手写了个.没经过测试,不知是否能用~~~
2006-11-5 01:43 PM#5
查看资料  Blog  发短消息  顶部
 
piaofengnet
中级会员
Rank: 3Rank: 3



UID 82620
精华 0
积分 230
帖子 106
金钱 230 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-11-4
状态 离线
[推荐阅读] 这儿的人不喜欢回帖
不可以啊!
因为我的application是全局用的
可以用这个来聊天室。
session只是对单个用户来说的!
如果一样的话那我就不弄application了!
呵呵!
2006-11-5 07:20 PM#6
查看资料  Blog  发短消息  顶部
 
piaofengnet
中级会员
Rank: 3Rank: 3



UID 82620
精华 0
积分 230
帖子 106
金钱 230 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-11-4
状态 离线
[推荐阅读] PHP技术群4299507 / 30677629 欢迎加入技术讨论
我并没有看过discuz的代码之类的!
我学php不到一个月!
http://www.piaofen.cn/myphp/book
这个是我开发的。
其中那个在线的就是用这样的原理!
不过比现在这个application复杂了很多
2006-11-5 07:22 PM#7
查看资料  Blog  发短消息  顶部
 
漠北怪叟
金牌会员
Rank: 6Rank: 6



UID 70640
精华 0
积分 2345
帖子 352
金钱 2345 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-29
状态 离线
[推荐阅读] 重温MUD
<?
function application($key,$val=''){
         
        $old_session_id=session_id();                        //把用户session_id赋值
        session_id($common_session_id="dsafsfsfsdfsdfsfsdfsdfsf";//自行设定实际是一个md5结果
        if ($val){
               // setcookie($key, $val,time()+352000); //前面回帖时不知想什么.写错了行了...报歉!!
              $_SESSION[$key,$val];                  
       }else{
                $val=$_SESSION[$key];  //这行也错了
        }
        session_id($old_session_id);

}
?>
刚才随手写了个.没经过测试,不知是否能用~~~
2006-11-5 11:51 PM#8
查看资料  Blog  发短消息  顶部
 
漠北怪叟
金牌会员
Rank: 6Rank: 6



UID 70640
精华 0
积分 2345
帖子 352
金钱 2345 喜悦币
威望 0
人脉 0
阅读权限 70
注册 2006-3-29
状态 离线
[推荐阅读] 北京某知名互联网服务公司高薪招聘下列人才,正式录用最低7k!!!


QUOTE:
原帖由 piaofengnet 于 2006-11-5 07:20 PM 发表
不可以啊!
因为我的application是全局用的
可以用这个来聊天室。
session只是对单个用户来说的!
如果一样的话那我就不弄application了!
呵呵!
说明你对session的原理不了解.

这个有别于asp的..
我上面的程序.大家公用一个session_id,则实现了公共session也就是application的目的.

即设定一个公用session_id
取值或者写值后.
再把用户的预先保留的session_id还给用户.
2006-11-5 11:54 PM#9
查看资料  Blog  发短消息  顶部
 
piaofengnet
中级会员
Rank: 3Rank: 3



UID 82620
精华 0
积分 230
帖子 106
金钱 230 喜悦币
威望 0
人脉 0
阅读权限 30
注册 2006-11-4
状态 离线
[推荐阅读] 怎样有条件的Insert..?
上面的程序经过测试不能用。
Parse error: parse error, unexpected ',', expecting ']' in D:\AppServ\www\book\tt.php on line 8
还有那个
session_id($common_session_id="dsafsfsfsdfsdfsfsdfsdfsf";
改成
session_id($common_session_id="dsafsfsfsdfsdfsfsdfsdfsf");
2006-11-6 09:47 AM#10
查看资料  Blog  发短消息  顶部
 27  1/3  1  2  3  > 
     


  可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题 | 开通个人空间  


 


Powered by Discuz! 6.1.0  © 2001-2010 Comsenz Inc.
Processed in 0.026037 second(s), 6 queries

(冀ICP备05009913号) 管理员:sadly 邮箱/MSN: sadly@phpx.com QQ:824008(长隐) 清除 Cookies - - Archiver - WAP