公交车上荫蒂添的好舒服的电影-公用玩物(np双xing总受)-公用小荡货芊芊-公与妇仑乱hd-攻把受做哭边走边肉楼梯play-古装一级淫片a免费播放口

LOGO OA教程 ERP教程 模切知識交流 PMS教程 CRM教程 開發(fā)文檔 其他文檔  
 
網(wǎng)站管理員

PHP實(shí)現(xiàn)類似ASP里的Application對象

admin
2012年6月7日 1:56 本文熱度 3948
以前搞過一段時(shí)間的asp,覺得application這個(gè)對象很爽。。可以很容易的寫一個(gè)聊天室。。。后來逐漸轉(zhuǎn)到php,就一直為這事郁悶。。因?yàn)閜hp里面沒有對應(yīng)的東西。數(shù)據(jù)只能往數(shù)據(jù)庫或者文件里面寫才能實(shí)現(xiàn)共享。 今天在公司做聊天室的時(shí)候,靈機(jī)一動,居然讓我發(fā)現(xiàn)了一神奇的方法~~哈哈:
PHP里面的$_SESSION變量可以實(shí)現(xiàn)類似Application的功能,但重點(diǎn)在它不能跨瀏覽器進(jìn)程,或者說是跨用戶。。只能是單個(gè)用戶操作不同頁面時(shí)候的變量傳遞,是一種cookie的替代方案。

眾所周知,php里,調(diào)用session_start()之后,客戶瀏覽器會收到一個(gè)大概名叫PHPSESSID的cookie,這個(gè)叫session_id。不同頁面的參數(shù)共享就是靠這個(gè)變量實(shí)現(xiàn)的。

有時(shí),由于客戶端瀏覽器或者其他什么神奇的原因,導(dǎo)致無法正常發(fā)送 PHPSESSID的時(shí)候,我們可以手動發(fā)送,然后在php里面的session_start();之前,調(diào)用session_id("sessionid在這里");手工指定session_id ,這樣,就可以讓session工作正常。(比如瀏覽器不支持cookie,或用flash上傳文件的時(shí)候)

好了,關(guān)鍵的東西來了。如果我們讓每個(gè)用戶的session_id都一樣會怎么樣? 哈哈。ASP的Application功能便呼之欲出~~~

實(shí)現(xiàn)方法非常簡單: 在每個(gè)php頁面的前面都寫上下面的代碼: session_id("xxxx"); session_start(); 然后,你就可以像用Application對象那樣來使用$_SESSION了。?!伞?/BLOCKQUOTE>

    PS:ASP的Application對象是存儲在內(nèi)存里面的,而PHP的SESSION一般默認(rèn)是用文件來存的。不過也可以設(shè)置php.ini讓php用mysql數(shù)據(jù)庫存,甚至用memcached來存~~具體方法就不詳述了。。 chy提到session本來的作用是保存用戶的登錄信息等,是非常有用的。我這樣一弄,session就失去了它原有的功能。所以我搞了一個(gè)函數(shù),可以實(shí)現(xiàn)全局session和局部session共存?;ゲ桓蓴_。

/*
用法:
application('key','value'); //設(shè)置 key=value
$value = application('key'); //獲取 key的值
*/
function application()
{
$args = func_get_args(); //獲取輸入?yún)?shù)
if (count($args) >2 || count($args) < 1) return;
$ssid = session_id(); //保存當(dāng)前session_id
session_write_close(); //結(jié)束當(dāng)前session
ob_start(); //禁止全局session發(fā)送header
session_id("xxx"); //注冊全局session_id
session_start(); //開啟全局session
$key = $args[0];
if (count($args) == 2) //如果有第二個(gè)參數(shù),那么表示寫入全局session
{
$re = ($_SESSION[$key] = $args[1]);
}
else // 如果只有一個(gè)參數(shù),那么返回該參數(shù)對應(yīng)的value
{
$re = $_SESSION[$key];
}
session_write_close(); //結(jié)束全局session
session_id($ssid); //重新注冊上面被中斷的非全局session
session_start(); //重新開啟
ob_end_clean(); //拋棄剛剛由于session_start產(chǎn)生的一些header輸出
return $re;
}

    當(dāng)然,這樣操作的成本有點(diǎn)高。。不過在實(shí)際使用中,基本不會遇到使用全局session和局部session的頻率都很高的情況。所以可以按需求封裝局部session或者是全局session。 上面那個(gè)函數(shù)封裝的是全局session,稍微修改就可以實(shí)現(xiàn)局部session。


該文章在 2012/6/7 1:56:51 編輯過
關(guān)鍵字查詢
相關(guān)文章
正在查詢...
點(diǎn)晴ERP是一款針對中小制造業(yè)的專業(yè)生產(chǎn)管理軟件系統(tǒng),系統(tǒng)成熟度和易用性得到了國內(nèi)大量中小企業(yè)的青睞。
點(diǎn)晴PMS碼頭管理系統(tǒng)主要針對港口碼頭集裝箱與散貨日常運(yùn)作、調(diào)度、堆場、車隊(duì)、財(cái)務(wù)費(fèi)用、相關(guān)報(bào)表等業(yè)務(wù)管理,結(jié)合碼頭的業(yè)務(wù)特點(diǎn),圍繞調(diào)度、堆場作業(yè)而開發(fā)的。集技術(shù)的先進(jìn)性、管理的有效性于一體,是物流碼頭及其他港口類企業(yè)的高效ERP管理信息系統(tǒng)。
點(diǎn)晴WMS倉儲管理系統(tǒng)提供了貨物產(chǎn)品管理,銷售管理,采購管理,倉儲管理,倉庫管理,保質(zhì)期管理,貨位管理,庫位管理,生產(chǎn)管理,WMS管理系統(tǒng),標(biāo)簽打印,條形碼,二維碼管理,批號管理軟件。
點(diǎn)晴免費(fèi)OA是一款軟件和通用服務(wù)都免費(fèi),不限功能、不限時(shí)間、不限用戶的免費(fèi)OA協(xié)同辦公管理系統(tǒng)。
Copyright 2010-2025 ClickSun All Rights Reserved

主站蜘蛛池模板: 国产福利一区二区精品免费 | 国产欧美日韩综合一区在线 | 国产三级精品三级在线播放 | 成人免费a级 | 国产swag剧情在线观看 | 国产精品无码久久久久久免费 | 成人午夜网站在线观看视频 | 国产亚洲日韩a欧美在线观看 | 国产成人无码综合亚洲日韩 | 国产精品福利久久2025 | 国产二级一片内射视频插放 | 国产欧美日韩在线综合网 | 91久久精品亚洲中文字幕无码 | 精品国产自在2o18 | 国产精品视频一区二区三区 | 99精品国产福久久久久久蜜 | 精品无码免费视频二三区 | 99国产精品一区二区 | 国产精品兄妹伦理片一区二区 | 国产精彩视频一区二区三区 | 国产成人自拍视频在线 | 国色天香第01集在线播放 | av无码一区二区三区波多野 | 国产精品免费免费男同 | 国产欧美日韩亚洲精品区23 | 国产精品欧美一区麻豆系列 | 东京热蜜桃一区二区 | 国产精品专区第1页 | 18禁动漫一区二区三区免费下 | 国产成人无码精品午夜福利a | 国产亚洲成a人片在线观看 国产亚洲成v人片在线观黄桃 | 国产精品无码久久久久久曰本 | 国产午夜电影久久 | 国产精品一区二区三区四区 | 2025国产精品自在线拍 | 福利精品老师国产自产在线 | 国产丝袜在线观看 | 国产精品另类激情久久久免 | 国产精品国产三级囯产av中 | 国产精品一区二区高清久久久 | 国产精品一区二区三区极品 |