php cookie类(设置、获取、删除cookie值)

WBOY
Freigeben: 2016-07-25 08:56:34
Original
1277 Leute haben es durchsucht
本文介绍下,一个功能强大的php cookie操作类,可以完成设置cookie、获取cookie值、删除cookie值等操作,有需要的朋友参考下。

分享一个php cookie操作的类,可以设置cookie、获取cookie、删除cookie。

代码:

<?php 
/**
* php cookie类
* class:PHP_COOKIE
* by bbs.it-home.org
*/
class PHP_COOKIE 
{ 
  var $_name  = ""; 
  var $_val   = array(); 
  var $_expires; 
  var $_dir   = '/';// all dirs 
  var $_site  = ''; 

  function PHP_COOKIE($cname, $cexpires="", $cdir="/", $csite="") 
  { 
$this->_name=$cname; 

if($cexpires){ 
  $this->_expires=$cexpires; 
} 
else{ 
  $this->_expires=time() + 60*60*24*30*12; // ~12 months 
} 

$this->_dir=$cdir; 
$this->_site=$csite; 
$this->_val=array(); 
$this->extract(); 
  } 

  function extract($cname="") 
  { 
if(!isset($_COOKIE)){ 
  global $_COOKIE; 
  $_COOKIE=$GLOBALS["HTTP_COOKIE_VARS"]; 
} 

if(empty($cname) && isset($this)){ 
  $cname=$this->_name; 
} 
 
if(!empty($_COOKIE[$cname])){ 

  if(get_magic_quotes_gpc()){ 
$_COOKIE[$cname]=stripslashes($_COOKIE[$cname]); 
  } 
  $arr=unserialize($_COOKIE[$cname]); 

  if($arr!==false && is_array($arr)){ 

foreach($arr as $var => $val){ 

  $_COOKIE[$var]=$val; 

  if(isset($GLOBALS["PHP_SELF"])){ 
  $GLOBALS[$var]=$val; 
  } 
} 
  } 

  if(isset($this)) $this->_val=$arr; 

} 
// 在全局范围内移除cookie 
unset($_COOKIE[$cname]); 
unset($GLOBALS[$cname]); 
} 

function put($var, $value) 
{ 
$_COOKIE[$var]=$value; 
$this->_val["$var"]=$value; 

if(isset($GLOBALS["PHP_SELF"])){ 
  $GLOBALS[$var]=$value; 
} 

if(empty($value)){ 
  unset($this->_val[$var]); 
} 

  } 

  function clear() 
  { 
$this->_val=array(); 
  } 

  function set() 
  { 
if(empty($this->_val)){ 
  $cookie_val=""; 
}  
else { 
  $cookie_val=serialize($this->_val); 
} 
 
if(strlen($cookie_val)>4*1024){ 
  trigger_error("The cookie $this->_name exceeds the specification for the maximum cookie size.  Some data may be lost", E_USER_WARNING); 
} 
setcookie("$this->_name", $cookie_val, $this->_expires, $this->_dir, $this->_site); 
  } 
} 
?>
Nach dem Login kopieren

调用示例: 1,设置cookie

<?php
//cookie操作类
include("class.cookie.php"); 
// Create a local object
$PHP_COOKIE=new PHP_COOKIE("test_cookie");

// Add the variables to be saved in the cookie
$PHP_COOKIE->put("namefirst","Jo");
$PHP_COOKIE->put("namelast","Foo");
$PHP_COOKIE->put("number","1234");
$PHP_COOKIE->put("time",time());
   // Set the cookie
$PHP_COOKIE->set();

$PHP_COOKIE=new PHP_COOKIE("test_cookie 123");
// Add the variables to be saved in the cookie
$PHP_COOKIE->put("namefirst","Jo123");
$PHP_COOKIE->put("namelast","Foo13");
$PHP_COOKIE->put("number","123413");
  // Set the cookie
$PHP_COOKIE->set();

echo "<br>The values saved in the cookie test_cookie are:";
echo "<br>namefirst: = $_COOKIE[namefirst]";
echo "<br>namelast: = $_COOKIE[namelast]";
echo "<br>number: = $_COOKIE[number]";
echo "<br>time: = $_COOKIE[time]";
echo "<br><br>END";
?>
Nach dem Login kopieren

2,获取cookie

<?php
include("class.cookie.php"); 

//获取cookie
//从保存的cookie中解析变量,然后加入自己的cookies中
PHP_COOKIE::extract("test_cookie");

//显示cookie
echo "<BR>显示用于测试的一些cookie值" ;
echo "<br> Name: ";
echo $_COOKIE['namefirst']; 
echo " ";
echo $_COOKIE['namelast'];
echo "<br> Number: ";
echo $_COOKIE['number'];
echo "<br> Time: ";
echo $_COOKIE['time'];

echo "<br><br>END";
?>
Nach dem Login kopieren

3,删除cookie

<?php
include("class.cookie.php"); 

//删除cookie
//方法1. 设置cookie过期时间
//方法2. 调用 clear()与 set()方法

// Create a local object
$PHP_COOKIE=new PHP_COOKIE("test_cookie", time()-86400);
// Set the cookie
$PHP_COOKIE->set();

// Clear all values
#$PHP_COOKIE->clear();
?>
Nach dem Login kopieren


Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage