Example #1
0
 /**
  * Cookie相关操作
  * @param string $name
  * @param string $value
  * @param string $opt
  * @return string|null
  */
 public static function cookie($name = '', $value = '', $opt = null)
 {
     //参数设置处理
     if (!is_null($opt)) {
         if (is_numeric($opt)) {
             $opt = array('expire' => $opt);
             //设置有效期
         }
         self::$_cookieConfig = array_merge(self::$_cookieConfig, $opt);
     }
     //清除所有Cookie
     if (is_null($name)) {
         $cookies = Request::cookies();
         if (!empty($cookies)) {
             foreach ($cookies as $key => $val) {
                 setcookie($key, '', time() - 3600, self::$_cookieConfig['path'], self::$_cookieConfig['domain'], self::$_cookieConfig['secure'], self::$_cookieConfig['httponly']);
                 Request::unsetParam($key, 'cookie');
             }
         }
         return null;
     } elseif ('' === $name) {
         return Request::cookies();
         //获取所有cookie
     }
     $cookieKey = self::$_cookieConfig['prefix'] . $name;
     if ('' === $value) {
         //获取指定的Cookie
         if (Request::cookie($cookieKey)) {
             return Request::cookie($cookieKey);
         }
         return null;
     } else {
         if (is_null($value)) {
             //删除指定Cookie
             setcookie($cookieKey, '', time() - 3600, self::$_cookieConfig['path'], self::$_cookieConfig['domain'], self::$_cookieConfig['secure'], self::$_cookieConfig['httponly']);
             Request::unsetParam($cookieKey, 'cookie');
         } else {
             //设置Cookie
             $expire = !empty(self::$_cookieConfig['expire']) ? time() + intval(self::$_cookieConfig['expire']) : 0;
             setcookie($cookieKey, $value, $expire, self::$_cookieConfig['path'], self::$_cookieConfig['domain'], self::$_cookieConfig['secure'], self::$_cookieConfig['httponly']);
         }
     }
     return null;
 }