Я пытаюсь взять некоторые данные в строке и заменить ее на зашифрованную версию.
Здесь образец данных:
encrypted=1|5|a|6|4|9
encrypted=1|1|a|3|4|9
encrypted=5|5|a|6|6|9
Вот какой код выглядит сейчас -
preg_replace("^(encrypted)(=)(.*)^", 'encrypted='.$this->encrypt_decrypt('encrypt',"$3"), $data);
Я читал на preg_replace_callback, но я не уверен, что это ответ, учитывая, что я не могу вызывать $ this изнутри функции и не могу реплицировать функцию в обратный вызов, поскольку она чрезвычайно длинная (100+ строки).
Решенный с использованием этого ответа Codeigniter preg_replace_callback
$that = $this;
$content = preg_replace_callback("^(encrypted)(=)(.*)^", function($matches) use ($that) {
return $that->encrypt_decrypt('encrypt',$matches[3]);
}, $data);