簡體   English   中英

從 eregi 到 preg_match

[英]from eregi to preg_match

我已將 php 升級到 5.3,所以我需要將正則表達式更改為 preg_match。 我已經成功地使用分隔符對腳本進行了一些更改並將正則表達式更改為 preg_match 但我對以下代碼感到震驚,盡管我沒有收到任何錯誤 cookies 沒有被刪除,但我嘗試以以下方式進行更改。

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:腳本開發人員沒有回復我的支持請求....

由於COOKIE_PREFIX是一個定義為具有某些值的常量,因此您不應將其括在引號中 而是嘗試:

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

如果COOKIE_PREFIX包含# ,這將失敗,所以更好地使用:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM