3 Stimmen

von eregi nach preg_match

Ich habe mein PHP auf 5.3 aktualisiert, so dass ich regex Ausdrücke zu preg_match ändern müssen. Ich habe erfolgreich einige Änderungen an einem Skript mit Trennzeichen und Ändern von regex zu preg_match gemacht, aber ich bin mit dem folgenden Code, den ich versucht, in der folgenden Weise zu ändern, obwohl ich keine Fehler Cookies werden nicht gelöscht.

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

Der ursprüngliche Code lautet

   // 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;
}

P.S: Der Skriptentwickler antwortet nicht auf meine Supportanfragen....

4voto

codaddict Punkte 426877

Seit COOKIE_PREFIX ist eine Konstante, die einen Wert hat, den Sie sollte nicht in Anführungszeichen eingeschlossen werden . Versuchen Sie es stattdessen:

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

dies würde fehlschlagen, wenn COOKIE_PREFIX enthielt eine # darin, also besser verwenden:

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

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X