2012-04-08 3 views
-1

분할하려고하는 쿠키가 있습니다. 쿠키는이 형식이다어떻게하면 PHP를 사용하여 쿠키를 분할합니까

키 = VAL1는, (각각의 값은 쉼표로 구분되는)을 val2, val3

제가 직접 val3 액세스 할 수 있도록 저 루프에서이 분할하는 방법이 ?

explode() 함수를 사용해 보았는데 성공하지 못했습니다.

for ($i = 0; $i < count($_COOKIE); $i++) 
{ 
    $ind = key($_COOKIE); 
    $data = $_COOKIE[$ind]; 

    //I try and slit the cookie here 
    $cookie_temp = explode(",",$_COOKIE[$ind]); 

    //Here is where I wanted to display Val3 from the cookie 
    print $cookie_temp[2]; 

    next($_COOKIE); 
} 

내 코드는 잘 작동하지만 모든 Val3은 큰 배열로 끝납니다. 예를 들어 val3은 숫자이며 배열에 저장됩니다. 이것을 더 이상 분할 할 수 있습니까?

+7

"나는 분리하려고하는 쿠키가 있습니다." 조각 하나 줄래요? –

답변

0

당신이 루핑 가정하면 여러 쉼표로 구분 된 쿠키 키/값 그룹을 가지고 있기 때문에, 대신과 list()foreach()를 사용 직접 지정으로 세 번째 값을 검색 할 수 있습니다. 액세스 단 하나의 쿠키 값이있는 경우

foreach ($_COOKIE as $key=>$value) { 
    list($v1, $v2, $v3) = explode("," $value); 
    echo $v3; 
} 

는 루프에 대한 필요가 없습니다, 당신이 직접 호출 할 수 있습니다 explode(",", $_COOKIE['key'])

PHP 5.4 직접 떨어져 배열 요소에 액세스 할 수있다 배열, 역 참조 할 수 있습니다 explode() 호출의 일부이지만 이전 버전의 PHP에서는 작동하지 않습니다.

echo explode(",", $_COOKIE['key'])[2]; 
2

우선, 당신이 가치를 얻으려는 쿠키의 이름을 알고 싶습니다. 내 대답의 나머지 부분에서 mycookie이라고합시다.

둘째, 루프 전체를 스크랩하고 $_COOKIE['mycookie']에 직접 액세스하면됩니다.

이제 explode(",",$_COOKIE['mycookie'])을 호출하여 별도의 값을 가져올 수 있습니다.

다음은 현재 코드에서와 마찬가지로 [2] 인 인덱스 2 만 가져옵니다. 두 번째는 하나의 경우 바로 가기로

, 당신이 필요합니다

list(,,$val) = explode(",",$_COOKIE['mycookie']); 
관련 문제