2011-04-28 1 views
3

나는 정규식을 preg_match로 변경해야하므로 5.3으로 PHP를 업그레이드했습니다. 내가 성공적으로 구분 기호를 사용하여 스크립트를 변경하고 정규식을 preg_match로 변경했지만 다음과 같은 방법으로 변경하려고 시도한 다음 코드로 인해 나는 어떤 오류 쿠키도 삭제되지 않습니다.eregi에서 preg_match로

if (preg_match('#COOKIE_PREFIX#i', $key)) 

원래 코드는

// destroys the session cookies 
function destroy($hash) 
{ 
    foreach ($_COOKIE as $key => $value) 
    { 
     if (eregi(COOKIE_PREFIX, $key)) 
     { 
      $key = str_replace(COOKIE_PREFIX, '', $key); 
      xtsetcookie($key, ''); 
     } 
    } 
    $this->userinfo['user_id'] = 0; 
} 

PS입니다 : 스크립트 개발자가 내 지원 요청에 회신하지 않습니다 ....

답변

4

COOKIE_PREFIX 때문에 당신이 해야 어떤 값을 갖도록 정의 상수 따옴표로 묶지 마십시오. 대신 시도 : COOKIE_PREFIX가있는 # 포함 된 경우

if (preg_match('#'.COOKIE_PREFIX.'#i', $key)) 

이 실패 할 것이다, 그래서보다 효율적으로 사용 :

if (preg_match('#'.preg_quote(COOKIE_PREFIX,'#').'#i', $key))