쿠키 Operation_php 기술에 대한 PHP 대기열 작업 클래스 예

WBOY
풀어 주다: 2016-05-16 20:28:35
원래의
991명이 탐색했습니다.

이 기사의 예에서는 쿠키 작업에 대한 PHP의 대기열 작업 클래스를 설명합니다. 참고할 수 있도록 모든 사람과 공유하세요. 구체적인 분석은 다음과 같습니다.

여기에는 간단한 쿠키 작업(추가, 삭제, 수정)부터 당사의 쿠키 대기열 작업까지 포함됩니다. 이에 관심이 있는 친구들은 참고할 수 있습니다.

1. PHP 쿠키

쿠키는 사용자를 추적하고 식별하기 위해 원격 브라우저에 데이터를 저장하는 메커니즘입니다.

PHP는 http 프로토콜의 헤더 정보에 쿠키를 보내기 때문에 브라우저에 다른 정보를 출력하기 전에 setcookie() 함수를 호출해야 하는데, 이는 header() 함수의 제한과 유사합니다.

쿠키 설정:

setcookie() 또는 setrawcookie() 함수를 사용하여 쿠키를 설정하거나 http 헤더를 클라이언트에 직접 전송하여 설정할 수 있습니다.

쿠키를 설정하려면 여기에서 setcookie() 함수를 사용하세요.

코드 복사 코드는 다음과 같습니다.
bool setcookie ( 문자열 이름 [, 문자열 값 [,int 만료 [, 문자열 경로 [ ,문자열 도메인 [,bool secure [,bool httponly]]]]])

매개변수:

이름: 쿠키 변수 이름

값: 쿠키 변수의 값

expire : 유효기간이 끝나는 시간

경로: 유효한 디렉터리

도메인: 유효한 도메인 이름, 고유한 최상위 도메인

secure: 값이 1이면 쿠키는 https 연결에서만 유효합니다. 기본값이 0이면 http와 https가 모두 유효합니다.

몇 가지 예를 살펴보겠습니다. 간단한:

코드 복사 코드는 다음과 같습니다.
SetCookie(" MyCookie", "MyCookie의 값");

만료 시간이 있는 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
SetCookie("WithExpire", "Expire in 1 hour", time( ) 3600) ;//3600초=1시간

모든 것이 가능하며 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
SetCookie("FullCookie", "Full cookie value", time() 3600, " /forum", ".phpuser.com", 1);

큐를 사용해야 하는데 코드는 다음과 같습니다.

코드 복사 코드는 다음과 같습니다.
클래스 QueueSvc
{/*{{{*/
Private $length; // 큐의 길이
비공개 $server_arr
​  
공용 함수 __construct($length,$server_arr)
{
$this->길이 = $길이
$this->server_arr = $server_arr
}
​  
공개 함수 getServerArr()
{
           $this->server_arr 반환
}
​  
공용 함수 집합($server_name)
{
           self::push($server_name)
}
​  
비공개 함수 푸시($server_name)
{
//중복된 기록이 있을 경우 중복 삭제
If(self::isServerExist($server_name)){
               self::removeRepeat($server_name)
         }그 외{
If(self::isFull()){
//가득 차 있으면 대기열의 마지막 레코드를 삭제합니다
                    array_pop($this->server_arr)
               }
           }
//큐가 비어 있으면 먼저 빈 배열로 설정하세요
If(emptyempty($this->server_arr))
$this->server_arr = 배열()
//큐 헤드에 데이터 추가
          array_unshift($this->server_arr,$server_name);                                           }
​  
비공개 함수 isFull()
{
If(is_array($this->server_arr) && (count($this->server_arr) >= $this->length))
              true를 반환합니다.
          false 반환;                              }
​  
비공개 함수 isServerExist($server_name)
{
If(is_array($this->server_arr) && in_array($server_name,$this->server_arr))
              true를 반환합니다.
         거짓 반환
}
​  
비공개 함수 RemoveRepeat($server_name)
{
If(is_array($this->server_arr) && in_array($server_name,$this->server_arr))
~ foreach($this->server_arr as $key=>$value)
~ If($server_name == $value)
~ $this->array_remove($this->server_arr,$key)
~ ~            }
}
​  
개인 함수 array_remove(&$arr, $offset) {
         array_splice( $arr, $offset, 1 )
}
}/*}}}*/require_once('queue_svc.php')
클래스 CookieSvc
{/*{{{*/
const COOKIE_KEY = "GAME_SERVER"
    
    const   분리됨   = "|";
 
    const   COOKIE_LENGTH = "2";
    
    공개 함수 getCookieArr()
    {/*{{{*/
        $server_str =  $_COOKIE[self::COOKIE_KEY];
        $server_str =  $_COOKIE['GAME_SERVER'];
        if($server_str == ''){
            $result =  배열();
        }그밖에{
            $result = 폭발(self::SEPARATE,$server_str);
        }
        $결과를 반환합니다.
    }/*}}}*/
    
    공개 함수 집합($cookie_id)
    {/*{{{*/
        $server_arr = self::getCookieArr();
        if($cookie_id != false)
        {
            $que = new QueueSvc(self::COOKIE_LENGTH,$server_arr);
            $que->set($cookie_id);
            $server_new = $que->getServerArr();
            if(is_array($server_new))
            {
                $cookie_str = implode(self::SEPARATE,$server_new);
                setcookie(self::COOKIE_KEY,$cookie_str,time() 3600,'/');
            }
        }
    }/*}}}*/
}/*}}}*/

不多解释了, 这个别人用不多,昨天因为需要写的,留一下吧,也许以后还用得到,调用 代码很简单, 代码如下:
复代码 代码如下:
require_once("queue_svc.php");
 
require_once("cookie_svc.php");
 
$cookie_id = '4';
 
CookieSvc::set($cookie_id);

这样就可以了, 大家可以每次把$cookie_id换做不同的值,来检验此操작,检验的代码可以用如下代码:
复代码 代码如下:
var_dump($_COOKIE);

이、常见问题解决:

1. setcookie()를 사용하려면 setcookie()를 사용하세요.可能带유 BOM 이름(就是在文件内容添加一些隐藏BOM 字符), 解决的办法就是使你的文档不出现这种情况,还有过使用ob_start()函数也能处理一点.

2. $_COOKIE 受magic_quotes_gpc 影响,可能自动转义.

3. 사용 가능한 쿠키가 있습니다.

希望本文所述对大家的PHP程序设计有所帮助。

관련 라벨:
원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿