Php 从埃雷吉到赛前
我已经将我的php升级到5.3,所以我需要将正则表达式更改为preg_match。我已经成功地使用分隔符对脚本进行了一些更改,并将regex更改为preg_match,但是我被以下代码打动了,我尝试用以下方式更改这些代码,尽管我没有收到任何错误,但是cookie没有被删除Php 从埃雷吉到赛前,php,regex,preg-match,Php,Regex,Preg Match,我已经将我的php升级到5.3,所以我需要将正则表达式更改为preg_match。我已经成功地使用分隔符对脚本进行了一些更改,并将regex更改为preg_match,但是我被以下代码打动了,我尝试用以下方式更改这些代码,尽管我没有收到任何错误,但是cookie没有被删除 if (preg_match('#COOKIE_PREFIX#i', $key)) 原始代码是 // destroys the session cookies function destroy($hash) {
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;
}
注意:脚本开发人员没有回复我的支持请求……因为
COOKIE\u PREFIX
是一个定义为具有某些值的常量,您不应该将其括在引号中。相反,请尝试:
if (preg_match('#'.COOKIE_PREFIX.'#i', $key))
如果COOKIE\u前缀
中包含
,则此操作将失败,因此最好使用:
if (preg_match('#'.preg_quote(COOKIE_PREFIX,'#').'#i', $key))