分享一个php cookie操作类,用到了php中的命名空间,这个比较新颖,有需要的朋友参考下吧。
一个php cookie操作类,实现了基本的操作功能:
创建cookie、设置cookie的过期时间、注销cookie等。
代码:
- <!--?php
- namespace com\net {
- /**
- * php cookie操作类
- * by bbs.it-home.org
- */
- 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);
- }
- }
- }
- ?>
|