国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > ThinkPHP > 正文

在thinkphp3中如何處理cookie數組

2024-09-09 15:19:57
字體:
來源:轉載
供稿:網友

最近玩thinkphp框架時,遇到cookie真讓人頭暈,網上百度了一下,找到的大概都是thinkphp2.0的資料,說在Think/Lib/Think/Util/Cookie.class.php中,但實際上thinkphp3.0已經將cookie移到ThinkPHP/Common/functions.php中,用test.php測試了一下cookie函數,發現cookie自動會將數組用json_encode連接再存儲,就像手冊上說的支持數組存儲,但實際上已經變成josn字符串了,還有原來的中文都變成了"/UXXXX"之類的字符,很時奇怪,后來查看cookie函數的原代碼,發現字符都被轉換成json_encode重新編碼了,與是解碼就找到辦法了,但接下來又遇到問題了,用json_decode($_COOKIE["userinfo"])在當前頁能得到原數組,但換一個頁面后結果居然為“NULL”,用$str=cookie("userinfo")進行讀取賦值,卻得到了:

  1. object(stdClass)#4 (3) {  
  2. ["name"] => string(6) "張三"  
  3. ["code"] => int(123)  
  4. ["password"] => string(8) "22334455"  

$str得到的是一個類,作為類來處理的.

可我希望得到了是一個數組,于是dump($_COOKIE["userinfo"]),其結果居然"{/"name/":/"//u5f20//u4e09/",/"code/":123,/"password/":/"22334455/"}" ,也就是都被加了轉義字符,數字部分除外,終于找到原因了,解決起來就容易了,用stripslashes($_COOKIE["userinfo"]);//去除轉義字符后,再進行一次反向的編碼操作json_decode($str,true)就完成了,最后dump()打印結果,得到了正確的數組結果.

  1. array(3) { 
  2.  ["name"] => string(6) "張三"  
  3. ["code"] => int(123)  
  4. ["password"] => string(8) "22334455" 
  5.  } 

實例代碼如下:

  1. <?php 
  2. require_once "ThinkPHP/Common/functions.php"
  3. $user=array
  4. "name"  =>"張三"
  5. "code" =>123, 
  6. "password" =>"22334455"); 
  7. cookie(userinfo,$user,time()+3600); 
  8. var_dump($_COOKIE["userinfo"]); 
  9. //重新讀取成數組 
  10. $str=stripslashes($_COOKIE["userinfo"]);//去除轉義字符 
  11. $userinfo=json_decode($str,true); 
  12. var_dump($userinfo); 
  13. ?> 

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 柘城县| 广安市| 洪洞县| 东源县| 黔东| 库车县| 沈阳市| 讷河市| 平远县| 楚雄市| 嘉黎县| 云龙县| 个旧市| 新建县| 新源县| 博野县| 广宗县| 新田县| 全南县| 兴隆县| 武冈市| 界首市| 宣城市| 抚松县| 苏尼特右旗| 门头沟区| 伊川县| 武山县| 湖南省| 仙游县| 瑞金市| 尚义县| 襄樊市| 天津市| 昆山市| 镇雄县| 云阳县| 炎陵县| 黑河市| 宁晋县| 年辖:市辖区|