一个php cookie操作类,实现了基本的操作功能:
创建cookie、设置cookie的过期时间、注销cookie等。
代码:
namespace com\net {
/**
* php cookie操作类
* by www.jbxue.com
*/
class Cookie {
/**
* cookie名称
* @var string
*/
public $name;
/**
* cookie值
* @var string
*/
public $value;
/**
* cookie过期时间
* @var int
*/
public $expire;
/**
* cookie 保存路径
* @var string
*/
public $path;
/**
* cookie域
* @var string
*/
public $domain;
/**
* Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client.
* When set to TRUE, the cookie will only be set if a secure connection exists.
* On the server-side, it's on the programmer to send this kind of cookie only on secure connection
* (e.g. with respect to $_SERVER["HTTPS"]).
* @var boolean
*/
public $secure;
/**
* When TRUE the cookie will be made accessible only through the HTTP protocol.
* This means that the cookie won't be accessible by scripting languages, such as JavaScript.
* This setting can effectively help to reduce identity theft through XSS attacks
* (although it is not supported by all browsers).
* Added in PHP 5.2.0. TRUE or FALSE
* @var boolean
*/
public $httponly;
/**
* 创建cookie
*
* @param string $name The name of the cookie.
* @param string $value [optional] The value of the cookie.
* @param int $expire [optional] The time the cookie expires.
* @param string $path [optional] The path on the server in which the cookie will be available on.
* @param string $domain [optional] The domain that the cookie is available to.
* @param boolean $secure [optional] Indicates that the cookie should only be transmitted over a secure HTTPS connection from the client.
* @param boolean $httponly [optional] Indicates that the cookie will be made accessible only through the HTTP protocol
*/
public function __construct($name, $value = null, $expire = null, $path = null, $domain = null, $secure = null, $httponly = null){
if(($this->name = (string) $name)){
if(!is_null($value)){
$this->value = (string) $value;
$this->expire = $expire;
$this->path = $path;
$this->domain = $domain;
$this->secure = $secure;
$this->httponly = $httponly;
} else {
$this->value = $this->exists() ? $_COOKIE[$this->name] : '';
}
} else {
throw new Exception("invalid cookie name");
}
}
/**
* 检测cookie是否存在
* @return boolean
*/
public function exists(){
return isset($_COOKIE[$this->name]);
}
/**
* 通过setcookie设置cookie信息
*/
public function save(){
return setcookie($this->name, $this->value, $this->expire, $this->path, $this->domain, $this->secure, $this->httponly);
}
/**
* 注销cookie
*/
public function delete(){
return setcookie($this->name, "", time() - 3600);
}
}
}
?>