php cookie类(用到了命名空间)

发布时间:2020-05-14编辑:脚本学堂
分享一个php cookie操作类,用到了php中的命名空间,这个比较新颖,有需要的朋友参考下吧。

一个php cookie操作类,实现了基本的操作功能:
创建cookie、设置cookie的过期时间、注销cookie等。

代码:

<?php
namespace comnet {
/**
* php cookie操作类
* by www.jb200.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);
}
}

}
?>