preg_replace() in /e modifier

Hi!

Na netu sem našel en regular expression ki dela to kar rabim ampak dobim naslednjo napako:

"Warning: pregreplace(): The /e modifier is no longer supported, use pregreplace_callback instead"

Kaj to pomeni oziroma kako to rešim?

2 odgovora

3 3

Točno to pomeni kar piše in točno to narediš kar piše :)

Uporabiš preg_replace_callback() funkcijo namesto preg_replace().

Torej namesto:

preg_replace(
    '/(.*)/e',
    'neka_funkcija("\\1")',
    $string
);

Narediš takole:

preg_replace_callback(
    '/(.*)/',
    function($matches) {
        // tule imaš v $matches[1] tisto
        // kar si imel prej v \\1
        return obdelaj_nekako($matches[1]);
    },
    $string
);
Objava umaknjena – Infos700 30. okt 2018 ob 20:28